{"version":3,"sources":["../src/vendor/pyth_legacy/readBig.ts","../src/vendor/pyth_legacy/index.ts","../src/vendor/pyth_push_oracle/index.ts","../src/vendor/spl/types/account.types.ts","../src/vendor/spl/constants.ts","../src/vendor/spl/errors.ts","../src/vendor/spl/utils/multisig.utils.ts","../src/vendor/spl/utils/account.utils.ts","../src/vendor/spl/utils/ata.utils.ts","../src/vendor/spl/utils/instruction.utils.ts","../src/vendor/spl/utils/mint.utils.ts","../src/vendor/spl/instructions.ts","../src/constants/program-keys.consts.ts","../src/constants/misc.consts.ts","../src/constants/mints.consts.ts","../src/vendor/single-spl-pool/index.ts","../src/vendor/rpc-get-stake/index.ts","../src/vendor/switchboard_pull/idl.json","../src/vendor/switchboard_pull/index.ts","../src/vendor/scope/index.ts","../src/vendor/marinade/index.ts","../src/vendor/spl-stake-pool/index.ts","../src/vendor/klend/constants.ts","../src/vendor/klend/instructions.ts","../src/vendor/klend/klend.service.ts","../src/vendor/klend/types/reserve/reserve.types.ts","../src/vendor/klend/utils/klend/serialize.utils.ts","../src/vendor/klend/idl/kfarms.json","../src/vendor/klend/idl/klend.json","../src/vendor/klend/idl/index.ts","../src/vendor/klend/utils/klend/deserialize.utils.ts","../src/vendor/klend/utils/klend/derive.utils.ts","../src/vendor/klend/classes/fraction.ts","../src/vendor/klend/utils/klend/interest-rate.utils.ts","../src/vendor/klend/utils/farms/reward.utils.ts","../src/vendor/klend/utils/farms/serialize.utils.ts","../src/vendor/klend/utils/farms/deserialize.utils.ts","../src/vendor/drift/types/drift-spot-market/drift-spot-market.types.ts","../src/vendor/drift/types/internal.ts","../src/vendor/drift/idl/drift.json","../src/vendor/drift/idl/index.ts","../src/vendor/drift/utils/serialize.utils.ts","../src/vendor/drift/utils/deserialize.utils.ts","../src/vendor/drift/constants.ts","../src/vendor/drift/utils/derive.utils.ts","../src/vendor/drift/utils/interest-rate.utils.ts","../src/vendor/drift/utils/rewards.utils.ts","../src/vendor/drift/instructions.ts","../src/vendor/drift/actions/update-market.ts","../src/vendor/jup-lend/constants.ts","../src/vendor/jup-lend/idl/jup-lend-liquidity.json","../src/vendor/jup-lend/idl/jup-lend.json","../src/vendor/jup-lend/idl/index.ts","../src/vendor/jup-lend/utils/serialize.utils.ts","../src/vendor/jup-lend/utils/deserialize.utils.ts","../src/vendor/jup-lend/utils/derive.utils.ts","../src/utils/accounting.utils.ts","../src/vendor/jup-lend/utils/interest-rate.utils.ts","../src/vendor/jup-lend/utils/rewards.utils.ts","../src/vendor/jup-lend/instructions.ts","../src/vendor/jup-lend/actions/update-rate.ts","../src/vendor/titan/client.ts","../src/vendor/titan/types.ts","../src/vendor/titan/helpers.ts","../src/vendor/titan/gateway.ts","../src/vendor/exponent/types/clmm.types.ts","../src/vendor/exponent/constants.ts","../src/vendor/exponent/idl/exponent_clmm.json","../src/vendor/exponent/idl/exponent_core.json","../src/vendor/exponent/idl/index.ts","../src/vendor/exponent/utils/deserialize.utils.ts","../src/vendor/exponent/utils/derive.utils.ts","../src/vendor/exponent/instructions.ts","../src/vendor/exponent/utils/resolve.utils.ts","../src/vendor/gamma/constants.ts","../src/vendor/gamma/idl/gamma-idl.json","../src/vendor/gamma/idl/index.ts","../src/vendor/gamma/utils/derive.utils.ts","../src/vendor/gamma/utils/deserialize.utils.ts","../src/vendor/gamma/instructions.ts"],"names":["PublicKey","PriceStatus","CorpAction","AccountType","PriceType","parsePriceInfo","deserialize","AccountState","struct","u8","bool","publicKey","SplAccountType","u64","u32","ExtensionType","Buffer","TransactionInstruction","TokenInstruction","SYSVAR_RENT_PUBKEY","SystemProgram","STAKE_CONFIG_ID","BN","MINT_SIZE","Transaction","LAMPORTS_PER_SOL","StakeProgram","SYSVAR_CLOCK_PUBKEY","BorshCoder","Program","BigNumber","KaminoInterestRateBasis","borsh","Decimal","slotAdjustmentFactor","array","u128","DriftSpotBalanceType","SpotBalanceType","BorshAccountsCoder","SLOTS_PER_YEAR","calculateAPYFromAPR","instructions_default","aprToApy","Encoder","Decoder","WebSocket","SwapMode","SwapVersion","AddressLookupTableAccount","decode","ExponentSwapDirection"],"mappings":"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A,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,KAAA,EAAS;AAAA,kBACP,IAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,KAAA,EAAS;AAAA,kBACP,IAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4DAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sDAAA;AAAA,cACA,iFAAA;AAAA,cACA,8EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,4BAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8DAAA;AAAA,cACA,mEAAA;AAAA,cACA,EAAA;AAAA,cACA,WAAA;AAAA,cACA,8CAAA;AAAA,cACA,wFAAA;AAAA,cACA,+CAAA;AAAA,cACA,yDAAA;AAAA,cACA,wFAAA;AAAA,cACA,0FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wEAAA;AAAA,cACA,qEAAA;AAAA,cACA,EAAA;AAAA,cACA,WAAA;AAAA,cACA,8DAAA;AAAA,cACA,2FAAA;AAAA,cACA,2FAAA;AAAA,cACA,aAAA;AAAA,cACA,2EAAA;AAAA,cACA,2DAAA;AAAA,cACA,sFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sFAAA;AAAA,cACA,EAAA;AAAA,cACA,0FAAA;AAAA,cACA,6DAAA;AAAA,cACA,EAAA;AAAA,cACA,wFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sFAAA;AAAA,cACA,EAAA;AAAA,cACA,uFAAA;AAAA,cACA,0FAAA;AAAA,cACA,8EAAA;AAAA,cACA,EAAA;AAAA,cACA,uFAAA;AAAA,cACA,oFAAA;AAAA,cACA,EAAA;AAAA,cACA,yFAAA;AAAA,cACA,wFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6BAAA;AAAA,cACA,0FAAA;AAAA,cACA,EAAA;AAAA,cACA,mFAAA;AAAA,cACA,wFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+BAAA;AAAA,cACA,EAAA;AAAA,cACA,8FAAA;AAAA,cACA,4FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mBAAA;AAAA,cACA,6FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,cAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,MAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,MAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,MAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gDAAA;AAAA,cACA,uCAAA;AAAA,cACA,gDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0FAAA;AAAA,cACA,UAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8FAAA;AAAA,cACA,UAAA;AAAA,cACA,wFAAA;AAAA,cACA,4FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gFAAA;AAAA,cACA,oBAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yDAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wEAAA;AAAA,cACA,+DAAA;AAAA,cACA,oBAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,yCAAA;AAAA,QACA,EAAA;AAAA,QACA,+FAAA;AAAA,QACA,2FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2FAAA;AAAA,cACA,2EAAA;AAAA,cACA,UAAA;AAAA,cACA,0CAAA;AAAA,cACA,yCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sLAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oLAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,MAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,MAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6FAAA;AAAA,cACA,6BAAA;AAAA,cACA,4FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yFAAA;AAAA,cACA,gHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mDAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2DAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,KAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF;AACF;AAEJ,CAAA;;;AClkMO,IAAM,SAAA,GAAY;AAClB,IAAM,UAAA,GAAa;;;ACUnB,IAAM,mBAAA,GAAsB,IAAIH,iBAAAA,CAAW,SAAS;AAE3D,IAAM,oBAAA,GAAuB,MAAA,CAAO,IAAA,CAAK,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAC,CAAA;AAE9E,IAAM,uBAAA,GAA0B,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAC,CAAA;AAElF,IAAM,mBAAyBI,gBAAA,CAAA,MAAA,CAAsB;AAAA,EAC7CA,qBAAI,KAAK,CAAA;AAAA,EACTA,gBAAA,CAAA,MAAA;AAAA,IACJ;AAAA,MACQA,qBAAI,MAAM,CAAA;AAAA,MACVA,oBAAG,OAAO,CAAA;AAAA,MACVA,oBAAG,aAAa,CAAA;AAAA,MAChBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,aAAa;AAAA,KAC1C;AAAA,IACA;AAAA,GACF;AAAA,EACMA,2BAAU,eAAe,CAAA;AAAA,EACzBA,2BAAU,OAAO,CAAA;AAAA,EACjBA,gBAAA,CAAA,KAAA;AAAA,IACEA,gBAAA,CAAA,MAAA,CAAO;AAAA,MACLA,2BAAU,gBAAgB,CAAA;AAAA,MAC1BA,qBAAI,iBAAiB,CAAA;AAAA,MACrBA,sBAAK,eAAe,CAAA;AAAA,MACpBA,qBAAI,qDAAqD,CAAA;AAAA,MACzDA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,CAAA,EAAG,SAAS;AAAA,KACtC,CAAA;AAAA,IACD,CAAA;AAAA,IACA;AAAA,GACF;AAAA,EACMA,qBAAI,oCAAoC,CAAA;AAAA,EACxCA,sBAAK,kBAAkB,CAAA;AAAA,EACvBA,gBAAA,CAAA,KAAA;AAAA,IACEA,gBAAA,CAAA,MAAA,CAAO;AAAA,MACLA,2BAAU,eAAe,CAAA;AAAA,MACzBA,gBAAA,CAAA,MAAA;AAAA,QACJ,CAAOA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,CAAA,EAAG,OAAO,CAAA,EAASA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,CAAA,EAAG,SAAS,CAAC,CAAA;AAAA,QAC7E;AAAA,OACF;AAAA,MACMA,qBAAI,SAAS,CAAA;AAAA,MACbA,sBAAK,kBAAkB,CAAA;AAAA,MACvBA,sBAAK,eAAe,CAAA;AAAA,MACpBA,sBAAK,mCAAmC,CAAA;AAAA,MACxCA,qBAAI,sCAAsC,CAAA;AAAA,MAC1CA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,CAAA,EAAG,UAAU;AAAA,KACvC,CAAA;AAAA,IACD,CAAA;AAAA,IACA;AAAA,GACF;AAAA,EACMA,sBAAK,iCAAiC,CAAA;AAAA,EACtCA,sBAAK,6BAA6B,CAAA;AAAA,EAClCA,sBAAK,sBAAsB,CAAA;AAAA,EAC3BA,sBAAK,wBAAwB,CAAA;AAAA,EAC7BA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,oBAAoB,CAAA;AAAA,EACzCA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,mBAAmB,CAAA;AAAA,EACxCA,oBAAG,gBAAgB,CAAA;AAAA,EACnBA,oBAAG,8BAA8B,CAAA;AAAA,EACjCA,oBAAG,SAAS,CAAA;AAAA,EACZA,2BAAU,UAAU,CAAA;AAAA,EACpBA,oBAAG,mBAAmB,CAAA;AAAA,EACtBA,oBAAG,4BAA4B,CAAA;AAAA,EAC/BA,oBAAG,+BAA+B,CAAA;AAAA,EAClCA,oBAAG,6BAA6B,CAAA;AAAA,EAChCA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,UAAU,CAAA;AAAA,EAC/BA,qBAAI,wBAAwB,CAAA;AAAA,EAC5BA,qBAAI,0CAA0C,CAAA;AAAA,EAC9CA,gBAAA,CAAA,KAAA;AAAA,IACEA,gBAAA,CAAA,MAAA,CAAO;AAAA,MACLA,sBAAK,sBAAsB,CAAA;AAAA,MAC3BA,sBAAK,wBAAwB,CAAA;AAAA,MAC7BA,qBAAI,sBAAsB,CAAA;AAAA,MAC1BA,qBAAI,sBAAsB,CAAA;AAAA,MAC1BA,oBAAG,eAAe,CAAA;AAAA,MAClBA,oBAAG,iBAAiB,CAAA;AAAA,MACpBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,EAAA,EAAI,UAAU,CAAA;AAAA,MAChCA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,IAAA,EAAK,EAAG,CAAA,EAAG,UAAU;AAAA,KACxC,CAAA;AAAA,IACD,CAAA;AAAA,IACA;AAAA,GACF;AAAA,EACMA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,EAAA,EAAI,UAAU;AACzC,CAAC,CAAA;AAED,IAAM,gBAAsBA,gBAAA,CAAA,MAAA,CAAmB;AAAA,EACvCA,qBAAI,SAAS,CAAA;AAAA,EACbA,gBAAA,CAAA,MAAA;AAAA,IACJ;AAAA,MACQA,qBAAI,MAAM,CAAA;AAAA,MACVA,oBAAG,OAAO,CAAA;AAAA,MACVA,oBAAG,aAAa,CAAA;AAAA,MAChBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,aAAa;AAAA,KAC1C;AAAA,IACA;AAAA,GACF;AAAA,EACMA,2BAAU,eAAe,CAAA;AAAA,EACzBA,2BAAU,gBAAgB,CAAA;AAAA,EAC1BA,2BAAU,UAAU,CAAA;AAAA,EACpBA,gBAAA,CAAA,MAAA;AAAA,IACJ;AAAA,MACQA,2BAAU,YAAY,CAAA;AAAA,MACtBA,2BAAU,aAAa,CAAA;AAAA,MACvBA,2BAAU,UAAU,CAAA;AAAA,MACpBA,qBAAI,iBAAiB,CAAA;AAAA,MACrBA,sBAAK,kBAAkB,CAAA;AAAA,MACvBA,sBAAK,eAAe,CAAA;AAAA,MACpBA,qBAAI,0BAA0B,CAAA;AAAA,MAC9BA,qBAAI,cAAc,CAAA;AAAA,MAClBA,qBAAI,8BAA8B,CAAA;AAAA,MAClCA,qBAAI,6BAA6B,CAAA;AAAA,MACjCA,gBAAA,CAAA,MAAA;AAAA,QACJ,CAAOA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,CAAA,EAAG,OAAO,CAAA,EAASA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,CAAA,EAAG,SAAS,CAAC,CAAA;AAAA,QAC7E;AAAA,OACF;AAAA,MACMA,sBAAK,2BAA2B,CAAA;AAAA,MAChCA,sBAAK,2BAA2B,CAAA;AAAA,MAChCA,sBAAK,uBAAuB,CAAA;AAAA,MAC5BA,sBAAK,wBAAwB,CAAA;AAAA,MAC7BA,2BAAU,cAAc,CAAA;AAAA,MACxBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,EAAA,EAAI,UAAU,CAAA;AAAA,MACjCA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,IAAA,EAAK,EAAG,EAAA,EAAI,UAAU;AAAA,KAC1C;AAAA,IACA;AAAA,GACF;AAAA,EACMA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,GAAA,EAAK,yBAAyB,CAAA;AAAA,EACjDA,gBAAA,CAAA,MAAA;AAAA,IACJ;AAAA,MACQA,2BAAU,YAAY,CAAA;AAAA,MACtBA,qBAAI,iBAAiB,CAAA;AAAA,MACrBA,2BAAU,aAAa,CAAA;AAAA,MACvBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,IAAA,EAAK,EAAG,EAAA,EAAI,UAAU,CAAA;AAAA,MAClCA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,IAAA,EAAK,EAAG,EAAA,EAAI,UAAU;AAAA,KAC1C;AAAA,IACA;AAAA,GACF;AAAA,EACMA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,GAAA,EAAK,0BAA0B,CAAA;AAAA,EAClDA,gBAAA,CAAA,MAAA;AAAA,IACJ;AAAA,MACQA,oBAAG,QAAQ,CAAA;AAAA,MACXA,oBAAG,WAAW,CAAA;AAAA,MACdA,qBAAI,0BAA0B,CAAA;AAAA,MAC9BA,qBAAI,yBAAyB,CAAA;AAAA,MAC7BA,oBAAG,kBAAkB,CAAA;AAAA,MACrBA,oBAAG,gCAAgC,CAAA;AAAA,MACnCA,oBAAG,eAAe,CAAA;AAAA,MAClBA,oBAAG,mBAAmB,CAAA;AAAA,MACtBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,WAAW,CAAA;AAAA,MAChCA,oBAAG,8BAA8B,CAAA;AAAA,MACjCA,oBAAG,qBAAqB,CAAA;AAAA,MACxBA,oBAAG,2BAA2B,CAAA;AAAA,MAC9BA,oBAAG,gBAAgB,CAAA;AAAA,MACnBA,oBAAG,yBAAyB,CAAA;AAAA,MAC5BA,qBAAI,wBAAwB,CAAA;AAAA,MAC5BA,qBAAI,wBAAwB,CAAA;AAAA,MAC5BA,qBAAI,4BAA4B,CAAA;AAAA,MAChCA,qBAAI,kCAAkC,CAAA;AAAA,MACtCA,qBAAI,wCAAwC,CAAA;AAAA,MAC5CA,gBAAA,CAAA,MAAA;AAAA,QACJ;AAAA,UACQA,qBAAI,aAAa,CAAA;AAAA,UACjBA,qBAAI,gBAAgB,CAAA;AAAA,UACpBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,SAAS;AAAA,SACtC;AAAA,QACA;AAAA,OACF;AAAA,MACMA,gBAAA,CAAA,MAAA;AAAA,QACJ;AAAA,UACQA,gBAAA,CAAA,KAAA;AAAA,YACEA,gBAAA,CAAA,MAAA,CAAO,CAAOA,gBAAA,CAAA,GAAA,CAAI,oBAAoB,GAASA,gBAAA,CAAA,GAAA,CAAI,eAAe,CAAC,CAAC,CAAA;AAAA,YAC1E,EAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,OACF;AAAA,MACMA,qBAAI,iBAAiB,CAAA;AAAA,MACrBA,qBAAI,cAAc,CAAA;AAAA,MAClBA,qBAAI,aAAa,CAAA;AAAA,MACjBA,gBAAA,CAAA,MAAA;AAAA,QACJ;AAAA,UACQA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,EAAA,EAAI,MAAM,CAAA;AAAA,UAC5BA,gBAAA,CAAA,MAAA,CAAO,CAAOA,gBAAA,CAAA,GAAA,CAAI,OAAO,CAAA,EAASA,gBAAA,CAAA,GAAA,CAAI,OAAO,CAAA,EAASA,gBAAA,CAAA,GAAA,CAAI,KAAK,CAAC,CAAA,EAAG,WAAW,CAAA;AAAA,UAC9EA,qBAAI,sBAAsB,CAAA;AAAA,UAC1BA,qBAAI,oBAAoB,CAAA;AAAA,UACxBA,qBAAI,mBAAmB,CAAA;AAAA,UACvBA,gBAAA,CAAA,MAAA;AAAA,YACJ;AAAA,cACQA,2BAAU,WAAW,CAAA;AAAA,cACrBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,CAAA,EAAG,YAAY,CAAA;AAAA,cAClCA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,CAAA,EAAG,WAAW;AAAA,aACzC;AAAA,YACA;AAAA,WACF;AAAA,UACMA,gBAAA,CAAA,MAAA;AAAA,YACJ,CAAOA,gBAAA,CAAA,SAAA,CAAU,iBAAiB,CAAA,EAASA,gBAAA,CAAA,SAAA,CAAU,gBAAgB,CAAC,CAAA;AAAA,YACtE;AAAA,WACF;AAAA,UACMA,wBAAO,CAAOA,gBAAA,CAAA,SAAA,CAAU,OAAO,CAAC,GAAG,mBAAmB,CAAA;AAAA,UACtDA,oBAAG,iBAAiB,CAAA;AAAA,UACpBA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,UAAU,CAAA;AAAA,UAC/BA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,EAAA,EAAI,SAAS;AAAA,SACxC;AAAA,QACA;AAAA,OACF;AAAA,MACMA,gBAAA,CAAA,MAAA;AAAA,QACJ;AAAA,UACQA,qBAAI,gBAAgB,CAAA;AAAA,UACpBA,qBAAI,cAAc,CAAA;AAAA,UAClBA,qBAAI,4BAA4B,CAAA;AAAA,UAChCA,qBAAI,6BAA6B;AAAA,SACzC;AAAA,QACA;AAAA,OACF;AAAA,MACMA,gBAAA,CAAA,MAAA;AAAA,QACJ;AAAA,UACQA,qBAAI,gBAAgB,CAAA;AAAA,UACpBA,qBAAI,cAAc,CAAA;AAAA,UAClBA,qBAAI,4BAA4B,CAAA;AAAA,UAChCA,qBAAI,6BAA6B;AAAA,SACzC;AAAA,QACA;AAAA,OACF;AAAA,MACMA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,EAAA,EAAI,iBAAiB,CAAA;AAAA,MACvCA,oBAAG,gCAAgC,CAAA;AAAA,MACnCA,oBAAG,wCAAwC,CAAA;AAAA,MAC3CA,oBAAG,uBAAuB,CAAA;AAAA,MAC1BA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,EAAA,EAAG,EAAG,CAAA,EAAG,WAAW,CAAA;AAAA,MAChCA,qBAAI,kCAAkC,CAAA;AAAA,MACtCA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,EAAA,EAAI,kDAAkD,CAAA;AAAA,MACzEA,qBAAI,oCAAoC;AAAA,KAChD;AAAA,IACA;AAAA,GACF;AAAA,EACMA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,GAAA,EAAK,eAAe,CAAA;AAAA,EACvCA,qBAAI,qCAAqC,CAAA;AAAA,EACzCA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,EAAA,EAAI,oDAAoD,CAAA;AAAA,EAC3EA,gBAAA,CAAA,KAAA,CAAYA,gBAAA,CAAA,GAAA,EAAI,EAAG,GAAA,EAAK,SAAS;AACzC,CAAC,CAAA;AAEM,SAAS,uBAAuB,IAAA,EAA0B;AAC/D,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,oBAAoB,CAAA,EAAG;AAClD,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAEA,EAAA,MAAM,MAAM,aAAA,CAAc,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAC9C,EAAA,OAAO,GAAA;AACT;AAEO,SAAS,0BAA0B,IAAA,EAA6B;AACrE,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,uBAAuB,CAAA,EAAG;AACrD,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAEA,EAAA,MAAM,MAAM,gBAAA,CAAiB,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AACjD,EAAA,OAAO,GAAA;AACT;AAEO,SAAS,sBAAsB,aAAA,EAAuD;AAC3F,EAAA,OAAO;AAAA,IACL,aAAA,EAAe,IAAIhC,iBAAAA,CAAU,aAAA,CAAc,aAAa,CAAA;AAAA,IACxD,KAAA,EAAO,IAAIA,iBAAAA,CAAU,aAAA,CAAc,KAAK,CAAA;AAAA;AAAA,IAExC,WAAW,aAAA,CAAc,QAAA,IAAY,EAAC,EAAG,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,MACtD,cAAA,EAAgB,IAAIA,iBAAAA,CAAU,IAAA,CAAK,cAAc,CAAA;AAAA,MACjD,eAAA,EAAiB,IAAIsB,oBAAAA,CAAG,IAAA,CAAK,eAAe,CAAA;AAAA,MAC5C,aAAA,EAAe,IAAIA,oBAAAA,CAAG,IAAA,CAAK,aAAa;AAAA,KAC1C,CAAE,CAAA;AAAA,IACF,UAAU,aAAA,CAAc,OAAA,IAAW,EAAC,EAAG,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,MACpD,aAAA,EAAe,IAAItB,iBAAAA,CAAU,IAAA,CAAK,aAAa,CAAA;AAAA,MAC/C,gBAAA,EAAkB,IAAIsB,oBAAAA,CAAG,IAAA,CAAK,gBAAgB,CAAA;AAAA,MAC9C,aAAA,EAAe,IAAIA,oBAAAA,CAAG,IAAA,CAAK,aAAa;AAAA,KAC1C,CAAE;AAAA,GACJ;AACF;AAEO,SAAS,mBAAmB,UAAA,EAA8C;AAC/E,EAAA,OAAO;AAAA,IACL,aAAA,EAAe,IAAItB,iBAAAA,CAAU,UAAA,CAAW,aAAa,CAAA;AAAA,IACrD,cAAA,EAAgB,IAAIA,iBAAAA,CAAU,UAAA,CAAW,cAAc,CAAA;AAAA,IACvD,SAAA,EAAW;AAAA,MACT,UAAA,EAAY,IAAIA,iBAAAA,CAAU,UAAA,CAAW,UAAU,UAAU,CAAA;AAAA,MACzD,WAAA,EAAa,IAAIA,iBAAAA,CAAU,UAAA,CAAW,UAAU,WAAW,CAAA;AAAA,MAC3D,YAAA,EAAc,IAAIsB,oBAAAA,CAAG,UAAA,CAAW,UAAU,YAAY,CAAA;AAAA,MACtD,eAAA,EAAiB,IAAIA,oBAAAA,CAAG,UAAA,CAAW,UAAU,eAAe,CAAA;AAAA,MAC5D,gBAAA,EAAkB,IAAIA,oBAAAA,CAAG,UAAA,CAAW,UAAU,gBAAgB,CAAA;AAAA,MAC9D,yBAAA,EAA2B,IAAIA,oBAAAA,CAAG,UAAA,CAAW,UAAU,yBAAyB,CAAA;AAAA,MAChF,yBAAA,EAA2B,IAAIA,oBAAAA,CAAG,UAAA,CAAW,UAAU,yBAAyB,CAAA;AAAA,MAChF,qBAAA,EAAuB,IAAIA,oBAAAA,CAAG,UAAA,CAAW,UAAU,qBAAqB;AAAA,KAC1E;AAAA,IACA,UAAA,EAAY;AAAA,MACV,UAAA,EAAY,IAAItB,iBAAAA,CAAU,UAAA,CAAW,WAAW,UAAU,CAAA;AAAA,MAC1D,eAAA,EAAiB,IAAIsB,oBAAAA,CAAG,UAAA,CAAW,WAAW,eAAe,CAAA;AAAA,MAC7D,WAAA,EAAa,IAAItB,iBAAAA,CAAU,UAAA,CAAW,WAAW,WAAW;AAAA,KAC9D;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,mBAAA,EAAqB,WAAW,MAAA,CAAO,mBAAA;AAAA,MACvC,wBAAA,EAA0B,WAAW,MAAA,CAAO,wBAAA;AAAA,MAC5C,iBAAA,EAAmB,WAAW,MAAA,CAAO,iBAAA,IAAA,CAAA;AAAA,MACrC,YAAA,EAAc,IAAIsB,oBAAAA,CAAG,UAAA,CAAW,OAAO,YAAY,CAAA;AAAA,MACnD,WAAA,EAAa,IAAIA,oBAAAA,CAAG,UAAA,CAAW,OAAO,WAAW,CAAA;AAAA,MACjD,eAAA,EAAiB;AAAA,QACf,QAAQ,UAAA,CAAW,MAAA,CAAO,gBAAgB,MAAA,CAAO,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,UAC9D,oBAAoB,IAAA,CAAK,kBAAA;AAAA,UACzB,eAAe,IAAA,CAAK;AAAA,SACtB,CAAE;AAAA,OACJ;AAAA,MACA,SAAA,EAAW;AAAA,QACT,kBAAA,EAAoB;AAAA,UAClB,WAAW,IAAItB,iBAAAA,CAAU,WAAW,MAAA,CAAO,SAAA,CAAU,mBAAmB,SAAS;AAAA,SACnF;AAAA,QACA,wBAAA,EAA0B;AAAA,UACxB,iBAAiB,IAAIA,iBAAAA;AAAA,YACnB,UAAA,CAAW,MAAA,CAAO,SAAA,CAAU,wBAAA,CAAyB;AAAA,WACvD;AAAA,UACA,gBAAgB,IAAIA,iBAAAA;AAAA,YAClB,UAAA,CAAW,MAAA,CAAO,SAAA,CAAU,wBAAA,CAAyB;AAAA;AACvD,SACF;AAAA,QACA,iBAAA,EAAmB;AAAA,UACjB,OAAO,IAAIA,iBAAAA,CAAU,WAAW,MAAA,CAAO,SAAA,CAAU,kBAAkB,KAAK;AAAA;AAC1E;AACF;AACF,GACF;AACF;AC/UO,IAAM,wBAAA,GAA2B;AACjC,IAAM,uBAAA,GAA0B;AAChC,IAAM,iBAAA,GAAoB;AAC1B,IAAM,sBAAA,GAAyB;AAC/B,IAAM,wBAAA,GAA2B;AACjC,IAAM,8BAAA,GAAiC;AACvC,IAAM,uBAAA,GAA0B;AAChC,IAAM,wBAAA,GAA2B;AACjC,IAAM,mBAAA,GAAsB;AAC5B,IAAM,eAAA,GAAkB;AAGxB,SAAS,2BAAA,CACd,eACA,oBAAA,EACA;AACA,EAAA,OAAO;AAAA,IACL,sBAAA,EAAwB,4BAAA,CAA6B,aAAa,CAAA,CAAE,CAAC,CAAA;AAAA,IACrE,sBAAA,EAAwB,4BAAA,CAA6B,aAAA,EAAe,oBAAoB,EAAE,CAAC,CAAA;AAAA,IAC3F,qBAAA,EAAuB,2BAAA,CAA4B,aAAA,EAAe,oBAAoB,EAAE,CAAC,CAAA;AAAA,IACzF,mCAAA,EAAqC,6BAAA;AAAA,MACnC,aAAA;AAAA,MACA;AAAA,MACA,CAAC;AAAA,GACL;AACF;AAEO,SAAS,6BAA6B,aAAA,EAA+C;AAC1F,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,wBAAwB,CAAA,EAAG,aAAA,CAAc,UAAU,CAAA;AAAA,IAChE;AAAA,GACF;AACF;AAEO,SAAS,4BAAA,CACd,eACA,oBAAA,EACqB;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf;AAAA,MACE,MAAA,CAAO,KAAK,uBAAuB,CAAA;AAAA,MACnC,cAAc,QAAA,EAAS;AAAA,MACvB,qBAAqB,QAAA;AAAS,KAChC;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,iBAAA,CACd,eACA,oBAAA,EACqB;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,iBAAiB,CAAA,EAAG,cAAc,QAAA,EAAS,EAAG,oBAAA,CAAqB,QAAA,EAAU,CAAA;AAAA,IAC1F;AAAA,GACF;AACF;AAEO,SAAS,2BAAA,CACd,eACA,oBAAA,EACqB;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf;AAAA,MACE,MAAA,CAAO,KAAK,sBAAsB,CAAA;AAAA,MAClC,cAAc,QAAA,EAAS;AAAA,MACvB,qBAAqB,QAAA;AAAS,KAChC;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,6BAAA,CACd,eACA,oBAAA,EACqB;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf;AAAA,MACE,MAAA,CAAO,KAAK,wBAAwB,CAAA;AAAA,MACpC,cAAc,QAAA,EAAS;AAAA,MACvB,qBAAqB,QAAA;AAAS,KAChC;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,yBAAyB,QAAA,EAA0C;AACjF,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,8BAA8B,CAAA,EAAG,QAAA,CAAS,UAAU,CAAA;AAAA,IACjE;AAAA,GACF;AACF;AAEO,SAAS,mBAAmB,IAAA,EAAsC;AACvE,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,uBAAuB,CAAA,EAAG,IAAA,CAAK,UAAU,CAAA;AAAA,IACtD;AAAA,GACF;AACF;AAEO,SAAS,oBAAoB,IAAA,EAAsC;AACxE,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,wBAAwB,CAAA,EAAG,IAAA,CAAK,UAAU,CAAA;AAAA,IACvD;AAAA,GACF;AACF;AAEO,SAAS,eAAe,UAAA,EAAyC;AACtE,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,mBAAmB,GAAG,UAAU,CAAA;AAAA,IAC7C;AAAA,GACF;AACF;AAaO,IAAM,oBAAA,GAAuB,CAClC,cAAA,EACA,eAAA,EACA,YAAuB,gBAAA,EACvB,eAAA,GAA6BA,iBAAAA,CAAU,OAAA,EACvC,kBAA6BA,iBAAAA,CAAU,OAAA,EACvC,GAAA,GAAc,CAAA,EACd,KAAa,CAAA,KACV;AACH,EAAA,OAAO,gBAAA;AAAA,IACL,SAAA;AAAA,IACA,GAAA;AAAA,IACA,EAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,eAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,IAAM,gBAAA,GAAmB,CAC9B,SAAA,EACA,GAAA,EACA,IACA,cAAA,EACA,eAAA,EACA,iBACA,eAAA,KACG;AACH,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf;AAAA,MACE,MAAA,CAAO,IAAA,CAAK,CAAC,GAAG,CAAC,CAAA;AAAA,MACjB,MAAA,CAAO,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA;AAAA,MAChB,eAAe,QAAA,EAAS;AAAA,MACxB,gBAAgB,QAAA,EAAS;AAAA,MACzB,gBAAgB,QAAA,EAAS;AAAA,MACzB,gBAAgB,QAAA;AAAS,KAC3B;AAAA,IACA;AAAA,GACF;AACF;AAUO,SAAS,eAAA,CACd,SAAA,EACA,SAAA,EACA,UAAA,EACqB;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA,EAAG,UAAU,QAAA,EAAS,EAAG,UAAA,CAAW,QAAA,EAAU,CAAA;AAAA,IAC1E;AAAA,GACF;AACF;ACxKA,IAAM,kBAAkBiC,yBAAA,CAAQ,KAAA,CAAM,EAAE,SAAA,EAAW,IAAI,CAAA;AAEhD,IAAM,QAAA,GAAN,MAAM,SAAA,CAAS;AAAA,EACpB,OAAO,UAAA,GAAa,GAAA;AAAA,EACpB,OAAO,WAAA,GAAc,GAAA;AAAA,EACrB,OAAO,SAAA,GAAY,EAAA;AAAA,EACnB,OAAO,aAAa,IAAI,eAAA,CAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,UAAS,SAAS,CAAA;AAAA,EAEjE,OAAO,QAAA,GAAW,IAAIX,oBAAAA,CAAG,CAAC,EAAE,GAAA,CAAI,IAAIA,oBAAAA,CAAG,SAAA,CAAS,UAAU,CAAC,CAAA,CAAE,IAAI,IAAIA,oBAAAA,CAAG,CAAC,CAAC,CAAA;AAAA,EAC1E,OAAO,SAAA,GAAY,IAAIA,oBAAAA,CAAG,CAAC,EAAE,GAAA,CAAI,IAAIA,oBAAAA,CAAG,SAAA,CAAS,WAAW,CAAC,CAAA,CAAE,IAAI,IAAIA,oBAAAA,CAAG,CAAC,CAAC,CAAA;AAAA,EAC5E,OAAO,MAAA,GAAS,IAAIA,oBAAAA,CAAG,CAAC,CAAA;AAAA,EAExB,OAAA;AAAA,EAEA,YAAY,OAAA,EAAa;AACvB,IAAA,IAAI,OAAA,CAAQ,GAAG,SAAA,CAAS,MAAM,KAAK,OAAA,CAAQ,EAAA,CAAG,SAAA,CAAS,SAAS,CAAA,EAAG;AACjE,MAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,IACvC;AAEA,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AAAA,EAEA,SAAA,GAAqB;AACnB,IAAA,OAAO,IAAI,gBAAgB,IAAA,CAAK,OAAA,CAAQ,UAAU,CAAA,CAAE,GAAA,CAAI,SAAA,CAAS,UAAU,CAAA;AAAA,EAC7E;AAAA,EAEA,OAAO,YAAY,CAAA,EAA+B;AAChD,IAAA,MAAM,gBAAgB,IAAI,eAAA,CAAgB,CAAC,CAAA,CAAE,GAAA,CAAI,UAAS,UAAU,CAAA;AACpE,IAAA,MAAM,oBAAA,GAAuB,aAAa,aAAa,CAAA;AAIvD,IAAA,MAAM,WAAA,GAAc,IAAIA,oBAAAA,CAAG,oBAAA,CAAqB,SAAS,CAAA;AACzD,IAAA,OAAO,IAAI,UAAS,WAAW,CAAA;AAAA,EACjC;AAAA,EAEA,OAAO,QAAQ,CAAA,EAA+B;AAC5C,IAAA,MAAM,UAAU,IAAI,eAAA,CAAgB,CAAC,CAAA,CAAE,IAAI,GAAK,CAAA;AAChD,IAAA,OAAO,SAAA,CAAS,YAAY,OAAO,CAAA;AAAA,EACrC;AAAA,EAEA,OAAO,YAAY,CAAA,EAA+B;AAChD,IAAA,MAAM,UAAU,IAAI,eAAA,CAAgB,CAAC,CAAA,CAAE,IAAI,GAAG,CAAA;AAC9C,IAAA,OAAO,SAAA,CAAS,YAAY,OAAO,CAAA;AAAA,EACrC;AAAA,EAEA,QAAA,GAAe;AACb,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA,EAEA,GAAG,CAAA,EAAsB;AACvB,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,EAAA,CAAG,CAAA,CAAE,UAAU,CAAA;AAAA,EACrC;AAAA,EAEA,GAAG,CAAA,EAAsB;AACvB,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,EAAA,CAAG,CAAA,CAAE,UAAU,CAAA;AAAA,EACrC;AAAA,EAEA,IAAI,CAAA,EAAsB;AACxB,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,CAAE,UAAU,CAAA;AAAA,EACtC;AAAA,EAEA,IAAI,CAAA,EAAsB;AACxB,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,CAAE,UAAU,CAAA;AAAA,EACtC;AAAA,EAEA,GAAG,CAAA,EAAsB;AACvB,IAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,EAAA,CAAG,CAAA,CAAE,UAAU,CAAA;AAAA,EACrC;AACF,CAAA;AAQA,SAAS,aAAa,OAAA,EAA2B;AAC/C,EAAA,OAAO,OAAA,CAAQ,eAAA,CAAgB,CAAA,EAAGW,yBAAA,CAAQ,eAAe,CAAA;AAC3D;;;AC9CO,IAAM,oBAAoB,CAC/B,CAAA,EACA,EAAA,EACA,EAAA,EACA,IACA,EAAA,KACW;AACX,EAAA,OAAO,EAAA,GAAA,CAAO,CAAA,GAAI,EAAA,KAAO,EAAA,GAAK,OAAQ,EAAA,GAAK,EAAA,CAAA;AAC7C;AAQO,IAAM,mBAAA,GAAsB,CACjC,kBAAA,EACA,KAAA,KACW;AACX,EAAA,IAAI,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,IAAI,CAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA;AAElC,EAAA,IAAI,qBAAqB,CAAA,EAAG;AAC1B,IAAA,kBAAA,GAAqB,CAAA;AAAA,EACvB;AAEA,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACrC,IAAA,MAAM,YAAA,GAAe,MAAM,CAAC,CAAA;AAC5B,IAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,CAAA,GAAI,CAAC,CAAA;AAEjC,IAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,aAAA,EAAe;AACnC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,CAAC,gBAAA,EAAkB,SAAS,CAAA,GAAI,YAAA;AACtC,IAAA,IAAI,qBAAqB,kBAAA,EAAoB;AAC3C,MAAA,OAAO,SAAA;AAAA,IACT;AAEA,IAAA,IAAI,sBAAsB,gBAAA,EAAkB;AAC1C,MAAA,EAAA,GAAK,cAAc,CAAC,CAAA;AACpB,MAAA,EAAA,GAAK,cAAc,CAAC,CAAA;AACpB,MAAA,EAAA,GAAK,aAAa,CAAC,CAAA;AACnB,MAAA,EAAA,GAAK,aAAa,CAAC,CAAA;AACnB,MAAA;AAAA,IACF;AAAA,EACF;AAEA,EAAA,IAAI,OAAO,CAAA,IAAK,EAAA,KAAO,KAAK,EAAA,KAAO,CAAA,IAAK,OAAO,CAAA,EAAG;AAChD,IAAA,MAAM,SAAA,GAAY,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AACxC,IAAA,OAAO,SAAA,GAAY,SAAA,CAAU,CAAC,CAAA,GAAI,CAAA;AAAA,EACpC;AAEA,EAAA,OAAO,iBAAA,CAAkB,kBAAA,EAAoB,EAAA,EAAI,EAAA,EAAI,IAAI,EAAE,CAAA;AAC7D;AAcO,SAAS,mBAAA,CAAoB,GAAA,EAAa,cAAA,GAAyB,cAAA,EAAwB;AAChG,EAAA,OAAO,KAAK,GAAA,CAAI,CAAA,GAAI,GAAA,GAAM,cAAA,EAAgB,cAAc,CAAA,GAAI,CAAA;AAC9D;AAYO,SAAS,qBAAqB,OAAA,EAAiC;AACpE,EAAA,MAAM,2BAA2B,IAAIA,yBAAAA,CAAQ,QAAQ,SAAA,CAAU,eAAA,CAAgB,UAAU,CAAA;AACzF,EAAA,MAAM,iBAAiB,IAAI,QAAA,CAAS,QAAQ,SAAA,CAAU,gBAAgB,EAAE,SAAA,EAAU;AAClF,EAAA,MAAM,yBAAyB,IAAI,QAAA;AAAA,IACjC,QAAQ,SAAA,CAAU;AAAA,IAClB,SAAA,EAAU;AACZ,EAAA,MAAM,0BAA0B,IAAI,QAAA;AAAA,IAClC,QAAQ,SAAA,CAAU;AAAA,IAClB,SAAA,EAAU;AACZ,EAAA,MAAM,sBAAsB,IAAI,QAAA,CAAS,QAAQ,SAAA,CAAU,qBAAqB,EAAE,SAAA,EAAU;AAE5F,EAAA,OAAO,wBAAA,CACJ,GAAA,CAAI,cAAc,CAAA,CAClB,GAAA,CAAI,sBAAsB,CAAA,CAC1B,GAAA,CAAI,uBAAuB,CAAA,CAC3B,GAAA,CAAI,mBAAmB,CAAA;AAC5B;AAQO,SAAS,0BAA0B,OAAA,EAAgC;AACxE,EAAA,MAAM,eAAe,IAAI,QAAA,CAAS,QAAQ,SAAA,CAAU,gBAAgB,EAAE,SAAA,EAAU;AAChF,EAAA,MAAM,WAAA,GAAc,qBAAqB,OAAO,CAAA;AAChD,EAAA,IAAI,WAAA,CAAY,EAAA,CAAG,CAAC,CAAA,EAAG;AACrB,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,OAAO,YAAA,CAAa,SAAA,CAAU,WAAW,CAAA,CAAE,QAAA,EAAS;AACtD;AAWO,SAAS,2BAA2B,OAAA,EAAiD;AAC1F,EAAA,MAAM,KAAA,GAAQ,QAAQ,MAAA,CAAO,iBAAA,IAAA,CAAA;AAC7B,EAAA,QAAQ,KAAA;AAAO,IACb,KAAA,CAAA;AAAA,IACA,KAAA,CAAA;AACE,MAAA,OAAO,KAAA;AAAA,IACT;AACE,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,wCAAA,EAA2C,KAAK,CAAA,CAAE,CAAA;AAAA;AAExE;AAQO,SAAS,oBAAA,CACd,uBAA+B,+BAAA,EACvB;AACR,EAAA,OAAO,MAAO,gBAAA,GAAmB,oBAAA;AACnC;AAgBO,SAAS,kBAAA,CACd,OAAA,EACA,oBAAA,GAA+B,+BAAA,EACd;AACjB,EAAA,QAAQ,0BAAA,CAA2B,OAAO,CAAA;AAAG,IAC3C,KAAA,CAAA;AACE,MAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,oBAAoB,CAAA,IAAK,wBAAwB,CAAA,EAAG;AACvE,QAAA,MAAM,IAAI,KAAA;AAAA,UACR,qDAAqD,oBAAoB,CAAA;AAAA,SAC3E;AAAA,MACF;AACA,MAAA,OAAO;AAAA,QACL,UAAA,EAAY,qBAAqB,oBAAoB,CAAA;AAAA,QACrD,cAAA,EAAgB;AAAA,OAClB;AAAA,IACF,KAAA,CAAA;AACE,MAAA,OAAO,EAAE,UAAA,EAAY,CAAA,EAAG,cAAA,EAAgB,gBAAA,EAAiB;AAAA;AAE/D;AAOO,SAAS,6BAAA,CACd,OAAA,EACA,oBAAA,GAA+B,+BAAA,EACvB;AACR,EAAA,OAAO,kBAAA,CAAmB,OAAA,EAAS,oBAAoB,CAAA,CAAE,UAAA;AAC3D;AAYO,SAAS,kCAAA,CACd,OAAA,EACA,oBAAA,GAA+B,+BAAA,EACvB;AACR,EAAA,MAAM,EAAE,UAAA,EAAW,GAAI,kBAAA,CAAmB,SAAS,oBAAoB,CAAA;AACvE,EAAA,MAAM,kBAAA,GAAqB,0BAA0B,OAAO,CAAA;AAC5D,EAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,CAAQ,MAAA,CAAO,gBAAgB,MAAM,CAAA;AACvE,EAAA,OAAO,mBAAA,CAAoB,kBAAA,EAAoB,KAAK,CAAA,GAAI,UAAA;AAC1D;AASO,SAAS,kCAAA,CACd,OAAA,EACA,oBAAA,GAA+B,+BAAA,EACvB;AACR,EAAA,MAAM,UAAA,GAAa,kCAAA,CAAmC,OAAA,EAAS,oBAAoB,CAAA;AACnF,EAAA,MAAM,kBAAA,GAAqB,0BAA0B,OAAO,CAAA;AAC5D,EAAA,MAAM,mBAAA,GAAsB,CAAA,GAAI,OAAA,CAAQ,MAAA,CAAO,mBAAA,GAAsB,GAAA;AAErE,EAAA,OAAO,aAAa,kBAAA,GAAqB,mBAAA;AAC3C;AAWO,SAAS,wBAAA,CACd,OAAA,EACA,oBAAA,GAA+B,+BAAA,EACvB;AACR,EAAA,MAAM,EAAE,cAAA,EAAe,GAAI,kBAAA,CAAmB,SAAS,oBAAoB,CAAA;AAC3E,EAAA,MAAM,SAAA,GAAY,kCAAA,CAAmC,OAAA,EAAS,oBAAoB,CAAA;AAClF,EAAA,OAAO,mBAAA,CAAoB,WAAW,cAAc,CAAA;AACtD;AAEO,SAAS,eAAe,KAAA,EAA0C;AACvE,EAAA,MAAM,kBAAkB,IAAIA,yBAAAA,CAAQ,MAAM,SAAA,CAAU,YAAA,CAAa,UAAU,CAAA;AAC3E,EAAA,MAAM,mBAAA,GAAsB,qBAAqB,KAAK,CAAA;AACtD,EAAA,MAAM,qBAAqB,IAAIA,yBAAAA,CAAQ,MAAM,UAAA,CAAW,eAAA,CAAgB,UAAU,CAAA;AAElF,EAAA,MAAM,WAAW,IAAIA,yBAAAA,CAAQ,EAAE,CAAA,CAAE,IAAI,eAAe,CAAA;AACpD,EAAA,MAAM,YAAY,IAAIA,yBAAAA,CAAQ,EAAE,CAAA,CAAE,IAAI,eAAe,CAAA;AAErD,EAAA,MAAM,WAAA,GAAc,mBAAA,CAAoB,GAAA,CAAI,QAAQ,CAAA;AACpD,EAAA,MAAM,eAAA,GAAkB,kBAAA,CAAmB,GAAA,CAAI,SAAS,CAAA;AAExD,EAAA,OAAO,CAAC,aAAa,eAAe,CAAA;AACtC;AAUO,IAAM,mBAAA,GAAsB,CAAC,MAAA,KAA6D;AAC/F,EAAA,MAAM,QAA4B,EAAC;AACnC,EAAA,KAAA,MAAW,EAAE,kBAAA,EAAoB,aAAA,EAAc,IAAK,MAAA,EAAQ;AAC1D,IAAA,KAAA,CAAM,IAAA,CAAK;AAAA,MACT,kBAAA,GAAqB,sBAAA;AAAA,MACrB,aAAA,GAAgB;AAAA,KACjB,CAAA;AAED,IAAA,IAAI,uBAAuB,sBAAA,EAAwB;AACjD,MAAA;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAMO,SAAS,yBAAyB,OAAA,EAAgC;AACvE,EAAA,OAAO,OAAA,CAAQ,OAAO,wBAAA,GAA2B,GAAA;AACnD;AAKO,SAAS,uBAAuB,OAAA,EAAgC;AACrE,EAAA,OAAO,CAAA,GAAI,OAAA,CAAQ,MAAA,CAAO,mBAAA,GAAsB,GAAA;AAClD;AAkBO,SAAS,2BACd,WAAA,EACAC,qBAAAA,EACA,qBAAA,EACA,mBAAA,EACA,iBAAyB,cAAA,EACM;AAC/B,EAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,KAAA,GAAQ,oBAAoB,WAAW,CAAA;AAE7C,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,KAAI,EAAG,CAAC,GAAG,CAAA,KAAM;AAC3C,IAAA,MAAM,cAAc,CAAA,GAAI,GAAA;AAGxB,IAAA,MAAM,cAAA,GAAiB,mBAAA,CAAoB,WAAA,EAAa,KAAK,CAAA,GAAIA,qBAAAA;AACjE,IAAA,MAAM,YAAY,cAAA,GAAiB,qBAAA;AAGnC,IAAA,MAAM,SAAA,GAAY,cAAc,SAAA,GAAY,mBAAA;AAG5C,IAAA,MAAM,SAAA,GAAY,mBAAA,CAAoB,SAAA,EAAW,cAAc,CAAA;AAC/D,IAAA,MAAM,SAAA,GAAY,mBAAA,CAAoB,SAAA,EAAW,cAAc,CAAA;AAE/D,IAAA,OAAO;AAAA,MACL,aAAa,WAAA,GAAc,GAAA;AAAA,MAC3B,WAAW,SAAA,GAAY,GAAA;AAAA,MACvB,WAAW,SAAA,GAAY;AAAA,KACzB;AAAA,EACF,CAAC,CAAA;AACH;AAQO,SAAS,qCAAA,CACd,OAAA,EACA,oBAAA,GAA+B,+BAAA,EACA;AAC/B,EAAA,MAAM,EAAE,UAAA,EAAY,cAAA,EAAe,GAAI,kBAAA,CAAmB,SAAS,oBAAoB,CAAA;AACvF,EAAA,OAAO,0BAAA;AAAA,IACL,OAAA,CAAQ,OAAO,eAAA,CAAgB,MAAA;AAAA,IAC/B,UAAA;AAAA,IACA,yBAAyB,OAAO,CAAA;AAAA,IAChC,uBAAuB,OAAO,CAAA;AAAA,IAC9B;AAAA,GACF;AACF;ACjaO,SAAS,2BAA2B,MAAA,EAA8B;AACvE,EAAA,MAAM,GAAA,GAAM,IAAID,yBAAAA,CAAAA,iBAAQ,IAAI,IAAA,IAAO,OAAA,EAAS,CAAA,CAAE,GAAA,CAAI,GAAI,CAAA;AACtD,EAAA,IAAI,uBAAA,GAA0B,IAAIA,yBAAAA,CAAQ,CAAC,CAAA;AAC3C,EAAA,KAAA,IAAS,CAAA,GAAI,GAAG,CAAA,GAAI,MAAA,CAAO,oBAAoB,MAAA,CAAO,MAAA,GAAS,GAAG,CAAA,EAAA,EAAK;AACrE,IAAA,MAAM,YAAA,GAAe,MAAA,CAAO,mBAAA,CAAoB,MAAA,CAAO,CAAC,CAAA;AACxD,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,mBAAA,CAAoB,MAAA,CAAO,IAAI,CAAC,CAAA;AAEzD,IAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,SAAA,EAAW;AAC/B,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,EAAE,OAAA,EAAS,gBAAA,EAAkB,iBAAA,EAAkB,GAAI,YAAA;AACzD,IAAA,MAAM,EAAE,OAAA,EAAS,gBAAA,EAAiB,GAAI,SAAA;AAEtC,IAAA,MAAM,eAAA,GAAkB,IAAIA,yBAAAA,CAAQ,gBAAA,CAAiB,UAAU,CAAA;AAC/D,IAAA,MAAM,aAAA,GAAgB,IAAIA,yBAAAA,CAAQ,gBAAA,CAAiB,UAAU,CAAA;AAC7D,IAAA,MAAM,GAAA,GAAM,IAAIA,yBAAAA,CAAQ,iBAAA,CAAkB,UAAU,CAAA;AACpD,IAAA,IAAI,eAAA,IAAmB,GAAA,IAAO,aAAA,IAAiB,GAAA,EAAK;AAClD,MAAA,uBAAA,GAA0B,GAAA;AAC1B,MAAA;AAAA,IACF,CAAA,MAAA,IAAW,eAAA,GAAkB,GAAA,IAAO,aAAA,GAAgB,GAAA,EAAK;AACvD,MAAA,uBAAA,GAA0B,GAAA;AAC1B,MAAA;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,mBAAA,GAAsB,MAAA,CAAO,KAAA,CAAM,QAAA,CAAS,QAAA,EAAS;AAC3D,EAAA,MAAM,2BAAA,GAA8B,IAAIA,yBAAAA,CAAQ,EAAE,CAAA,CAAE,GAAA;AAAA,IAClD,MAAA,CAAO,yBAAyB,QAAA;AAAS,GAC3C;AACA,EAAA,MAAM,2BAAA,GAA8B,IAAIA,yBAAAA,CAAQ,EAAE,EAAE,GAAA,CAAI,mBAAA,CAAoB,UAAU,CAAA;AAEtF,EAAA,MAAM,WAAA,GAAc,IAAIA,yBAAAA,CAAQ,uBAAA,CAAwB,QAAA,EAAU,CAAA,CAC/D,GAAA,CAAI,2BAA2B,CAAA,CAC/B,GAAA,CAAI,2BAA2B,CAAA;AAElC,EAAA,OAAO,uBAAA,GAA0B,WAAA,GAAc,IAAIA,yBAAAA,CAAQ,CAAC,CAAA;AAC9D;AAEA,eAAsB,oBAAA,CACpB,WAAA,EACA,SAAA,EACA,YAAA,EACA;AACA,EAAA,MAAM,aAIA,EAAC;AAEP,EAAA,KAAA,MAAW,UAAA,IAAc,UAAU,WAAA,CAAY,MAAA;AAAA,IAC7C,CAAC,CAAA,KAAM,CAAA,CAAE,MAAM,IAAA,KAAS,IAAIjC,kBAAU,kCAAkC;AAAA,GAC1E,EAAG;AAED,IAAA,MAAM,WAAA,GAAc,YAAA,CAAa,SAAA,CAAU,UAAA,CAAW,QAAA,EAAS;AAC/D,IAAA,MAAM,UAAA,GAAa,UAAA,CAAW,KAAA,CAAM,IAAA,CAAK,QAAA,EAAS;AAElD,IAAA,MAAM,YAAA,GAAe,YAAY,WAAW,CAAA;AAC5C,IAAA,MAAM,WAAA,GAAc,YAAY,UAAU,CAAA;AAG1C,IAAA,IACE,iBAAiB,MAAA,IACjB,YAAA,KAAiB,QACjB,WAAA,KAAgB,MAAA,IAChB,gBAAgB,IAAA,EAChB;AACA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,EAAE,GAAA,EAAK,GAAA,KAAQ,kBAAA,CAAmB,WAAA,EAAa,cAAc,UAAU,CAAA;AAC7E,IAAA,UAAA,CAAW,KAAK,EAAE,SAAA,EAAW,KAAK,UAAA,EAAY,SAAA,EAAW,KAAK,CAAA;AAAA,EAChE;AAEA,EAAA,OAAO,UAAA;AACT;AAEO,SAAS,kBAAA,CACd,WAAA,EACA,OAAA,EACA,UAAA,EACA;AACA,EAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,SAAA,CAAU,YAAA,CAAa,QAAA,EAAS;AACzD,EAAA,MAAM,WAAA,GAAc,qBAAqB,OAAO,CAAA;AAChD,EAAA,MAAM,WAAA,GAAc,QAAQ,SAAA,CAAU,UAAA;AACtC,EAAA,MAAM,WAAA,GAAc,uBAAA,CAAwB,WAAA,EAAa,QAAQ,CAAA;AACjE,EAAA,MAAM,SAAA,GAAY,WAAA,CAAY,WAAA,CAAY,QAAA,EAAU,CAAA,IAAK,CAAA;AACzD,EAAA,MAAM,UAAA,GAAa,WAAA,CAAY,GAAA,CAAI,SAAS,CAAA;AAC5C,EAAA,MAAM,uBAAA,GAA0B,2BAA2B,UAAU,CAAA;AACrE,EAAA,MAAM,gBAAgB,uBAAA,CAAwB,GAAA,CAAI,EAAA,GAAK,EAAA,GAAK,KAAK,GAAG,CAAA;AACpE,EAAA,MAAM,mBAAmB,WAAA,CAAY,UAAA,CAAW,MAAM,IAAA,CAAK,QAAA,EAAU,CAAA,IAAK,CAAA;AAC1E,EAAA,MAAM,kBAAA,GAAqB,aAAA,CAAc,GAAA,CAAI,gBAAgB,CAAA;AAC7D,EAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,GAAA,CAAI,UAAU,CAAA;AAC7C,EAAA,OAAO,EAAE,GAAA,EAAK,GAAA,EAAK,QAAA,CAAS,GAAA,EAAK,CAAC,CAAA,EAAE;AACtC;AAEA,SAAS,QAAA,CAAS,KAAc,eAAA,EAAyB;AAIvD,EAAA,OAAO,IAAIiC,yBAAAA,CAAQ,CAAC,CAAA,CAAE,IAAI,GAAA,CAAI,GAAA,CAAI,eAAe,CAAC,CAAA,CAAE,GAAA,CAAI,eAAe,CAAA,CAAE,IAAI,CAAC,CAAA;AAChF;AAEA,SAAS,uBAAA,CAAwB,QAAuB,QAAA,EAA2B;AACjF,EAAA,MAAM,SAAS,EAAA,IAAM,QAAA;AACrB,EAAA,OAAO,IAAIA,yBAAAA,CAAQ,MAAM,CAAA,CAAE,IAAI,MAAM,CAAA;AACvC;;;ACvGO,SAAS,qBACd,SAAA,EACqB;AACrB,EAAA,OAAO;AAAA,IACL,KAAA,EAAO;AAAA,MACL,IAAA,EAAM,SAAA,CAAU,KAAA,CAAM,IAAA,CAAK,QAAA,EAAS;AAAA,MACpC,QAAA,EAAU,SAAA,CAAU,KAAA,CAAM,QAAA,CAAS,QAAA;AAAS,KAC9C;AAAA,IACA,WAAA,EAAa,SAAA,CAAU,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,MAChD,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,QAAA,EAAS;AAAA,QAC/B,QAAA,EAAU,IAAA,CAAK,KAAA,CAAM,QAAA,CAAS,QAAA;AAAS,OACzC;AAAA,MACA,gBAAA,EAAkB,IAAA,CAAK,gBAAA,CAAiB,QAAA,EAAS;AAAA,MACjD,0BAA0B,IAAA,CAAK,wBAAA;AAAA,MAC/B,mBAAA,EAAqB;AAAA,QACnB,QAAQ,IAAA,CAAK,mBAAA,CAAoB,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,UAClD,OAAA,EAAS,CAAA,CAAE,OAAA,CAAQ,QAAA,EAAS;AAAA,UAC5B,iBAAA,EAAmB,CAAA,CAAE,iBAAA,CAAkB,QAAA;AAAS,SAClD,CAAE;AAAA;AACJ,KACF,CAAE;AAAA,GACJ;AACF;ACxBA,IAAM,iBAAA,GAAoB,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAC,CAAA;AAE3E,IAAM,aAAazB,YAAAA,CAAqB;AAAA,EACtCG,gBAAU,WAAW,CAAA;AAAA,EACrBA,gBAAU,cAAc,CAAA;AAAA,EACxBH,YAAAA;AAAA,IACE,CAACG,eAAAA,CAAU,MAAM,CAAA,EAAGE,UAAI,UAAU,CAAA,EAAGF,eAAAA,CAAU,cAAc,GAAGwB,WAAAA,CAAMtB,SAAAA,EAAI,EAAG,CAAA,EAAG,SAAS,CAAC,CAAA;AAAA,IAC1F;AAAA,GACF;AAAA,EACAsB,WAAAA;AAAA,IACE3B,YAAAA,CAAO;AAAA,MACLA,YAAAA;AAAA,QACE,CAACG,eAAAA,CAAU,MAAM,CAAA,EAAGE,UAAI,UAAU,CAAA,EAAGF,eAAAA,CAAU,cAAc,GAAGwB,WAAAA,CAAMtB,SAAAA,EAAI,EAAG,CAAA,EAAG,SAAS,CAAC,CAAA;AAAA,QAC1F;AAAA,OACF;AAAA,MACAF,gBAAU,cAAc,CAAA;AAAA,MACxBE,UAAI,kBAAkB,CAAA;AAAA,MACtBL,YAAAA;AAAA,QACE,CAAC2B,WAAAA,CAAM3B,YAAAA,CAAO,CAACK,UAAI,SAAS,CAAA,EAAGA,SAAAA,CAAI,mBAAmB,CAAC,CAAC,CAAA,EAAG,EAAA,EAAI,QAAQ,CAAC,CAAA;AAAA,QACxE;AAAA,OACF;AAAA,MACAA,UAAI,yBAAyB,CAAA;AAAA,MAC7BA,UAAI,gBAAgB,CAAA;AAAA,MACpBA,UAAI,wBAAwB,CAAA;AAAA,MAC5BA,UAAI,yBAAyB,CAAA;AAAA,MAC7BuB,WAAK,sBAAsB,CAAA;AAAA,MAC3BvB,UAAI,cAAc,CAAA;AAAA,MAClBJ,SAAG,YAAY,CAAA;AAAA,MACfA,SAAG,0BAA0B,CAAA;AAAA,MAC7B0B,WAAAA,CAAM1B,QAAAA,EAAG,EAAG,CAAA,EAAG,UAAU,CAAA;AAAA,MACzB0B,WAAAA,CAAMtB,SAAAA,EAAI,EAAG,EAAA,EAAI,UAAU;AAAA,KAC5B,CAAA;AAAA,IACD,EAAA;AAAA,IACA;AAAA,GACF;AAAA,EACAA,UAAI,iBAAiB,CAAA;AAAA,EACrBA,UAAI,UAAU,CAAA;AAAA,EACdA,UAAI,mBAAmB,CAAA;AAAA,EACvBF,gBAAU,WAAW,CAAA;AAAA,EACrBA,gBAAU,qBAAqB,CAAA;AAAA,EAC/BE,UAAI,yBAAyB,CAAA;AAAA,EAC7BF,gBAAU,mBAAmB,CAAA;AAAA,EAC7BF,SAAG,UAAU,CAAA;AAAA,EACbA,SAAG,cAAc,CAAA;AAAA,EACjBA,SAAG,iBAAiB,CAAA;AAAA,EACpB0B,WAAAA,CAAM1B,QAAAA,EAAG,EAAG,CAAA,EAAG,UAAU,CAAA;AAAA,EACzBE,gBAAU,mBAAmB,CAAA;AAAA,EAC7BG,UAAI,qBAAqB,CAAA;AAAA,EACzBA,UAAI,0BAA0B,CAAA;AAAA,EAC9BsB,WAAK,wBAAwB,CAAA;AAAA,EAC7BA,WAAK,yBAAyB,CAAA;AAAA,EAC9BvB,UAAI,oBAAoB,CAAA;AAAA,EACxBA,UAAI,sBAAsB,CAAA;AAAA,EAC1BA,UAAI,yBAAyB,CAAA;AAAA,EAC7BF,gBAAU,2BAA2B,CAAA;AAAA,EACrCE,UAAI,aAAa,CAAA;AAAA,EACjBA,UAAI,uBAAuB,CAAA;AAAA,EAC3BA,UAAI,iBAAiB,CAAA;AAAA,EACrBA,UAAI,kCAAkC,CAAA;AAAA,EACtCA,UAAI,kBAAkB,CAAA;AAAA,EACtBF,gBAAU,aAAa,CAAA;AAAA,EACvBE,UAAI,oBAAoB,CAAA;AAAA,EACxBA,UAAI,mBAAmB,CAAA;AAAA,EACvBF,gBAAU,kBAAkB,CAAA;AAAA,EAC5BA,gBAAU,YAAY,CAAA;AAAA,EACtBA,gBAAU,mBAAmB,CAAA;AAAA,EAC7BA,gBAAU,SAAS,CAAA;AAAA,EACnBA,gBAAU,0BAA0B,CAAA;AAAA,EACpCwB,WAAAA,CAAMtB,SAAAA,EAAI,EAAG,EAAA,EAAI,SAAS;AAC5B,CAAC,CAAA;AAEM,SAAS,kBAAkB,IAAA,EAA4B;AAC5D,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,iBAAiB,CAAA,EAAG;AAC/C,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAEA,EAAA,MAAM,MAAM,UAAA,CAAW,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,CAAC,CAAC,CAAA;AAC3C,EAAA,OAAO,GAAA;AACT;AAEO,SAAS,qBAAqB,GAAA,EAA2C;AAC9E,EAAA,OAAO;AAAA,IACL,KAAA,EAAO;AAAA,MACL,IAAA,EAAM,IAAIb,iBAAAA,CAAU,GAAA,CAAI,MAAM,IAAI,CAAA;AAAA,MAClC,QAAA,EAAU,IAAIsB,oBAAAA,CAAG,GAAA,CAAI,MAAM,QAAQ;AAAA,KACrC;AAAA,IACA,WAAA,EAAa,GAAA,CAAI,WAAA,CAAY,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,MAC1C,KAAA,EAAO;AAAA,QACL,IAAA,EAAM,IAAItB,iBAAAA,CAAU,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,QACnC,QAAA,EAAU,IAAIsB,oBAAAA,CAAG,IAAA,CAAK,MAAM,QAAQ;AAAA,OACtC;AAAA,MACA,gBAAA,EAAkB,IAAIA,oBAAAA,CAAG,IAAA,CAAK,gBAAgB,CAAA;AAAA,MAC9C,0BAA0B,IAAA,CAAK,wBAAA;AAAA,MAC/B,mBAAA,EAAqB;AAAA,QACnB,QAAQ,IAAA,CAAK,mBAAA,CAAoB,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,UAClD,OAAA,EAAS,IAAIA,oBAAAA,CAAG,CAAA,CAAE,OAAO,CAAA;AAAA,UACzB,iBAAA,EAAmB,IAAIA,oBAAAA,CAAG,CAAA,CAAE,iBAAiB;AAAA,SAC/C,CAAE;AAAA;AACJ,KACF,CAAE;AAAA,GACJ;AACF;;;AClFO,IAAK,oBAAA,qBAAAe,qBAAAA,KAAL;AACL,EAAAA,sBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,sBAAA,QAAA,CAAA,GAAS,QAAA;AAFC,EAAA,OAAAA,qBAAAA;AAAA,CAAA,EAAA,oBAAA,IAAA,EAAA;AAKL,SAAS,wBAAA,CACd,OACA,OAAA,EACS;AACT,EAAA,OAAO,KAAA,KAAU,OAAA;AACnB;;;AC6JO,IAAK,eAAA,qBAAAC,gBAAAA,KAAL;AACL,EAAAA,iBAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,iBAAA,QAAA,CAAA,GAAS,QAAA;AAFC,EAAA,OAAAA,gBAAAA;AAAA,CAAA,EAAA,eAAA,IAAA,EAAA;;;AClMZ,IAAA,aAAA,GAAA;AAAA,EACE,OAAA,EAAW,6CAAA;AAAA,EACX,QAAA,EAAY;AAAA,IACV,IAAA,EAAQ,OAAA;AAAA,IACR,OAAA,EAAW,SAAA;AAAA,IACX,IAAA,EAAQ;AAAA,GACV;AAAA,EACA,YAAA,EAAgB;AAAA,IACd;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,CAAC,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,GAAA,EAAO;AAAA;AACT;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,KAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,+BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,CAAA,EAAG,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA,cACR,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA,cACR,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,GAAA,EAAO;AAAA;AACT;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,GAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,GAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACjD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,6CAAA;AAAA,YACA,iDAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,uCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA,cACR,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA,cACR,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,GAAA,EAAO;AAAA,cACL,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ,CAAC,mDAAmD;AAAA;AAC9D,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ,CAAC,mDAAmD;AAAA;AAC9D,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA,cACR,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA,cACR,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,GAAA,EAAO;AAAA;AACT,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,CAAC,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ,CAAC,mDAAmD;AAAA;AAC9D,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ,CAAC,mDAAmD;AAAA;AAC9D,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACxD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,KAAA,EAAO,CAAC;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MACjD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACxD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,CAAA,EAAG,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACxD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,CAAA,EAAG,GAAG,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,GAAG,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,CAAC,CAAA;AAAA,MAChD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA;AACZ,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,GAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,EAAE,CAAA;AAAA,MACjD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAG,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,GAAG,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAC,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qDAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACxD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACxD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,GAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oDAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAC,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,GAAG,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,GAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,+BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2CAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA,cACR,KAAA,EAAS,CAAC,QAAA,EAAU,CAAC;AAAA;AACvB;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,CAAC,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,6BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF;AACF,GACF;AAAA,EACA,QAAA,EAAY;AAAA,IACV;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAE;AAAA,KACpD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACzD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE;AAAA,KACpD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,CAAC;AAAA,KACnD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAE;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE;AAAA,KACnD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,CAAA,EAAG,IAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,EAAE;AAAA,KACnD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,GAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,MAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE;AAAA;AACvD,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACzD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACzD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE;AAAA,KACnD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,CAAA,EAAG,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,EAAE;AAAA,KAClD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAC;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,GAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACzD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAE;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,GAAG;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAC;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,EAAE;AAAA;AACrD,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4CAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,WAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0CAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,YAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4CAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,YAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,YAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,aAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,YAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2CAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,KAAA,EAAS;AAAA,IACP;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,CAAC,kCAAkC,CAAA;AAAA,YAC3C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iCAAiC,CAAA;AAAA,YAC1C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iCAAiC,CAAA;AAAA,YAC1C,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mCAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mCAAmC,CAAA;AAAA,YAC5C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iCAAiC,CAAA;AAAA,YAC1C,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iCAAiC,CAAA;AAAA,YAC1C,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA,gBACR,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA,gBACR,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA,gBACR,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA,gBACR,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA,gBACR,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oCAAA;AAAA,cACA,yCAAA;AAAA,cACA,oDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oDAAoD,CAAA;AAAA,YAC7D,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iGAAA;AAAA,cACA,kBAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iCAAiC,CAAA;AAAA,YAC1C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,KAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,8BAA8B,CAAA;AAAA,YACvC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,2CAA2C,CAAA;AAAA,YACpD,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0EAAA;AAAA,cACA,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2GAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wGAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,yDAAyD,CAAA;AAAA,YAClE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,8CAA8C,CAAA;AAAA,YACvD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,6CAA6C,CAAA;AAAA,YACtD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4CAA4C,CAAA;AAAA,YACrD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+BAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,CAAC,qCAAA,EAAuC,iBAAiB,CAAA;AAAA,YACjE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gDAAgD,CAAA;AAAA,YACzD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iDAAiD,CAAA;AAAA,YAC1D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mDAAmD,CAAA;AAAA,YAC5D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ,CAAC,sCAAsC,CAAA;AAAA,YAC/C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,0CAA0C,CAAA;AAAA,YACnD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ,CAAC,0CAA0C,CAAA;AAAA,YACnD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,+CAA+C,CAAA;AAAA,YACxD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gDAAgD,CAAA;AAAA,YACzD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wDAAwD,CAAA;AAAA,YACjE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6GAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,sBAAA,EAAwB,4BAA4B,CAAA;AAAA,YAC7D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wBAAA,EAA0B,4BAA4B,CAAA;AAAA,YAC/D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,0BAAA,EAA4B,4BAA4B,CAAA;AAAA,YACjE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wGAAA;AAAA,cACA,mCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mDAAmD,CAAA;AAAA,YAC5D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ,CAAC,2CAA2C,CAAA;AAAA,YACpD,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,uBAAuB,CAAA;AAAA,YAChC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oGAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qGAAA;AAAA,cACA,kFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iFAAA;AAAA,cACA,kFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mGAAA;AAAA,cACA,mEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+EAAA;AAAA,cACA,wDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA,sCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gDAAA;AAAA,cACA,sCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sGAAA;AAAA,cACA,2DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ,CAAC,sCAAsC,CAAA;AAAA,YAC/C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,2BAA2B,CAAA;AAAA,YACpC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,+BAA+B,CAAA;AAAA,YACxC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4DAAA;AAAA,cACA,iFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uBAAA;AAAA,cACA,qCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gCAAA;AAAA,cACA,qCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,qCAAqC,CAAA;AAAA,YAC9C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,qCAAqC,CAAA;AAAA,YAC9C,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mBAAmB,CAAA;AAAA,YAC5B,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gCAAgC,CAAA;AAAA,YACzC,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,uDAAuD,CAAA;AAAA,YAChE,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mCAAmC,CAAA;AAAA,YAC5C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,kCAAkC,CAAA;AAAA,YAC3C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,MAAA,EAAU,CAAC,IAAI;AAAA,WACjB;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,MAAA,EAAU,CAAC,KAAK;AAAA;AAClB;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,MAAA,EAAU,CAAC,MAAA,EAAQ,IAAI;AAAA,WACzB;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,MAAA,EAAU;AAAA;AACZ;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,MAAA,EAAU,CAAC,QAAA,EAAU,KAAA,EAAO,KAAK;AAAA;AACnC;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,MAAA,EAAU,CAAC,QAAA,EAAU,KAAK;AAAA;AAC5B;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,4BAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,oCAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,kBACN,MAAA,EAAU;AAAA,oBACR,OAAA,EAAW;AAAA,sBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,QAAA,EAAU,CAAC;AAAA;AACvB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,MAAA,EAAQ,CAAC;AAAA;AACrB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ,CAAC,4BAA4B,CAAA;AAAA,YACrC,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wDAAwD,CAAA;AAAA,YACjE,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,+CAA+C,CAAA;AAAA,YACxD,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sEAAA;AAAA,cACA,uFAAA;AAAA,cACA,sFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sFAAA;AAAA,cACA,kGAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,kEAAA;AAAA,cACA,sGAAA;AAAA,cACA,8BAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,sCAAsC,CAAA;AAAA,YAC/C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oDAAoD,CAAA;AAAA,YAC7D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gDAAgD,CAAA;AAAA,YACzD,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8HAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wCAAwC,CAAA;AAAA,YACjD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yEAAA;AAAA,cACA,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,kCAAA,EAAoC,eAAe,CAAA;AAAA,YAC5D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gCAAA,EAAkC,eAAe,CAAA;AAAA,YAC1D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gCAAA,EAAkC,eAAe,CAAA;AAAA,YAC1D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA;AACT;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,uDAAuD,CAAA;AAAA,YAChE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,8BAA8B,CAAA;AAAA,YACvC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,kDAAkD,CAAA;AAAA,YAC3D,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4EAAA;AAAA,cACA,qFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2EAAA;AAAA,cACA,mFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8CAAA;AAAA,cACA,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6CAAA;AAAA,cACA,mEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iDAAA;AAAA,cACA,wBAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6BAAA;AAAA,cACA,0CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wBAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gCAAA;AAAA,cACA,sCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wGAAA;AAAA,cACA,wGAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gHAAA;AAAA,cACA,4GAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6GAAA;AAAA,cACA,6GAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qHAAA;AAAA,cACA,iHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA,2CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wCAAwC,CAAA;AAAA,YACjD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qCAAA;AAAA,cACA,6DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uEAAA;AAAA,cACA,wEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qDAAA;AAAA,cACA,iBAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+EAAA;AAAA,cACA,mBAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mCAAA,EAAqC,eAAe,CAAA;AAAA,YAC7D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,kCAAA,EAAoC,eAAe,CAAA;AAAA,YAC5D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gCAAA,EAAkC,eAAe,CAAA;AAAA,YAC1D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gCAAA,EAAkC,eAAe,CAAA;AAAA,YAC1D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oCAAoC,CAAA;AAAA,YAC7C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,kCAAoC,CAAA;AAAA,YAC7C,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,2BAA2B,CAAA;AAAA,YACpC,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,2BAA2B,CAAA;AAAA,YACpC,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mBAAmB,CAAA;AAAA,YAC5B,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP;AAAA,kBACE,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV,iBACF;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,gDAAgD,CAAA;AAAA,YACzD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6GAAA;AAAA,cACA,4CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,8CAA8C,CAAA;AAAA,YACvD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,6CAA6C,CAAA;AAAA,YACtD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,kCAAkC,CAAA;AAAA,YAC3C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,6CAA6C,CAAA;AAAA,YACtD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ,CAAC,uBAAuB,CAAA;AAAA,YAChC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oCAAoC,CAAA;AAAA,YAC7C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oCAAoC,CAAA;AAAA,YAC7C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iDAAiD,CAAA;AAAA,YAC1D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,CAAC,+CAA+C,CAAA;AAAA,YACxD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ,CAAC,qCAAqC,CAAA;AAAA,YAC9C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oCAAoC,CAAA;AAAA,YAC7C,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,iCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wCAAwC,CAAA;AAAA,YACjD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wCAAwC,CAAA;AAAA,YACjD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ,CAAC,yCAAyC,CAAA;AAAA,YAClD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,oCAAoC,CAAA;AAAA,YAC7C,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4FAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4BAAA;AAAA,cACA,uDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,6CAA6C,CAAA;AAAA,YACtD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,iDAAiD,CAAA;AAAA,YAC1D,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ,CAAC,2CAA2C,CAAA;AAAA,YACpD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ,CAAC,+CAA+C,CAAA;AAAA,YACxD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,yCAAyC,CAAA;AAAA,YAClD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wCAAwC,CAAA;AAAA,YACjD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wCAAwC,CAAA;AAAA,YACjD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ,CAAC,wCAAwC,CAAA;AAAA,YACjD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,MAAA,EAAQ,CAAC;AAAA;AACrB;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,EAAE;AAAA;AACpB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qCAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS,CAAC,IAAA,EAAM,CAAC;AAAA;AACnB,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA,gBACR,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iDAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kDAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA,gBACR,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iDAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kDAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA;AACT,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,IAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AAEJ,CAAA;;;AC5pbO,IAAM,SAAA,GAAY;;;ACYlB,SAAS,uBACd,YAAA,EACoB;AACpB,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,YAAA,CAAa,SAAA,CAAU,QAAA,EAAS;AAAA,IAC3C,QAAA,EAAU,YAAA,CAAa,QAAA,CAAS,QAAA,EAAS;AAAA,IACzC,IAAA,EAAM,aAAA,CAAc,YAAA,CAAa,IAAI,CAAA;AAAA,IACrC,WAAA,EAAa,YAAA,CAAa,WAAA,CAAY,QAAA,EAAS;AAAA,IAC/C,cAAA,EAAgB,YAAA,CAAa,cAAA,CAAe,QAAA,EAAS;AAAA,IACrD,cAAA,EAAgB,YAAA,CAAa,cAAA,CAAe,QAAA,EAAS;AAAA,IACrD,eAAA,EAAiB,YAAA,CAAa,eAAA,CAAgB,QAAA,EAAS;AAAA,IACvD,oBAAA,EAAsB,YAAA,CAAa,oBAAA,CAAqB,QAAA,EAAS;AAAA,IACjE,oBAAA,EAAsB,YAAA,CAAa,oBAAA,CAAqB,QAAA,EAAS;AAAA,IACjE,qBAAA,EAAuB,YAAA,CAAa,qBAAA,CAAsB,QAAA,EAAS;AAAA,IACnE,wBAAA,EAA0B,YAAA,CAAa,wBAAA,CAAyB,QAAA,EAAS;AAAA,IACzE,qBAAqB,YAAA,CAAa,mBAAA;AAAA,IAClC,4BAA4B,YAAA,CAAa,0BAAA;AAAA,IACzC,gBAAgB,YAAA,CAAa,cAAA;AAAA,IAC7B,6BAA6B,YAAA,CAAa,2BAAA;AAAA,IAC1C,UAAU,YAAA,CAAa,QAAA;AAAA,IACvB,oBAAoB,YAAA,CAAa,kBAAA;AAAA,IACjC,eAAe,YAAA,CAAa,aAAA;AAAA,IAC5B,cAAc,YAAA,CAAa,YAAA;AAAA,IAC3B,aAAa,YAAA,CAAa,WAAA;AAAA,IAC1B,eAAe,YAAA,CAAa,aAAA;AAAA,IAC5B,WAAW,YAAA,CAAa,SAAA;AAAA,IACxB,WAAW,YAAA,CAAa,SAAA;AAAA,IACxB,sBAAA,EAAwB,YAAA,CAAa,sBAAA,CAAuB,QAAA,EAAS;AAAA,IACrE,yBAAyB,YAAA,CAAa,uBAAA;AAAA,IACtC,SAAS,YAAA,CAAa;AAAA,GACxB;AACF;AAEO,SAAS,kBAAkB,OAAA,EAAmC;AACnE,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,OAAA,CAAQ,SAAA,CAAU,QAAA,EAAS;AAAA,IACtC,aAAA,EAAe,OAAA,CAAQ,aAAA,CAAc,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,MAC/C,aAAA,EAAe,CAAA,CAAE,aAAA,EAAe,QAAA,EAAS,IAAK,GAAA;AAAA,MAC9C,QAAA,EAAU,CAAA,CAAE,QAAA,EAAU,QAAA,EAAS,IAAK,GAAA;AAAA,MACpC,QAAA,EAAU,CAAA,CAAE,QAAA,EAAU,QAAA,EAAS,IAAK,GAAA;AAAA,MACpC,kBAAA,EAAoB,CAAA,CAAE,kBAAA,EAAoB,QAAA,EAAS,IAAK,GAAA;AAAA,MACxD,WAAA,EAAa,EAAE,WAAA,IAAe,CAAA;AAAA,MAC9B,aAAa,CAAA,CAAE,WAAA;AAAA,MACf,UAAA,EAAY,EAAE,UAAA,IAAc,CAAA;AAAA,MAC5B,OAAA,EAAS,CAAA,CAAE,OAAA,IAAW;AAAC,KACzB,CAAE;AAAA,GACJ;AACF;AAEO,SAAS,mBAAmB,QAAA,EAAsC;AACvE,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,QAAA,CAAS,KAAA,CAAM,QAAA,EAAS;AAAA,IAC/B,aAAA,EAAe,QAAA,CAAS,aAAA,CAAc,QAAA,EAAS;AAAA,IAC/C,YAAA,EAAc,QAAA,CAAS,YAAA,CAAa,QAAA,EAAS;AAAA,IAC7C,MAAA,EAAQ,QAAA,CAAS,MAAA,CAAO,QAAA,EAAS;AAAA,IACjC,QAAA,EAAU,QAAA,CAAS,QAAA,CAAS,QAAA,EAAS;AAAA,IACrC,kBAAkB,QAAA,CAAS,gBAAA;AAAA,IAC3B,kBAAkB,QAAA,CAAS,gBAAA;AAAA,IAC3B,kBAAkB,QAAA,CAAS,gBAAA;AAAA,IAC3B,mBAAA,EAAqB,QAAA,CAAS,mBAAA,CAAoB,QAAA,EAAS;AAAA,IAC3D,mBAAA,EAAqB,QAAA,CAAS,mBAAA,CAAoB,QAAA,EAAS;AAAA,IAC3D,cAAA,EAAgB,QAAA,CAAS,cAAA,CAAe,QAAA,EAAS;AAAA,IACjD,8BAA8B,QAAA,CAAS,4BAAA;AAAA,IACvC,oBAAoB,QAAA,CAAS,kBAAA;AAAA,IAC7B,iBAAiB,QAAA,CAAS,eAAA;AAAA,IAC1B,qBAAqB,QAAA,CAAS,mBAAA;AAAA,IAC9B,aAAa,QAAA,CAAS,WAAA;AAAA,IACtB,wBAAwB,QAAA,CAAS,sBAAA;AAAA,IACjC,+BAA+B,QAAA,CAAS,6BAAA;AAAA,IACxC,4BAA4B,QAAA,CAAS,0BAAA;AAAA,IACrC,gBAAgB,QAAA,CAAS,cAAA;AAAA,IACzB,qBAAqB,QAAA,CAAS,mBAAA;AAAA,IAC9B,uBAAuB,QAAA,CAAS,qBAAA;AAAA,IAChC,wBAAwB,QAAA,CAAS,sBAAA;AAAA,IACjC,sBAAsB,QAAA,CAAS,oBAAA;AAAA,IAC/B,SAAS,QAAA,CAAS;AAAA,GACpB;AACF;AAEO,SAAS,wBACd,aAAA,EACqB;AACrB,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,aAAA,CAAc,MAAA,CAAO,QAAA,EAAS;AAAA,IACtC,MAAA,EAAQ,aAAA,CAAc,MAAA,CAAO,QAAA,EAAS;AAAA,IACtC,IAAA,EAAM,aAAA,CAAc,IAAA,CAAK,QAAA,EAAS;AAAA,IAClC,UAAU,aAAA,CAAc,QAAA;AAAA,IACxB,yBAAA,EACE,aAAA,CAAc,yBAAA,CAA0B,QAAA,EAAS;AAAA,IACnD,aAAa,aAAA,CAAc,WAAA;AAAA,IAE3B,cAAA,EAAgB,aAAA,CAAc,cAAA,CAAe,QAAA,EAAS;AAAA,IACtD,aAAA,EAAe,aAAA,CAAc,aAAA,CAAc,QAAA,EAAS;AAAA,IACpD,wBAAA,EAA0B,aAAA,CAAc,wBAAA,CAAyB,QAAA,EAAS;AAAA,IAC1E,oBAAoB,aAAA,CAAc,kBAAA;AAAA,IAClC,mBAAmB,aAAA,CAAc,iBAAA;AAAA,IACjC,eAAe,aAAA,CAAc,aAAA;AAAA,IAC7B,eAAe,aAAA,CAAc,aAAA;AAAA,IAC7B,aAAA,EAAe;AAAA,MACb,WAAA,EAAa,cAAc,aAAA,CAAc;AAAA,KAC3C;AAAA,IACA,QAAQ,aAAA,CAAc;AAAA,GACxB;AACF;AAEO,SAAS,qBACd,UAAA,EACkB;AAClB,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,UAAA,CAAW,MAAA,CAAO,QAAA,EAAS;AAAA,IACnC,aAAa,UAAA,CAAW,WAAA;AAAA,IACxB,UAAA,EAAY,UAAA,CAAW,UAAA,CAAW,QAAA,EAAS;AAAA,IAC3C,IAAA,EAAM,UAAA,CAAW,IAAA,CAAK,QAAA,EAAS;AAAA,IAC/B,YAAA,EAAc;AAAA,MACZ,aAAA,EAAe,UAAA,CAAW,YAAA,CAAa,aAAA,CAAc,QAAA,EAAS;AAAA,MAC9D,QAAA,EAAU,UAAA,CAAW,YAAA,CAAa,QAAA,CAAS,QAAA,EAAS;AAAA,MACpD,QAAA,EAAU,UAAA,CAAW,YAAA,CAAa,QAAA,CAAS,QAAA,EAAS;AAAA,MACpD,kBAAA,EAAoB,UAAA,CAAW,YAAA,CAAa,kBAAA,CAAmB,QAAA,EAAS;AAAA,MACxE,WAAA,EAAa,WAAW,YAAA,CAAa,WAAA;AAAA,MACrC,WAAA,EAAa,WAAW,YAAA,CAAa,WAAA;AAAA,MACrC,UAAA,EAAY,WAAW,YAAA,CAAa,UAAA;AAAA,MACpC,OAAA,EAAS,WAAW,YAAA,CAAa;AAAA;AACnC,GACF;AACF;AAEA,SAAS,cAAc,OAAA,EAA4B;AACjD,EAAA,OAAO;AAAA,IACL,YAAA,EAAc,OAAA,CAAQ,YAAA,CAAa,QAAA,EAAS;AAAA,IAC5C,cAAA,EAAgB,OAAA,CAAQ,cAAA,CAAe,QAAA,EAAS;AAAA,IAChD,kBAAA,EAAoB,OAAA,CAAQ,kBAAA,CAAmB,QAAA,EAAS;AAAA,IACxD,oBAAA,EAAsB,OAAA,CAAQ,oBAAA,CAAqB,QAAA,EAAS;AAAA,IAC5D,mBAAA,EAAqB,OAAA,CAAQ,mBAAA,CAAoB,QAAA,EAAS;AAAA,IAC1D,0BAAA,EAA4B,OAAA,CAAQ,0BAAA,CAA2B,QAAA;AAAS,GAC1E;AACF;ACnIA,IAAM,oBAAA,GAAuB,IAAIC,yBAAA,CAAmB,SAAS,CAAA;AAE7D,IAAM,uBAAA,GAA0B,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE,CAAC,CAAA;AAC/E,IAAM,kBAAA,GAAqB,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAC,CAAA;AAC7E,IAAM,iBAAA,GAAoB,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAC,CAAA;AAC5E,IAAM,sBAAA,GAAyB,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAC,CAAA;AAEzE,SAAS,uBAAuB,YAAA,EAAkD;AACvF,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,IAAIvC,iBAAAA,CAAU,YAAA,CAAa,SAAS,CAAA;AAAA,IAC/C,QAAA,EAAU,IAAIA,iBAAAA,CAAU,YAAA,CAAa,QAAQ,CAAA;AAAA,IAC7C,IAAA,EAAM;AAAA,MACJ,YAAA,EAAc,IAAIsB,oBAAAA,CAAG,YAAA,CAAa,KAAK,YAAY,CAAA;AAAA,MACnD,cAAA,EAAgB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,KAAK,cAAc,CAAA;AAAA,MACvD,kBAAA,EAAoB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,KAAK,kBAAkB,CAAA;AAAA,MAC/D,oBAAA,EAAsB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,KAAK,oBAAoB,CAAA;AAAA,MACnE,mBAAA,EAAqB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,KAAK,mBAAmB,CAAA;AAAA,MACjE,0BAAA,EAA4B,IAAIA,oBAAAA,CAAG,YAAA,CAAa,KAAK,0BAA0B;AAAA,KACjF;AAAA,IACA,WAAA,EAAa,IAAIA,oBAAAA,CAAG,YAAA,CAAa,WAAW,CAAA;AAAA,IAC5C,cAAA,EAAgB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,cAAc,CAAA;AAAA,IAClD,cAAA,EAAgB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,cAAc,CAAA;AAAA,IAClD,eAAA,EAAiB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,eAAe,CAAA;AAAA,IACpD,oBAAA,EAAsB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,oBAAoB,CAAA;AAAA,IAC9D,oBAAA,EAAsB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,oBAAoB,CAAA;AAAA,IAC9D,qBAAA,EAAuB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,qBAAqB,CAAA;AAAA,IAChE,wBAAA,EAA0B,IAAIA,oBAAAA,CAAG,YAAA,CAAa,wBAAwB,CAAA;AAAA,IACtE,qBAAqB,YAAA,CAAa,mBAAA;AAAA,IAClC,4BAA4B,YAAA,CAAa,0BAAA;AAAA,IACzC,gBAAgB,YAAA,CAAa,cAAA;AAAA,IAC7B,6BAA6B,YAAA,CAAa,2BAAA;AAAA,IAC1C,UAAU,YAAA,CAAa,QAAA;AAAA,IACvB,oBAAoB,YAAA,CAAa,kBAAA;AAAA,IACjC,eAAe,YAAA,CAAa,aAAA;AAAA,IAC5B,cAAc,YAAA,CAAa,YAAA;AAAA,IAC3B,aAAa,YAAA,CAAa,WAAA;AAAA,IAC1B,eAAe,YAAA,CAAa,aAAA;AAAA,IAC5B,WAAW,YAAA,CAAa,SAAA;AAAA,IACxB,WAAW,YAAA,CAAa,SAAA;AAAA,IACxB,sBAAA,EAAwB,IAAIA,oBAAAA,CAAG,YAAA,CAAa,sBAAsB,CAAA;AAAA,IAClE,yBAAyB,YAAA,CAAa,uBAAA;AAAA,IACtC,SAAS,YAAA,CAAa;AAAA,GACxB;AACF;AAEO,SAAS,kBAAkB,OAAA,EAAmC;AACnE,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,IAAItB,iBAAAA,CAAU,OAAA,CAAQ,SAAS,CAAA;AAAA,IAC1C,aAAA,EAAe,OAAA,CAAQ,aAAA,CAAc,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,MAC/C,aAAA,EAAe,IAAIsB,oBAAAA,CAAG,CAAA,CAAE,aAAa,CAAA;AAAA,MACrC,QAAA,EAAU,IAAIA,oBAAAA,CAAG,CAAA,CAAE,QAAQ,CAAA;AAAA,MAC3B,QAAA,EAAU,IAAIA,oBAAAA,CAAG,CAAA,CAAE,QAAQ,CAAA;AAAA,MAC3B,kBAAA,EAAoB,IAAIA,oBAAAA,CAAG,CAAA,CAAE,kBAAkB,CAAA;AAAA,MAC/C,aAAa,CAAA,CAAE,WAAA;AAAA,MACf,aAAa,CAAA,CAAE,WAAA;AAAA,MACf,YAAY,CAAA,CAAE,UAAA;AAAA,MACd,SAAS,CAAA,CAAE;AAAA,KACb,CAAE;AAAA,GACJ;AACF;AAEO,SAAS,mBAAmB,QAAA,EAAsC;AACvE,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,IAAItB,iBAAAA,CAAU,QAAA,CAAS,KAAK,CAAA;AAAA,IACnC,aAAA,EAAe,IAAIA,iBAAAA,CAAU,QAAA,CAAS,aAAa,CAAA;AAAA,IACnD,YAAA,EAAc,IAAIA,iBAAAA,CAAU,QAAA,CAAS,YAAY,CAAA;AAAA,IACjD,MAAA,EAAQ,IAAIA,iBAAAA,CAAU,QAAA,CAAS,MAAM,CAAA;AAAA,IACrC,QAAA,EAAU,IAAIA,iBAAAA,CAAU,QAAA,CAAS,QAAQ,CAAA;AAAA,IACzC,kBAAkB,QAAA,CAAS,gBAAA;AAAA,IAC3B,kBAAkB,QAAA,CAAS,gBAAA;AAAA,IAC3B,kBAAkB,QAAA,CAAS,gBAAA;AAAA,IAC3B,mBAAA,EAAqB,IAAIsB,oBAAAA,CAAG,QAAA,CAAS,mBAAmB,CAAA;AAAA,IACxD,mBAAA,EAAqB,IAAIA,oBAAAA,CAAG,QAAA,CAAS,mBAAmB,CAAA;AAAA,IACxD,cAAA,EAAgB,IAAIA,oBAAAA,CAAG,QAAA,CAAS,cAAc,CAAA;AAAA,IAC9C,8BAA8B,QAAA,CAAS,4BAAA;AAAA,IACvC,oBAAoB,QAAA,CAAS,kBAAA;AAAA,IAC7B,iBAAiB,QAAA,CAAS,eAAA;AAAA,IAC1B,qBAAqB,QAAA,CAAS,mBAAA;AAAA,IAC9B,aAAa,QAAA,CAAS,WAAA;AAAA,IACtB,wBAAwB,QAAA,CAAS,sBAAA;AAAA,IACjC,+BAA+B,QAAA,CAAS,6BAAA;AAAA,IACxC,4BAA4B,QAAA,CAAS,0BAAA;AAAA,IACrC,gBAAgB,QAAA,CAAS,cAAA;AAAA,IACzB,qBAAqB,QAAA,CAAS,mBAAA;AAAA,IAC9B,uBAAuB,QAAA,CAAS,qBAAA;AAAA,IAChC,wBAAwB,QAAA,CAAS,sBAAA;AAAA,IACjC,sBAAsB,QAAA,CAAS,oBAAA;AAAA,IAC/B,SAAS,QAAA,CAAS;AAAA,GACpB;AACF;AAEO,SAAS,qBAAqB,UAAA,EAA4C;AAC/E,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,IAAItB,iBAAAA,CAAU,UAAA,CAAW,MAAM,CAAA;AAAA,IACvC,aAAa,UAAA,CAAW,WAAA;AAAA,IACxB,UAAA,EAAY,IAAIA,iBAAAA,CAAU,UAAA,CAAW,UAAU,CAAA;AAAA,IAC/C,IAAA,EAAM,IAAIA,iBAAAA,CAAU,UAAA,CAAW,IAAI,CAAA;AAAA,IACnC,YAAA,EAAc;AAAA,MACZ,aAAA,EAAe,IAAIsB,oBAAAA,CAAG,UAAA,CAAW,aAAa,aAAa,CAAA;AAAA,MAC3D,QAAA,EAAU,IAAIA,oBAAAA,CAAG,UAAA,CAAW,aAAa,QAAQ,CAAA;AAAA,MACjD,QAAA,EAAU,IAAIA,oBAAAA,CAAG,UAAA,CAAW,aAAa,QAAQ,CAAA;AAAA,MACjD,kBAAA,EAAoB,IAAIA,oBAAAA,CAAG,UAAA,CAAW,aAAa,kBAAkB,CAAA;AAAA,MACrE,WAAA,EAAa,WAAW,YAAA,CAAa,WAAA;AAAA,MACrC,WAAA,EAAa,WAAW,YAAA,CAAa,WAAA;AAAA,MACrC,UAAA,EAAY,WAAW,YAAA,CAAa,UAAA;AAAA,MACpC,OAAA,EAAS,WAAW,YAAA,CAAa;AAAA;AACnC,GACF;AACF;AAEO,SAAS,wBAAwB,aAAA,EAAqD;AAC3F,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,IAAItB,iBAAAA,CAAU,aAAA,CAAc,MAAM,CAAA;AAAA,IAC1C,MAAA,EAAQ,IAAIA,iBAAAA,CAAU,aAAA,CAAc,MAAM,CAAA;AAAA,IAC1C,IAAA,EAAM,IAAIA,iBAAAA,CAAU,aAAA,CAAc,IAAI,CAAA;AAAA,IACtC,UAAU,aAAA,CAAc,QAAA;AAAA,IACxB,yBAAA,EAA2B,IAAIsB,oBAAAA,CAAG,aAAA,CAAc,yBAAyB,CAAA;AAAA,IACzE,aAAa,aAAA,CAAc,WAAA;AAAA,IAC3B,cAAA,EAAgB,IAAIA,oBAAAA,CAAG,aAAA,CAAc,cAAc,CAAA;AAAA,IACnD,aAAA,EAAe,IAAIA,oBAAAA,CAAG,aAAA,CAAc,aAAa,CAAA;AAAA,IACjD,wBAAA,EAA0B,IAAIA,oBAAAA,CAAG,aAAA,CAAc,wBAAwB,CAAA;AAAA,IACvE,oBAAoB,aAAA,CAAc,kBAAA;AAAA,IAClC,mBAAmB,aAAA,CAAc,iBAAA;AAAA,IACjC,eAAe,aAAA,CAAc,aAAA;AAAA,IAC7B,eAAe,aAAA,CAAc,aAAA;AAAA,IAC7B,eAAe,aAAA,CAAc,aAAA;AAAA,IAC7B,QAAQ,aAAA,CAAc;AAAA,GACxB;AACF;AAEO,SAAS,0BAA0B,IAAA,EAAkC;AAC1E,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,uBAAuB,CAAA,EAAG;AACrD,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAGA,EAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,MAAA,CAAO,YAAA,EAAc,IAAI,CAAA;AAG9D,EAAA,OAAO;AAAA,IACL,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,sBAAsB,OAAA,CAAQ,sBAAA;AAAA,IAC9B,qBAAqB,OAAA,CAAQ,qBAAA;AAAA,IAC7B,aAAa,OAAA,CAAQ,YAAA;AAAA,IACrB,aAAa,OAAA,CAAQ,aAAA;AAAA,IACrB,eAAe,OAAA,CAAQ,cAAA;AAAA,IACvB,cAAc,OAAA,CAAQ,cAAA;AAAA,IACtB,gBAAgB,OAAA,CAAQ,eAAA;AAAA,IACxB,eAAe,OAAA,CAAQ,cAAA;AAAA,IACvB,2BAA2B,OAAA,CAAQ,2BAAA;AAAA,IACnC,0BAA0B,OAAA,CAAQ,0BAAA;AAAA,IAClC,iBAAiB,OAAA,CAAQ,iBAAA;AAAA,IACzB,sBAAsB,OAAA,CAAQ,uBAAA;AAAA,IAC9B,wBAAwB,OAAA,CAAQ,wBAAA;AAAA,IAChC,kBAAkB,OAAA,CAAQ,kBAAA;AAAA,IAC1B,kBAAkB,OAAA,CAAQ,kBAAA;AAAA,IAC1B,iBAAiB,OAAA,CAAQ,iBAAA;AAAA,IACzB,iBAAiB,OAAA,CAAQ,gBAAA;AAAA,IACzB,gBAAgB,OAAA,CAAQ,gBAAA;AAAA,IACxB,YAAY,OAAA,CAAQ,YAAA;AAAA,IACpB,UAAU,OAAA,CAAQ,SAAA;AAAA,IAClB,eAAe,OAAA,CAAQ,eAAA;AAAA,IACvB,eAAe,OAAA,CAAQ,eAAA;AAAA,IACvB,cAAc,OAAA,CAAQ,cAAA;AAAA,IACtB,iBAAiB,OAAA,CAAQ,iBAAA;AAAA,IACzB,kBAAkB,OAAA,CAAQ,mBAAA;AAAA,IAC1B,qBAAqB,OAAA,CAAQ,sBAAA;AAAA,IAC7B,oBAAoB,OAAA,CAAQ,oBAAA;AAAA,IAC5B,wBAAwB,OAAA,CAAQ,wBAAA;AAAA,IAChC,wBAAwB,OAAA,CAAQ,wBAAA;AAAA,IAChC,4BAA4B,OAAA,CAAQ,4BAAA;AAAA,IACpC,WAAW,OAAA,CAAQ,UAAA;AAAA,IACnB,eAAe,OAAA,CAAQ,cAAA;AAAA,IACvB,kBAAkB,OAAA,CAAQ,kBAAA;AAAA,IAC1B,oBAAoB,OAAA,CAAQ,mBAAA;AAAA,IAC5B,mBAAmB,OAAA,CAAQ,mBAAA;AAAA,IAC3B,eAAe,OAAA,CAAQ,eAAA;AAAA,IACvB,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,aAAa,OAAA,CAAQ,YAAA;AAAA,IACrB,eAAe,OAAA,CAAQ,cAAA;AAAA,IACvB,cAAc,OAAA,CAAQ,aAAA;AAAA,IACtB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,WAAW,OAAA,CAAQ,UAAA;AAAA,IACnB,kBAAkB,OAAA,CAAQ,iBAAA;AAAA,IAC1B,oBAAoB,OAAA,CAAQ,oBAAA;AAAA,IAC5B,eAAe,OAAA,CAAQ,cAAA;AAAA,IACvB,yBAAyB,OAAA,CAAQ,0BAAA;AAAA,IACjC,iBAAiB,OAAA,CAAQ,iBAAA;AAAA,IACzB,6BAA6B,OAAA,CAAQ,+BAAA;AAAA,IACrC,cAAc,OAAA,CAAQ,cAAA;AAAA,IACtB,8BAA8B,OAAA,CAAQ,gCAAA;AAAA,IACtC,eAAe,OAAA,CAAQ,eAAA;AAAA,IACvB,mBAAmB,OAAA,CAAQ,mBAAA;AAAA,IAC3B,kBAAkB,OAAA,CAAQ,kBAAA;AAAA,IAC1B,gBAAgB,OAAA,CAAQ,gBAAA;AAAA,IACxB,gBAAgB,OAAA,CAAQ,gBAAA;AAAA,IACxB,oBAAoB,OAAA,CAAQ,oBAAA;AAAA,IAC5B,cAAc,OAAA,CAAQ,aAAA;AAAA,IACtB,QAAQ,OAAA,CAAQ,OAAA;AAAA,IAChB,SAAS,OAAA,CAAQ;AAAA,GACnB;AACF;AAEO,SAAS,qBAAqB,IAAA,EAA0B;AAC7D,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,kBAAkB,CAAA,EAAG;AAChD,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAEA,EAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,MAAA,CAAO,OAAA,EAAS,IAAI,CAAA;AAGzD,EAAA,OAAO;AAAA,IACL,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,eAAe,OAAA,CAAQ,cAAA;AAAA,IACvB,cAAc,OAAA,CAAQ,aAAA;AAAA,IACtB,QAAQ,OAAA,CAAQ,MAAA;AAAA,IAChB,UAAU,OAAA,CAAQ,SAAA;AAAA,IAClB,kBAAkB,OAAA,CAAQ,kBAAA;AAAA,IAC1B,kBAAkB,OAAA,CAAQ,kBAAA;AAAA,IAC1B,kBAAkB,OAAA,CAAQ,kBAAA;AAAA,IAC1B,qBAAqB,OAAA,CAAQ,qBAAA;AAAA,IAC7B,qBAAqB,OAAA,CAAQ,sBAAA;AAAA,IAC7B,gBAAgB,OAAA,CAAQ,gBAAA;AAAA,IACxB,8BAA8B,OAAA,CAAQ,+BAAA;AAAA,IACtC,oBAAoB,OAAA,CAAQ,mBAAA;AAAA,IAC5B,iBAAiB,OAAA,CAAQ,iBAAA;AAAA,IACzB,qBAAqB,OAAA,CAAQ,sBAAA;AAAA,IAC7B,aAAa,OAAA,CAAQ,YAAA;AAAA,IACrB,wBAAwB,OAAA,CAAQ,yBAAA;AAAA,IAChC,+BAA+B,OAAA,CAAQ,kCAAA;AAAA,IACvC,4BAA4B,OAAA,CAAQ,6BAAA;AAAA,IACpC,gBAAgB,OAAA,CAAQ,eAAA;AAAA,IACxB,qBAAqB,OAAA,CAAQ,oBAAA;AAAA,IAC7B,uBAAuB,OAAA,CAAQ,wBAAA;AAAA,IAC/B,wBAAwB,OAAA,CAAQ,0BAAA;AAAA,IAChC,sBAAsB,OAAA,CAAQ,uBAAA;AAAA,IAC9B,SAAS,OAAA,CAAQ;AAAA,GACnB;AACF;AAEO,SAAS,oBAAoB,IAAA,EAAyB;AAC3D,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,iBAAiB,CAAA,EAAG;AAC/C,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAEA,EAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,MAAA,CAAO,MAAA,EAAQ,IAAI,CAAA;AAGxD,EAAA,OAAO;AAAA,IACL,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,aAAA,EAAe,OAAA,CAAQ,cAAA,CAAe,GAAA,CAAI,CAAC,CAAA,MAAY;AAAA,MACrD,aAAA,EAAe,IAAIA,oBAAAA,CAAG,CAAA,CAAE,cAAc,CAAA;AAAA,MACtC,QAAA,EAAU,IAAIA,oBAAAA,CAAG,CAAA,CAAE,SAAS,CAAA;AAAA,MAC5B,QAAA,EAAU,IAAIA,oBAAAA,CAAG,CAAA,CAAE,SAAS,CAAA;AAAA,MAC5B,kBAAA,EAAoB,IAAIA,oBAAAA,CAAG,CAAA,CAAE,mBAAmB,CAAA;AAAA,MAChD,aAAa,CAAA,CAAE,YAAA;AAAA,MACf,aAAa,CAAA,CAAE,YAAA;AAAA,MACf,YAAY,CAAA,CAAE,WAAA;AAAA,MACd,SAAS,CAAA,CAAE;AAAA,KACb,CAAE;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,GA8BJ;AACF;AAEO,SAAS,yBAAyB,IAAA,EAA8B;AACrE,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,sBAAsB,CAAA,EAAG;AACpD,IAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,EACjD;AAEA,EAAA,MAAM,OAAA,GAAU,oBAAA,CAAqB,MAAA,CAAO,WAAA,EAAa,IAAI,CAAA;AAG7D,EAAA,OAAO;AAAA,IACL,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,aAAa,OAAA,CAAQ,aAAA;AAAA,IACrB,gBAAgB,OAAA,CAAQ,gBAAA;AAAA,IACxB,gBAAgB,OAAA,CAAQ,gBAAA;AAAA,IACxB,iBAAiB,OAAA,CAAQ,iBAAA;AAAA,IACzB,sBAAsB,OAAA,CAAQ,wBAAA;AAAA,IAC9B,sBAAsB,OAAA,CAAQ,wBAAA;AAAA,IAC9B,uBAAuB,OAAA,CAAQ,yBAAA;AAAA,IAC/B,0BAA0B,OAAA,CAAQ,4BAAA;AAAA,IAClC,qBAAqB,OAAA,CAAQ,sBAAA;AAAA,IAC7B,4BAA4B,OAAA,CAAQ,8BAAA;AAAA,IACpC,gBAAgB,OAAA,CAAQ,eAAA;AAAA,IACxB,6BAA6B,OAAA,CAAQ,gCAAA;AAAA,IACrC,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,oBAAoB,OAAA,CAAQ,oBAAA;AAAA,IAC5B,eAAe,OAAA,CAAQ,cAAA;AAAA,IACvB,cAAc,OAAA,CAAQ,aAAA;AAAA,IACtB,aAAa,OAAA,CAAQ,YAAA;AAAA,IACrB,eAAe,OAAA,CAAQ,cAAA;AAAA,IACvB,WAAW,OAAA,CAAQ,UAAA;AAAA,IACnB,WAAW,OAAA,CAAQ,UAAA;AAAA,IACnB,wBAAwB,OAAA,CAAQ,0BAAA;AAAA,IAChC,yBAAyB,OAAA,CAAQ,4BAAA;AAAA,IACjC,SAAS,OAAA,CAAQ;AAAA,GACnB;AACF;AC7VO,IAAM,mBAAmB,IAAItB,iBAAAA;AAAA,EAClC;AACF;;;ACCO,IAAM,gBAAA,GAAmB;AACzB,IAAM,SAAA,GAAY;AAClB,IAAM,eAAA,GAAkB;AACxB,IAAM,gBAAA,GAAmB;AACzB,IAAM,sBAAA,GAAyB;AAC/B,IAAM,iBAAA,GAAoB;AAE1B,SAAS,2BAA2B,WAAA,EAAqB;AAC9D,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,gBAAA,EAAiB,CAAE,CAAC,CAAA;AAAA,IAChC,WAAA,EAAa,iBAAA,EAAkB,CAAE,CAAC,CAAA;AAAA,IAClC,eAAA,EAAiB,qBAAA,CAAsB,WAAW,CAAA,CAAE,CAAC,CAAA;AAAA,IACrD,oBAAA,EAAsB,0BAAA,CAA2B,WAAW,CAAA,CAAE,CAAC;AAAA,GACjE;AACF;AAEO,SAAS,gBAAA,CAAiB,YAAuB,gBAAA,EAAuC;AAC7F,EAAA,OAAOA,iBAAAA,CAAU,uBAAuB,CAAC,MAAA,CAAO,KAAK,gBAAgB,CAAC,GAAG,SAAS,CAAA;AACpF;AAEO,SAAS,iBAAA,CAAkB,YAAuB,gBAAA,EAAuC;AAC9F,EAAA,OAAOA,iBAAAA,CAAU,uBAAuB,CAAC,MAAA,CAAO,KAAK,iBAAiB,CAAC,GAAG,SAAS,CAAA;AACrF;AAEO,SAAS,eAAA,CACd,SAAA,EACA,YAAA,EACA,SAAA,GAAuB,gBAAA,EACF;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf;AAAA,MACE,MAAA,CAAO,KAAK,SAAS,CAAA;AAAA,MACrB,UAAU,QAAA,EAAS;AAAA,MACnB,IAAIsB,oBAAAA,CAAG,YAAY,EAAE,WAAA,CAAY,MAAA,EAAQ,MAAM,CAAC;AAAA,KAClD;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,oBAAA,CACd,SAAA,EACA,SAAA,GAAuB,gBAAA,EACF;AACrB,EAAA,OAAOtB,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA,EAAG,SAAA,CAAU,UAAU,CAAA;AAAA,IACnD;AAAA,GACF;AACF;AAEO,SAAS,qBAAA,CACd,WAAA,EACA,SAAA,GAAuB,gBAAA,EACF;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,gBAAgB,CAAA,EAAG,IAAIsB,oBAAAA,CAAG,WAAW,CAAA,CAAE,WAAA,CAAY,MAAA,EAAQ,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,IAChF;AAAA,GACF;AACF;AAEO,SAAS,0BAAA,CACd,WAAA,EACA,SAAA,GAAuB,gBAAA,EACF;AACrB,EAAA,OAAOtB,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,sBAAsB,CAAA,EAAG,IAAIsB,oBAAAA,CAAG,WAAW,CAAA,CAAE,WAAA,CAAY,MAAA,EAAQ,IAAA,EAAM,CAAC,CAAC,CAAA;AAAA,IACtF;AAAA,GACF;AACF;ACvDO,IAAM,IAAA,GAAO,IAAIA,oBAAAA,CAAG,CAAC;AACrB,IAAM,GAAA,GAAM,IAAIA,oBAAAA,CAAG,CAAC;AACpB,IAAM,GAAA,GAAM,IAAIA,oBAAAA,CAAG,EAAE;AAGrB,IAAM,wBAAA,GAA2B,IAAIA,oBAAAA,CAAG,CAAC;AACzC,IAAM,uBAAuB,IAAIA,oBAAAA,CAAG,EAAE,CAAA,CAAE,IAAI,wBAAwB;AAEpE,IAAM,8BAAA,GAAiC,IAAIA,oBAAAA,CAAG,CAAC;AAC/C,IAAM,6BAA6B,IAAIA,oBAAAA,CAAG,EAAE,CAAA,CAAE,IAAI,8BAA8B;AAEhF,IAAM,qCAAA,GAAwC,IAAIA,oBAAAA,CAAG,CAAC;AACtD,IAAM,iCAAA,GAAoC,IAAIA,oBAAAA,CAAG,EAAE,CAAA,CAAE,GAAA;AAAA,EAC1D;AACF;AAGO,IAAM,QAAA,GAAW,IAAIA,oBAAAA,CAAG,OAAQ;AASvC,SAAS,OAAA,CAAQ,GAAO,CAAA,EAAW;AACjC,EAAA,MAAM,QAAA,GAAW,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AACxB,EAAA,MAAM,SAAA,GAAY,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA;AACzB,EAAA,IAAI,SAAA,CAAU,EAAA,CAAG,IAAI,CAAA,EAAG;AACtB,IAAA,OAAO,QAAA,CAAS,IAAI,GAAG,CAAA;AAAA,EACzB;AACA,EAAA,OAAO,QAAA;AACT;AAKO,SAAS,mBAAA,CACd,aAAA,EACA,UAAA,EACA,WAAA,EACI;AACJ,EAAA,MAAM,iBAAA,GAAoB,IAAI,GAAA,CAAI,IAAIA,qBAAG,EAAA,GAAK,UAAA,CAAW,QAAQ,CAAC,CAAA;AAElE,EAAA,IAAI,wBAAA,CAAyB,WAAA,EAAa,SAAS,CAAA,EAAG;AACpD,IAAA,OAAO,cAAc,GAAA,CAAI,UAAA,CAAW,yBAAyB,CAAA,CAAE,IAAI,iBAAiB,CAAA;AAAA,EACtF,CAAA,MAAO;AAEL,IAAA,OAAO,QAAQ,aAAA,CAAc,GAAA,CAAI,UAAA,CAAW,wBAAwB,GAAG,iBAAiB,CAAA;AAAA,EAC1F;AACF;AAUO,SAAS,yBAAA,CAA0B,IAAA,EAAuB,KAAA,GAAY,IAAA,EAAU;AACrF,EAAA,IAAI,kBAAA,GAAqB,mBAAA;AAAA,IACvB,IAAA,CAAK,cAAA;AAAA,IACL,IAAA;AAAA,IAAA,SAAA;AAAA,GAEF;AACA,EAAA,IAAI,iBAAA,GAAoB,mBAAA;AAAA,IACtB,IAAA,CAAK,aAAA;AAAA,IACL,IAAA;AAAA,IAAA,QAAA;AAAA,GAEF;AAEA,EAAA,IAAI,KAAA,CAAM,EAAA,CAAG,IAAI,CAAA,EAAG;AAClB,IAAA,kBAAA,GAAqB,kBAAA,CAAmB,IAAI,KAAK,CAAA;AAAA,EACnD,CAAA,MAAA,IAAW,KAAA,CAAM,EAAA,CAAG,IAAI,CAAA,EAAG;AACzB,IAAA,iBAAA,GAAoB,iBAAA,CAAkB,GAAA,CAAI,KAAA,CAAM,GAAA,EAAK,CAAA;AAAA,EACvD;AAEA,EAAA,IAAI,WAAA;AACJ,EAAA,IAAI,kBAAkB,EAAA,CAAG,IAAI,KAAK,kBAAA,CAAmB,EAAA,CAAG,IAAI,CAAA,EAAG;AAC7D,IAAA,WAAA,GAAc,IAAA;AAAA,EAChB,CAAA,MAAA,IAAW,kBAAA,CAAmB,EAAA,CAAG,IAAI,CAAA,EAAG;AACtC,IAAA,WAAA,GAAc,iCAAA;AAAA,EAChB,CAAA,MAAO;AACL,IAAA,WAAA,GAAc,iBAAA,CAAkB,GAAA,CAAI,iCAAiC,CAAA,CAAE,IAAI,kBAAkB,CAAA;AAAA,EAC/F;AAEA,EAAA,OAAO,WAAA;AACT;AAKO,SAAS,0BAAA,CACd,IAAA,EACA,KAAA,GAAY,IAAA,EACZ,qBAAgC,IAAA,EAC5B;AACJ,EAAA,MAAM,WAAA,GAAc,kBAAA,IAAsB,yBAAA,CAA0B,IAAA,EAAM,KAAK,CAAA;AAE/E,EAAA,MAAM,WAAA,GAAc,IAAIA,oBAAAA,CAAG,IAAA,CAAK,kBAAkB,CAAA;AAClD,EAAA,MAAM,WAAA,GAAc,IAAIA,oBAAAA,CAAG,IAAA,CAAK,iBAAiB,CAAA;AACjD,EAAA,MAAM,OAAA,GAAU,IAAIA,oBAAAA,CAAG,IAAA,CAAK,aAAa,CAAA;AACzC,EAAA,MAAM,OAAA,GAAU,IAAIA,oBAAAA,CAAG,IAAA,CAAK,aAAa,EAAE,GAAA,CAAI,oBAAA,CAAqB,IAAA,CAAK,GAAG,CAAC,CAAA;AAE7E,EAAA,MAAM,cAAA,GAAiB,IAAIA,oBAAAA,CAAG,GAAI,CAAA;AAClC,EAAA,MAAM,QAAA,GAAuB;AAAA,IAC3B,CAAC,IAAIA,oBAAAA,CAAG,IAAO,GAAG,IAAIA,oBAAAA,CAAG,EAAE,CAAC,CAAA;AAAA,IAC5B,CAAC,IAAIA,oBAAAA,CAAG,GAAO,GAAG,IAAIA,oBAAAA,CAAG,GAAG,CAAC,CAAA;AAAA,IAC7B,CAAC,IAAIA,oBAAAA,CAAG,IAAO,GAAG,IAAIA,oBAAAA,CAAG,GAAG,CAAC,CAAA;AAAA,IAC7B,CAAC,IAAIA,oBAAAA,CAAG,IAAO,GAAG,IAAIA,oBAAAA,CAAG,GAAG,CAAC,CAAA;AAAA,IAC7B,CAAC,IAAIA,oBAAAA,CAAG,KAAO,GAAG,IAAIA,oBAAAA,CAAG,GAAG,CAAC,CAAA;AAAA,IAC7B,CAAC,iCAAA,EAAmC,IAAIA,oBAAAA,CAAG,GAAG,CAAC;AAAA,GACjD;AAEA,EAAA,IAAI,IAAA;AACJ,EAAA,IAAI,WAAA,CAAY,GAAA,CAAI,WAAW,CAAA,EAAG;AAEhC,IAAA,MAAM,QAAQ,WAAA,CAAY,GAAA,CAAI,iCAAiC,CAAA,CAAE,IAAI,WAAW,CAAA;AAChF,IAAA,IAAA,GAAO,WAAA,CAAY,GAAA,CAAI,KAAK,CAAA,CAAE,IAAI,iCAAiC,CAAA;AAAA,EACrE,CAAA,MAAO;AAEL,IAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,GAAA,CAAI,WAAW,CAAA;AAE9C,IAAA,IAAA,GAAO,YAAY,KAAA,EAAM;AACzB,IAAA,IAAI,QAAA,GAAW,YAAY,KAAA,EAAM;AAEjC,IAAA,KAAA,MAAW,CAAC,EAAA,EAAI,MAAM,CAAA,IAAK,QAAA,EAAU;AACnC,MAAA,MAAM,UAAA,GAAa,EAAA,CAAG,EAAA,CAAG,iCAAiC,IACtD,iCAAA,GACA,EAAA;AACJ,MAAA,MAAM,YAAA,GAAe,UAAA,CAAW,GAAA,CAAI,QAAQ,CAAA;AAE5C,MAAA,MAAM,mBAAmB,cAAA,CAAe,GAAA,CAAI,MAAM,CAAA,CAAE,IAAI,cAAc,CAAA;AAEtE,MAAA,IAAI,WAAA,CAAY,GAAA,CAAI,UAAU,CAAA,EAAG;AAC/B,QAAA,MAAM,WAAA,GAAc,WAAA,CAAY,GAAA,CAAI,QAAQ,CAAA;AAC5C,QAAA,MAAM,cAAc,gBAAA,CAAiB,GAAA,CAAI,WAAW,CAAA,CAAE,IAAI,YAAY,CAAA;AACtE,QAAA,IAAA,GAAO,IAAA,CAAK,IAAI,WAAW,CAAA;AAC3B,QAAA;AAAA,MACF,CAAA,MAAO;AACL,QAAA,IAAA,GAAO,IAAA,CAAK,IAAI,gBAAgB,CAAA;AAChC,QAAA,QAAA,GAAW,UAAA;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAOA,oBAAAA,CAAG,GAAA,CAAI,OAAA,EAAS,IAAI,CAAA;AAC7B;AAKO,SAAS,wBAAA,CACd,IAAA,EACA,KAAA,GAAY,IAAA,EACZ,qBAAgC,IAAA,EAC5B;AACJ,EAAA,OAAO,0BAAA,CAA2B,IAAA,EAAM,KAAA,EAAO,kBAAkB,CAAA;AACnE;AAMO,SAAS,yBAAA,CACd,IAAA,EACA,KAAA,GAAY,IAAA,EACZ,qBAAgC,IAAA,EAC5B;AAIJ,EAAA,MAAM,WAAA,GAAc,kBAAA,IAAsB,yBAAA,CAA0B,IAAA,EAAM,KAAK,CAAA;AAC/E,EAAA,MAAM,UAAA,GAAa,wBAAA,CAAyB,IAAA,EAAM,KAAA,EAAO,WAAW,CAAA;AACpE,EAAA,MAAM,WAAA,GAAc,WACjB,GAAA,CAAI,oBAAA,CAAqB,IAAI,IAAIA,oBAAAA,CAAG,KAAK,aAAA,CAAc,WAAW,CAAC,CAAC,CAAA,CACpE,IAAI,WAAW,CAAA,CACf,IAAI,iCAAiC,CAAA,CACrC,IAAI,oBAAoB,CAAA;AAC3B,EAAA,OAAO,WAAA;AACT;AA2BO,SAAS,yBACd,IAAA,EACA,KAAA,GAAY,MACZ,kBAAA,GAAgC,IAAA,EAChC,6BAAqC,GAAA,EACjC;AAEJ,EAAA,MAAM,WAAA,GAAc,yBAAA,CAA0B,IAAA,EAAM,KAAA,EAAO,kBAAkB,CAAA;AAE7E,EAAA,IAAI,WAAA,CAAY,EAAA,CAAG,IAAI,CAAA,EAAG;AACxB,IAAA,OAAO,IAAA;AAAA,EACT;AAIA,EAAA,MAAM,cAAA,GAAiB,IAAIA,oBAAAA,CAAG,EAAE,EAAE,GAAA,CAAI,IAAIA,oBAAAA,CAAG,EAAE,CAAC,CAAA;AAEhD,EAAA,MAAM,6BAA6B,WAAA,CAChC,GAAA,CAAI,cAAc,CAAA,CAClB,IAAI,0BAA0B,CAAA;AAGjC,EAAA,IAAI,SAAA,GAAY,cAAA;AAChB,EAAA,IAAI,IAAA,GAAO,0BAAA;AAGX,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAG9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAG9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAG9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAG9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAG9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAG9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAG9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAG9B,EAAA,MAAM,kBAAA,GAAqB,SAAA,CAAU,GAAA,CAAI,cAAc,CAAA;AAGvD,EAAA,MAAM,MAAM,kBAAA,CAAmB,GAAA,CAAI,oBAAoB,CAAA,CAAE,IAAI,cAAc,CAAA;AAE3E,EAAA,OAAO,GAAA;AACT;AAWO,SAAS,wBAAA,CACd,IAAA,EACA,KAAA,GAAY,IAAA,EACZ,qBAAgC,IAAA,EAC5B;AACJ,EAAA,MAAM,WAAA,GAAc,yBAAA,CAA0B,IAAA,EAAM,KAAA,EAAO,kBAAkB,CAAA;AAI7E,EAAA,MAAM,MAAM,WAAA,CAAY,GAAA,CAAI,oBAAoB,CAAA,CAAE,IAAI,0BAA0B,CAAA;AAEhF,EAAA,OAAO,GAAA;AACT;AAWO,SAAS,wBACd,IAAA,EACA,KAAA,GAAY,MACZ,kBAAA,GAAgC,IAAA,EAChC,6BAAqC,GAAA,EACjC;AACJ,EAAA,MAAM,UAAA,GAAa,wBAAA,CAAyB,IAAA,EAAM,KAAA,EAAO,kBAAkB,CAAA;AAE3E,EAAA,IAAI,UAAA,CAAW,EAAA,CAAG,IAAI,CAAA,EAAG;AACvB,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,MAAM,cAAA,GAAiB,IAAIA,oBAAAA,CAAG,EAAE,EAAE,GAAA,CAAI,IAAIA,oBAAAA,CAAG,EAAE,CAAC,CAAA;AAEhD,EAAA,MAAM,6BAA6B,UAAA,CAAW,GAAA,CAAI,cAAc,CAAA,CAAE,IAAI,0BAA0B,CAAA;AAEhG,EAAA,IAAI,SAAA,GAAY,cAAA;AAChB,EAAA,IAAI,IAAA,GAAO,0BAAA;AAEX,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAC9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAC9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAC9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAC9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAC9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAC9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAC9B,EAAA,IAAA,GAAO,IAAA,CAAK,IAAI,0BAA0B,CAAA,CAAE,IAAI,cAAc,CAAA,CAAE,KAAK,CAAC,CAAA;AACtE,EAAA,SAAA,GAAY,SAAA,CAAU,IAAI,IAAI,CAAA;AAE9B,EAAA,MAAM,kBAAA,GAAqB,SAAA,CAAU,GAAA,CAAI,cAAc,CAAA;AAEvD,EAAA,MAAM,MAAM,kBAAA,CAAmB,GAAA,CAAI,oBAAoB,CAAA,CAAE,IAAI,cAAc,CAAA;AAE3E,EAAA,OAAO,GAAA;AACT;AAUO,SAAS,uBAAA,CACd,IAAA,EACA,KAAA,GAAY,IAAA,EACZ,qBAAgC,IAAA,EAC5B;AACJ,EAAA,MAAM,UAAA,GAAa,wBAAA,CAAyB,IAAA,EAAM,KAAA,EAAO,kBAAkB,CAAA;AAG3E,EAAA,MAAM,MAAM,UAAA,CAAW,GAAA,CAAI,oBAAoB,CAAA,CAAE,IAAI,0BAA0B,CAAA;AAE/E,EAAA,OAAO,GAAA;AACT;AAiBA,IAAMkB,eAAAA,GAAiB,OAAA;AAUvB,SAASC,qBAAoB,GAAA,EAAqB;AAChD,EAAA,IAAI,GAAA,KAAQ,GAAG,OAAO,CAAA;AACtB,EAAA,OAAO,KAAK,GAAA,CAAI,CAAA,GAAI,GAAA,GAAMD,eAAAA,EAAgBA,eAAc,CAAA,GAAI,CAAA;AAC9D;AAqBO,SAAS,0BACd,UAAA,EAC+B;AAC/B,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,KAAI,EAAG,CAAC,GAAG,CAAA,KAAM;AAC3C,IAAA,MAAM,qBAAqB,CAAA,GAAI,GAAA;AAG/B,IAAA,MAAM,gBAAgB,IAAIlB,oBAAAA;AAAA,MACxB,IAAA,CAAK,KAAA,CAAM,kBAAA,GAAqB,iCAAA,CAAkC,UAAU;AAAA,KAC9E;AAGA,IAAA,MAAM,YAAA,GAAe,wBAAA,CAAyB,UAAA,EAAY,IAAA,EAAM,aAAa,CAAA;AAG7E,IAAA,MAAM,aAAA,GAAgB,yBAAA,CAA0B,UAAA,EAAY,IAAA,EAAM,aAAa,CAAA;AAI/E,IAAA,MAAM,SAAA,GAAY,YAAA,CAAa,QAAA,EAAS,GAAI,2BAA2B,QAAA,EAAS;AAChF,IAAA,MAAM,SAAA,GAAY,aAAA,CAAc,QAAA,EAAS,GAAI,2BAA2B,QAAA,EAAS;AAGjF,IAAA,MAAM,SAAA,GAAYmB,qBAAoB,SAAS,CAAA;AAC/C,IAAA,MAAM,SAAA,GAAYA,qBAAoB,SAAS,CAAA;AAE/C,IAAA,OAAO;AAAA,MACL,aAAa,kBAAA,GAAqB,GAAA;AAAA;AAAA,MAClC,WAAW,SAAA,GAAY,GAAA;AAAA;AAAA,MACvB,WAAW,SAAA,GAAY;AAAA;AAAA,KACzB;AAAA,EACF,CAAC,CAAA;AACH;;;AC3bA,eAAsB,eAAA,CACpB,WAAA,EACA,UAAA,EAKA,UAAA,EACA;AAEA,EAAA,MAAM,oBAAA,uBAAwC,GAAA,EAAI;AAElD,EAAA,MAAM,cAAA,GAAiB,IAAI,GAAA,CAAI,WAAA,CAAY,GAAA,CAAI,CAAC,MAAA,KAAW,CAAC,MAAA,CAAO,WAAA,EAAa,MAAM,CAAC,CAAC,CAAA;AAGxF,EAAA,MAAM,qBAAA,GAAwB,UAAA,CAAW,GAAA,CAAI,CAAC,SAAA,KAAc;AAC1D,IAAA,MAAM,aAAA,GAAgB,UAAU,SAAA,CAAU,aAAA;AAC1C,IAAA,MAAM,MAAA,GAAS,SAAA,CAAU,UAAA,CAAW,MAAA,CAAO,SAAS,CAAA;AACpD,IAAA,MAAM,WAAA,GAAc,SAAS,CAAA,GAAI,CAAA;AACjC,IAAA,MAAM,OAAA,GAA0B,aAAA,CAC7B,KAAA,CAAM,WAAW,CAAA,CACjB,OAAO,CAAC,CAAA,KAAM,CAAA,CAAE,WAAA,KAAgB,CAAC,CAAA;AAEpC,IAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,MAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAW;AAC1B,QAAA,MAAM,QAAQ,MAAA,CAAO,WAAA;AACrB,QAAA,MAAM,MAAA,GAAS,cAAA,CAAe,GAAA,CAAI,KAAK,CAAA;AACvC,QAAA,IAAI,CAAC,MAAA,EAAQ;AACX,UAAA,oBAAA,CAAqB,IAAI,KAAK,CAAA;AAAA,QAChC;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,OAAO;AAAA,MACL,SAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,yBAAA,GAA4B,KAAA,CAAM,IAAA,CAAK,oBAAoB,CAAA;AAEjE,EAAA,MAAM,oBAAoB,yBAAA,CAA0B,GAAA;AAAA,IAClD,CAAC,KAAA,KAAU,qBAAA,CAAsB,KAAK,EAAE,CAAC;AAAA,GAC3C;AAGA,EAAA,MAAM,sBAAA,GAAyB,kBAAkB,MAAA,GAC7C,MAAM,WAAW,uBAAA,CAAwB,iBAAiB,IAC1D,EAAC;AAGL,EAAA,MAAM,iBAAA,GAAqD,IAAI,GAAA,CAAI;AAAA;AAAA,IAEjE,GAAG,YAAY,GAAA,CAAI,CAAC,WAAW,CAAC,MAAA,CAAO,WAAA,EAAa,MAAM,CAAiC,CAAA;AAAA;AAAA,IAE3F,GAAG,sBAAA,CACA,GAAA,CAAI,CAAC,SAAS,GAAA,KAAQ;AACrB,MAAA,MAAM,WAAA,GAAc,0BAA0B,GAAG,CAAA;AAEjD,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,OAAA,CAAQ,KAAA,CAAM,8BAA8B,WAAW,CAAA;AACvD,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,OAAA,CAAQ,MAAM,8BAAA,EAAgC,iBAAA,CAAkB,GAAG,CAAA,EAAG,UAAU,CAAA;AAChF,QAAA,OAAO,IAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,MAAM,aAAA,GAAgB,yBAAA,CAA0B,OAAA,CAAQ,IAAI,CAAA;AAC5D,QAAA,OAAO,CAAC,aAAa,aAAa,CAAA;AAAA,MACpC;AAAA,IACF,CAAC,CAAA,CACA,MAAA,CAAO,CAAC,MAAA,KAAmD,WAAW,IAAI;AAAA,GAC9E,CAAA;AAGD,EAAA,MAAM,qBAAqB,IAAI,GAAA;AAAA,IAC7B,qBAAA,CAAsB,GAAA,CAAI,CAAC,oBAAA,KAAyB;AAClD,MAAA,MAAM,EAAE,SAAA,EAAW,OAAA,EAAQ,GAAI,oBAAA;AAC/B,MAAA,MAAM,eAA+B,EAAC;AACtC,MAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,MAAA,KAAW;AAC1B,QAAA,MAAM,cAAc,MAAA,CAAO,WAAA;AAC3B,QAAA,MAAM,MAAA,GAAS,iBAAA,CAAkB,GAAA,CAAI,WAAW,CAAA;AAChD,QAAA,IAAI,CAAC,MAAA,EAAQ;AACX,UAAA,OAAA,CAAQ,KAAA,CAAM,wBAAwB,WAAW,CAAA;AAAA,QACnD,CAAA,MAAO;AACL,UAAA,YAAA,CAAa,IAAA,CAAK;AAAA,YAChB,QAAQ,MAAA,CAAO,MAAA;AAAA,YACf,WAAA;AAAA,YACA,UAAA,EAAY,qBAAA,CAAsB,WAAW,CAAA,CAAE,CAAC,CAAA;AAAA,YAChD,MAAM,MAAA,CAAO,IAAA;AAAA,YACb,YAAA,EAAc;AAAA,WACf,CAAA;AAAA,QACH;AAAA,MACF,CAAC,CAAA;AACD,MAAA,OAAO,CAAC,SAAA,CAAU,WAAA,CAAY,QAAA,IAAY,YAAY,CAAA;AAAA,IACxD,CAAC;AAAA,GACH;AAEA,EAAA,OAAO,kBAAA;AACT;AAEA,eAAsB,qBAAA,CACpB,WAAA,EACA,UAAA,EACA,UAAA,EAC+B;AAC/B,EAAA,MAAM,UAAU,UAAA,CAAW,GAAA;AAAA,IAAI,CAAC,SAC9B,IAAA,CAAK,aAAA,CAAc,IAAI,CAAC,QAAA,KAAa,SAAS,WAAW;AAAA,GAC3D;AAEA,EAAA,MAAM,gBAAA,GAAmB,IAAI,GAAA,CAAI,OAAA,CAAQ,MAAM,CAAA;AAE/C,EAAA,MAAM,oBAAA,GAAuB,KAAA,CAAM,IAAA,CAAK,gBAAgB,CAAA,CAAE,MAAA;AAAA,IACxD,CAAC,UAAU,CAAC,WAAA,CAAY,KAAK,CAAC,MAAA,KAAW,MAAA,CAAO,WAAA,KAAgB,KAAK;AAAA,GACvE;AAEA,EAAA,MAAM,iBAAA,GAAoB,qBAAqB,GAAA,CAAI,CAAC,UAAU,qBAAA,CAAsB,KAAK,CAAA,CAAE,CAAC,CAAC,CAAA;AAE7F,EAAA,MAAM,sBAAA,GAAyB,kBAAkB,MAAA,GAC7C,MAAM,WAAW,uBAAA,CAAwB,iBAAiB,IAC1D,EAAC;AAGL,EAAA,MAAM,aAAA,GAAiD,IAAI,GAAA,CAAI;AAAA;AAAA,IAE7D,GAAG,YAAY,GAAA,CAAI,CAAC,WAAW,CAAC,MAAA,CAAO,WAAA,EAAa,MAAM,CAAiC,CAAA;AAAA;AAAA,IAE3F,GAAG,sBAAA,CACA,GAAA,CAAI,CAAC,SAAS,GAAA,KAAQ;AACrB,MAAA,MAAM,WAAA,GAAc,qBAAqB,GAAG,CAAA;AAE5C,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,OAAA,CAAQ,KAAA,CAAM,8BAA8B,WAAW,CAAA;AACvD,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,OAAA,CAAQ,MAAM,8BAAA,EAAgC,iBAAA,CAAkB,GAAG,CAAA,EAAG,UAAU,CAAA;AAChF,QAAA,OAAO,IAAA;AAAA,MACT,CAAA,MAAO;AACL,QAAA,MAAM,aAAA,GAAgB,yBAAA,CAA0B,OAAA,CAAQ,IAAI,CAAA;AAC5D,QAAA,OAAO,CAAC,aAAa,aAAa,CAAA;AAAA,MACpC;AAAA,IACF,CAAC,CAAA,CACA,MAAA,CAAO,CAAC,MAAA,KAAmD,WAAW,IAAI;AAAA,GAC9E,CAAA;AAED,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,aAAA,CAAc,MAAA,EAAQ,CAAA;AAC1C;ACrKA,IAAM,oDAAA,GAAuD,OAAO,IAAA,CAAK;AAAA,EACvE,EAAA;AAAA,EAAI,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK,GAAA;AAAA,EAAK;AACpC,CAAC,CAAA;AAEM,IAAM,wCAAA,GAA2C,CACtD,KAAA,EACA,UAAA,EACA,QACA,eAAA,KAC2B;AAC3B,EAAA,MAAM,IAAA,GAAsB;AAAA;AAAA,IAE1B,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAGpD,EAAE,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA;AAAA,IAGxD,EAAE,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAGrD,EAAE,MAAA,EAAQ,eAAA,EAAiB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,GAChE;AAEA,EAAA,OAAO,IAAIxB,8BAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,gBAAA;AAAA,IACX,IAAA,EAAM;AAAA,GACP,CAAA;AACH;AAEA,IAAM,iBAAA,GAAoB;AAAA,EACxB;AACF,CAAA;AAEA,IAAOyB,qBAAAA,GAAQ,iBAAA;;;ACpCR,SAAS,sBAAA,CAAuB,EAAE,UAAA,EAAW,EAAiC;AACnF,EAAA,MAAM,gBAAgB,UAAA,CAAW,MAAA;AACjC,EAAA,MAAM,mBAAmB,UAAA,CAAW,MAAA;AACpC,EAAA,MAAM,UAAA,GAAa,gBAAA,EAAiB,CAAE,CAAC,CAAA;AACvC,EAAA,MAAM,eAAA,GAAkB,0BAAA,CAA2B,UAAA,CAAW,WAAW,EAAE,CAAC,CAAA;AAE5E,EAAA,OAAOA,qBAAAA,CAAkB,wCAAA;AAAA,IACvB,UAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF;AClBO,IAAM,mBAAA,GAAsB,IAAI1C,iBAAAA,CAAU,6CAA6C;AAEvF,IAAM,2BAA2B,IAAIA,iBAAAA;AAAA,EAC1C;AACF;AAEO,IAAM,sBAAA,GAAyB,IAAIA,iBAAAA,CAAU,6CAA6C;;;ACRjG,IAAA,0BAAA,GAAA;AAAA,EACE,OAAA,EAAW,6CAAA;AAAA,EACX,QAAA,EAAY;AAAA,IACV,IAAA,EAAQ,WAAA;AAAA,IACR,OAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAQ,OAAA;AAAA,IACR,WAAA,EAAe;AAAA,GACjB;AAAA,EACA,YAAA,EAAgB;AAAA,IACd;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAA,EAAiB,eAAe;AAAA,SAChD;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF,WACF;AAAA,UACA,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,eACzD;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA;AACvD;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA;AACrD;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,GAAG,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAC1D,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK;AAAA;AAChC,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACzD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK;AAAA;AAChC,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,eAC1D;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG;AAAA,eAC7C;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa,CAAC,sBAAA,EAAwB,sBAAsB;AAAA,SAC9D;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX,eAAA;AAAA,YACA,YAAA;AAAA,YACA,sBAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa,CAAC,sBAAA,EAAwB,sBAAsB;AAAA,SAC9D;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,GAAA,EAAO;AAAA,cACL,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,GAAA,EAAO;AAAA,cACL,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,YAAA,EAAc,eAAe;AAAA,SAC7C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,YAAA,EAAc,eAAe;AAAA,SAC7C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,YAAA,EAAc,eAAe;AAAA,SAC7C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,SAAA,EAAa,CAAC,sBAAsB;AAAA,SACtC;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,YAAA,EAAc,eAAA,EAAiB,sBAAsB;AAAA,SACrE;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,GAAA,EAAO;AAAA,cACL,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,SAAA,EAAa,CAAC,sBAAsB;AAAA,SACtC;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,YAAA,EAAc,eAAA,EAAiB,sBAAsB;AAAA,SACrE;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,GACF;AAAA,EACA,QAAA,EAAY;AAAA,IACV;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,CAAA,EAAG,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAG;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE;AAAA,KACpD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACzD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA;AACxD,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE;AAAA,KACpD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,CAAA,EAAG,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAC;AAAA,KACnD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,GAAA,EAAK,KAAK,EAAA,EAAI,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,EAAE;AAAA,KAClD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,CAAA,EAAG,EAAA,EAAI,EAAA,EAAI,GAAG;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,CAAA,EAAG,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,EAAE;AAAA,KACpD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA;AACzD,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,UAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,YAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,eAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,KAAA,EAAS;AAAA,IACP;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA;AACT,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA;AACT,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ,CAAC,sDAAsD,CAAA;AAAA,MAC/D,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,4GAAA;AAAA,cACA,mCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,uGAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,8GAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ,CAAC,sDAAsD,CAAA;AAAA,MAC/D,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,yEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,0EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,4GAAA;AAAA,cACA,mCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,sHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,uHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,sHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ,CAAC,0BAA0B,CAAA;AAAA,MACnC,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,GAAA;AAAA,QACR,MAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ,CAAC,oCAAoC,CAAA;AAAA,MAC7C,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ,CAAC,EAAA,EAAI,sBAAsB,CAAA;AAAA,YACnC,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,oFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ,CAAC,yCAAyC,CAAA;AAAA,MAClD,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,GAAA;AAAA,QACR,MAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ,CAAC,oDAAoD,CAAA;AAAA,MAC7D,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,iFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,8DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,+FAAA;AAAA,cACA,mHAAA;AAAA,cACA,yHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,+EAAA;AAAA,cACA,yHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ,CAAC,sBAAsB,CAAA;AAAA,MAC/B,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,GAAA;AAAA,QACR,MAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,GAAA;AAAA,QACR,MAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ,CAAC,uDAAuD,CAAA;AAAA,MAChE,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,uFAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,oEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,EAAA;AAAA,cACA,yFAAA;AAAA,cACA,yHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ,CAAC,sBAAsB,CAAA;AAAA,MAC/B,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,GAAA;AAAA,QACR,MAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AAEJ,CAAA;;;AC96EA,IAAA,gBAAA,GAAA;AAAA,EACE,OAAA,EAAW,6CAAA;AAAA,EACX,QAAA,EAAY;AAAA,IACV,IAAA,EAAQ,SAAA;AAAA,IACR,OAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAQ,OAAA;AAAA,IACR,WAAA,EAAe;AAAA,GACjB;AAAA,EACA,YAAA,EAAgB;AAAA,IACd;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,KACb;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,0BAA0B;AAAA,SAC1C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK;AAAA;AACvD,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE;AAAA,eAC/C;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBACxD,CAAA;AAAA,kBAAG,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,GAAA;AAAA,kBACvD,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,CAAA;AAAA,kBAAG,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI;AAAA;AACxB,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAC7D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBACzD,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI;AAAA;AACnB;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,KAAK,GAAG;AAAA,eAC7C;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,CAAC,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,EAAA;AAAA,kBAAI,EAAA;AAAA,kBAAI,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK,GAAA;AAAA,kBAAK;AAAA;AAC5D;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,MAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,KACb;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,CAAA,EAAG,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,KACb;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,EAAE,CAAA;AAAA,MACnD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAC1D,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,EAAA;AAAA,gBAAI,GAAA;AAAA,gBAAK,CAAA;AAAA,gBAAG,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAC1D,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK,GAAA;AAAA,gBAAK;AAAA;AACjB;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,QAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG,CAAA;AAAA,MACpD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,KACb;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACvD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,CAAA,EAAG,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAE,CAAA;AAAA,MAClD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,GAAA,EAAO;AAAA,cACL,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,IAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,iCAAiC;AAAA,SAC5D;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAG,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAA;AAAA,MACrD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,KACb;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,GAAA,EAAK,KAAK,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAA;AAAA,MACtD,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,SAAA,EAAa,CAAC,SAAA,EAAW,oBAAoB;AAAA,SAC/C;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa,CAAC,SAAS;AAAA,SACzB;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,SAAA,EAAa,CAAC,eAAe;AAAA,SAC/B;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA;AACb,GACF;AAAA,EACA,QAAA,EAAY;AAAA,IACV;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,IAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,CAAA,EAAG,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,CAAC;AAAA,KACnD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,IAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,EAAE;AAAA,KACpD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA;AACxD,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,GAAG,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAG;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAC;AAAA,KACrD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,GAAA,EAAK,KAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACxD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,GAAA,EAAK,EAAA,EAAI,KAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAG;AAAA,KACtD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,EAAA,EAAI,KAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG;AAAA,KACvD;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB,CAAC,EAAA,EAAI,CAAA,EAAG,KAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAG;AAAA;AACrD,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,KAAA,EAAS;AAAA,IACP;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ,CAAC,uDAAuD,CAAA;AAAA,YAChE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA;AACT,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ,CAAC,mBAAmB,CAAA;AAAA,YAC5B,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sHAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ,CAAC,8CAA8C,CAAA;AAAA,YACvD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ,CAAC,uCAAuC,CAAA;AAAA,YAChD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ,CAAC,0CAA0C,CAAA;AAAA,YACnD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ,CAAC,2CAA2C,CAAA;AAAA,YACpD,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ,CAAC,yCAAyC,CAAA;AAAA,MAClD,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,GAAA;AAAA,QACR,MAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ,CAAC,sBAAsB,CAAA;AAAA,MAC/B,aAAA,EAAiB,UAAA;AAAA,MACjB,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,GAAA;AAAA,QACR,MAAA,EAAU;AAAA,OACZ;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AAEJ,CAAA;;;ACpsDO,IAAM,YAAA,GAAe;AAGrB,IAAM,iBAAA,GAAoB;;;ACO1B,SAAS,wBAAwB,GAAA,EAA2C;AACjF,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,GAAA,CAAI,MAAA,CAAO,QAAA,EAAS;AAAA,IAC5B,IAAA,EAAM,GAAA,CAAI,IAAA,CAAK,QAAA,EAAS;AAAA,IACxB,UAAA,EAAY,GAAA,CAAI,UAAA,CAAW,QAAA,EAAS;AAAA,IACpC,WAAW,GAAA,CAAI,SAAA;AAAA,IACf,UAAU,GAAA,CAAI,QAAA;AAAA,IACd,gBAAA,EAAkB,GAAA,CAAI,gBAAA,CAAiB,QAAA,EAAS;AAAA,IAChD,sBAAA,EAAwB,GAAA,CAAI,sBAAA,CAAuB,QAAA,EAAS;AAAA,IAC5D,kBAAA,EAAoB,GAAA,CAAI,kBAAA,CAAmB,QAAA,EAAS;AAAA,IACpD,mBAAA,EAAqB,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAS;AAAA,IACtD,sBAAA,EAAwB,GAAA,CAAI,sBAAA,CAAuB,QAAA,EAAS;AAAA,IAC5D,yBAAA,EAA2B,GAAA,CAAI,yBAAA,CAA0B,QAAA;AAAS,GACpE;AACF;AAEO,SAAS,wBAAwB,GAAA,EAA2C;AACjF,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,GAAA,CAAI,MAAA,CAAO,QAAA,EAAS;AAAA,IAC5B,YAAY,GAAA,CAAI,UAAA;AAAA,IAChB,eAAe,GAAA,CAAI,aAAA;AAAA,IACnB,iBAAiB,GAAA,CAAI,eAAA;AAAA,IACrB,mBAAA,EAAqB,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAS;AAAA,IACtD,mBAAA,EAAqB,GAAA,CAAI,mBAAA,CAAoB,QAAA,EAAS;AAAA,IACtD,uBAAA,EAAyB,GAAA,CAAI,uBAAA,CAAwB,QAAA,EAAS;AAAA,IAC9D,uBAAA,EAAyB,GAAA,CAAI,uBAAA,CAAwB,QAAA,EAAS;AAAA,IAC9D,uBAAA,EAAyB,GAAA,CAAI,uBAAA,CAAwB,QAAA,EAAS;AAAA,IAC9D,uBAAA,EAAyB,GAAA,CAAI,uBAAA,CAAwB,QAAA;AAAS,GAChE;AACF;AAEO,SAAS,mCACd,GAAA,EACgC;AAChC,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,GAAA,CAAI,QAAA,CAAS,QAAA,EAAS;AAAA,IAChC,QAAA,EAAU,GAAA,CAAI,QAAA,CAAS,QAAA,EAAS;AAAA,IAChC,SAAA,EAAW,GAAA,CAAI,SAAA,CAAU,QAAA,EAAS;AAAA,IAClC,YAAA,EAAc,GAAA,CAAI,YAAA,CAAa,QAAA;AAAS,GAC1C;AACF;AAEO,SAAS,qBAAqB,GAAA,EAAqC;AACxE,EAAA,OAAO;AAAA,IACL,SAAS,GAAA,CAAI,OAAA;AAAA,IACb,YAAY,GAAA,CAAI,UAAA;AAAA,IAChB,kBAAkB,GAAA,CAAI,gBAAA;AAAA,IACtB,aAAa,GAAA,CAAI,WAAA;AAAA,IACjB,WAAW,GAAA,CAAI,SAAA;AAAA,IACf,kBAAkB,GAAA,CAAI,gBAAA;AAAA,IACtB,aAAa,GAAA,CAAI;AAAA,GACnB;AACF;AC/CA,IAAM,uBAAA,GAA0B,IAAIuC,yBAAAA,CAAmB,YAAY,CAAA;AAEnE,IAAM,oBAAA,GAAuB,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA;AAC/E,IAAM,oCAAA,GAAuC,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAG,CAAC,CAAA;AAC9F,IAAM,sBAAA,GAAyB,MAAA,CAAO,IAAA,CAAK,CAAC,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAG,CAAC,CAAA;AAMvE,SAAS,yBAAA,CAA0B,MAAc,MAAA,EAAuC;AAC7F,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,oBAAoB,CAAA,EAAG;AAClD,IAAA,MAAM,IAAI,MAAM,uCAAuC,CAAA;AAAA,EACzD;AAEA,EAAA,MAAM,OAAA,GAAU,uBAAA,CAAwB,MAAA,CAAO,SAAA,EAAW,IAAI,CAAA;AAE9D,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,UAAA,EAAY,OAAA,CAAQ,YAAA,IAAgB,OAAA,CAAQ,UAAA;AAAA,IAC5C,SAAA,EAAW,OAAA,CAAQ,UAAA,IAAc,OAAA,CAAQ,SAAA;AAAA,IACzC,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,gBAAA,EAAkB,OAAA,CAAQ,kBAAA,IAAsB,OAAA,CAAQ,gBAAA;AAAA,IACxD,sBAAA,EAAwB,OAAA,CAAQ,wBAAA,IAA4B,OAAA,CAAQ,sBAAA;AAAA,IACpE,kBAAA,EAAoB,OAAA,CAAQ,oBAAA,IAAwB,OAAA,CAAQ,kBAAA;AAAA,IAC5D,mBAAA,EAAqB,OAAA,CAAQ,qBAAA,IAAyB,OAAA,CAAQ,mBAAA;AAAA,IAC9D,sBAAA,EAAwB,OAAA,CAAQ,wBAAA,IAA4B,OAAA,CAAQ,sBAAA;AAAA,IACpE,yBAAA,EACE,OAAA,CAAQ,4BAAA,IAAgC,OAAA,CAAQ,yBAAA;AAAA,IAClD,MAAM,OAAA,CAAQ;AAAA,GAChB;AACF;AAEO,SAAS,oCAAA,CACd,MACA,MAAA,EAC+B;AAC/B,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,oCAAoC,CAAA,EAAG;AAClE,IAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,EACzE;AAEA,EAAA,MAAM,OAAA,GAAU,uBAAA,CAAwB,MAAA,CAAO,yBAAA,EAA2B,IAAI,CAAA;AAE9E,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,QAAA,EAAU,OAAA,CAAQ,SAAA,IAAa,OAAA,CAAQ,QAAA;AAAA,IACvC,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,SAAA,EAAW,OAAA,CAAQ,UAAA,IAAc,OAAA,CAAQ,SAAA;AAAA,IACzC,YAAA,EAAc,OAAA,CAAQ,aAAA,IAAiB,OAAA,CAAQ,YAAA;AAAA,IAC/C,YAAA,EAAc,OAAA,CAAQ,aAAA,IAAiB,OAAA,CAAQ,YAAA;AAAA,IAC/C,gBAAA,EAAkB,OAAA,CAAQ,kBAAA,IAAsB,OAAA,CAAQ,gBAAA;AAAA,IACxD,MAAM,OAAA,CAAQ;AAAA,GAChB;AACF;AAYO,SAAS,yBAAA,CAA0B,MAAc,MAAA,EAAuC;AAC7F,EAAA,IAAI,MAAA,GAAS,CAAA;AAEb,EAAA,MAAM,IAAA,GAAO,IAAIvC,iBAAAA,CAAU,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AAC1D,EAAA,MAAA,IAAU,EAAA;AACV,EAAA,MAAM,KAAA,GAAQ,IAAIA,iBAAAA,CAAU,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AAC3D,EAAA,MAAA,IAAU,EAAA;AACV,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAC3C,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAC9C,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAChD,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,mBAAA,GAAsB,IAAIsB,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AACvE,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,mBAAA,GAAsB,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AACvE,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,mBAAA,GAAsB,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AACvE,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAC/C,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,uBAAA,GAA0B,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AAC3E,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,uBAAA,GAA0B,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AAC3E,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,uBAAA,GAA0B,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AAC3E,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,uBAAA,GAA0B,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AAC3E,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,gBAAA,GAAmB,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AACpE,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,mBAAA,GAAsB,IAAItB,iBAAAA,CAAU,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AACzE,EAAA,MAAA,IAAU,EAAA;AACV,EAAA,MAAM,oBAAA,GAAuB,IAAIsB,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AACxE,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,kBAAA,GAAqB,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,CAAC,CAAA,EAAG,IAAI,CAAA;AAEtE,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,UAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAA;AAAA,IACA,mBAAA;AAAA,IACA,mBAAA;AAAA,IACA,mBAAA;AAAA,IACA,cAAA;AAAA,IACA,uBAAA;AAAA,IACA,uBAAA;AAAA,IACA,uBAAA;AAAA,IACA,uBAAA;AAAA,IACA,gBAAA;AAAA,IACA,mBAAA;AAAA,IACA,oBAAA;AAAA,IACA;AAAA,GACF;AACF;AASO,SAAS,sBAAA,CAAuB,MAAc,MAAA,EAAoC;AACvF,EAAA,IAAI,CAAC,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,sBAAsB,CAAA,EAAG;AACpD,IAAA,MAAM,IAAI,MAAM,yCAAyC,CAAA;AAAA,EAC3D;AAEA,EAAA,IAAI,MAAA,GAAS,CAAA;AAEb,EAAA,MAAM,IAAA,GAAO,IAAItB,iBAAAA,CAAU,IAAA,CAAK,MAAM,MAAA,EAAQ,MAAA,GAAS,EAAE,CAAC,CAAA;AAC1D,EAAA,MAAA,IAAU,EAAA;AACV,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,SAAA,CAAU,MAAM,CAAA;AACrC,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAC3C,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AACjD,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAC5C,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAC1C,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AACjD,EAAA,MAAA,IAAU,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,YAAA,CAAa,MAAM,CAAA;AAE5C,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,gBAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF;AAMO,SAAS,wBAAwB,GAAA,EAA2C;AACjF,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,IAAIA,iBAAAA,CAAU,GAAA,CAAI,MAAM,CAAA;AAAA,IAChC,IAAA,EAAM,IAAIA,iBAAAA,CAAU,GAAA,CAAI,IAAI,CAAA;AAAA,IAC5B,UAAA,EAAY,IAAIA,iBAAAA,CAAU,GAAA,CAAI,UAAU,CAAA;AAAA,IACxC,WAAW,GAAA,CAAI,SAAA;AAAA,IACf,UAAU,GAAA,CAAI,QAAA;AAAA,IACd,gBAAA,EAAkB,IAAIA,iBAAAA,CAAU,GAAA,CAAI,gBAAgB,CAAA;AAAA,IACpD,sBAAA,EAAwB,IAAIsB,oBAAAA,CAAG,GAAA,CAAI,sBAAsB,CAAA;AAAA,IACzD,kBAAA,EAAoB,IAAIA,oBAAAA,CAAG,GAAA,CAAI,kBAAkB,CAAA;AAAA,IACjD,mBAAA,EAAqB,IAAIA,oBAAAA,CAAG,GAAA,CAAI,mBAAmB,CAAA;AAAA,IACnD,sBAAA,EAAwB,IAAItB,iBAAAA,CAAU,GAAA,CAAI,sBAAsB,CAAA;AAAA,IAChE,yBAAA,EAA2B,IAAIA,iBAAAA,CAAU,GAAA,CAAI,yBAAyB;AAAA,GACxE;AACF;AAEO,SAAS,wBAAwB,GAAA,EAA2C;AACjF,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,IAAIA,iBAAAA,CAAU,GAAA,CAAI,MAAM,CAAA;AAAA,IAChC,YAAY,GAAA,CAAI,UAAA;AAAA,IAChB,eAAe,GAAA,CAAI,aAAA;AAAA,IACnB,iBAAiB,GAAA,CAAI,eAAA;AAAA,IACrB,mBAAA,EAAqB,IAAIsB,oBAAAA,CAAG,GAAA,CAAI,mBAAmB,CAAA;AAAA,IACnD,mBAAA,EAAqB,IAAIA,oBAAAA,CAAG,GAAA,CAAI,mBAAmB,CAAA;AAAA,IACnD,uBAAA,EAAyB,IAAIA,oBAAAA,CAAG,GAAA,CAAI,uBAAuB,CAAA;AAAA,IAC3D,uBAAA,EAAyB,IAAIA,oBAAAA,CAAG,GAAA,CAAI,uBAAuB,CAAA;AAAA,IAC3D,uBAAA,EAAyB,IAAIA,oBAAAA,CAAG,GAAA,CAAI,uBAAuB,CAAA;AAAA,IAC3D,uBAAA,EAAyB,IAAIA,oBAAAA,CAAG,GAAA,CAAI,uBAAuB;AAAA,GAC7D;AACF;AAEO,SAAS,mCACd,GAAA,EAC4B;AAC5B,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,IAAIA,oBAAAA,CAAG,GAAA,CAAI,QAAQ,CAAA;AAAA,IAC7B,QAAA,EAAU,IAAIA,oBAAAA,CAAG,GAAA,CAAI,QAAQ,CAAA;AAAA,IAC7B,SAAA,EAAW,IAAIA,oBAAAA,CAAG,GAAA,CAAI,SAAS,CAAA;AAAA,IAC/B,YAAA,EAAc,IAAIA,oBAAAA,CAAG,GAAA,CAAI,YAAY;AAAA,GACvC;AACF;AAEO,SAAS,qBAAqB,GAAA,EAAqC;AACxE,EAAA,OAAO;AAAA,IACL,SAAS,GAAA,CAAI,OAAA;AAAA,IACb,YAAY,GAAA,CAAI,UAAA;AAAA,IAChB,kBAAkB,GAAA,CAAI,gBAAA;AAAA,IACtB,aAAa,GAAA,CAAI,WAAA;AAAA,IACjB,WAAW,GAAA,CAAI,SAAA;AAAA,IACf,kBAAkB,GAAA,CAAI,gBAAA;AAAA,IACtB,aAAa,GAAA,CAAI;AAAA,GACnB;AACF;ACtOO,IAAM,kBAAA,GAAqB;AAC3B,IAAM,iBAAA,GAAoB;AAC1B,IAAM,YAAA,GAAe;AAGrB,IAAM,cAAA,GAAiB;AACvB,IAAM,YAAA,GAAe;AACrB,IAAM,eAAA,GAAkB;AACxB,IAAM,yBAAA,GAA4B;AAClC,IAAM,eAAA,GAAkB;AAGxB,IAAM,+BAAA,GAAkC;AAExC,SAAS,4BAAA,CAA6B,MAAiB,YAAA,EAA0B;AACtF,EAAA,MAAM,CAAC,UAAU,CAAA,GAAI,uBAAA,CAAwB,IAAI,CAAA;AACjD,EAAA,MAAM,CAAC,OAAO,CAAA,GAAI,oBAAA,CAAqB,MAAM,UAAU,CAAA;AACvD,EAAA,MAAM,CAAC,SAAS,CAAA,GAAI,sBAAA,EAAuB;AAE3C,EAAA,OAAO;AAAA,IACL,UAAA;AAAA,IACA,YAAA,EAAc,yBAAA,EAA0B,CAAE,CAAC,CAAA;AAAA,IAC3C,4BAAA,EAA8B,yBAAA,CAA0B,IAAI,CAAA,CAAE,CAAC,CAAA;AAAA,IAC/D,gCAAA,EAAkC,uCAAA,CAAwC,IAAA,EAAM,OAAO,EAAE,CAAC,CAAA;AAAA,IAC1F,SAAA,EAAW,sBAAA,CAAuB,IAAI,CAAA,CAAE,CAAC,CAAA;AAAA,IACzC,KAAA,EAAO,8BAAA,CAA+B,IAAA,EAAM,SAAA,EAAW,YAAY,CAAA;AAAA,IACnE,SAAA;AAAA,IACA,gBAAA,EAAkB,oCAAA,CAAqC,IAAI,CAAA,CAAE,CAAC;AAAA,GAChE;AACF;AAMO,SAAS,wBAAA,CACd,cAAA,EACA,gBAAA,GAA8B,mBAAA,EAQ9B;AACA,EAAA,MAAM,CAAC,YAAA,EAAc,gBAAgB,CAAA,GAAI,0BAA0B,gBAAgB,CAAA;AACnF,EAAA,MAAM,CAAC,UAAA,EAAY,cAAc,CAAA,GAAI,uBAAA,CAAwB,gBAAgB,gBAAgB,CAAA;AAC7F,EAAA,MAAM,CAAC,OAAA,EAAS,WAAW,IAAI,oBAAA,CAAqB,cAAA,EAAgB,YAAY,gBAAgB,CAAA;AAEhG,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,gBAAA;AAAA,IACA,UAAA;AAAA,IACA,cAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AACF;AAMO,SAAS,uBAAA,CACd,KAAA,EACA,gBAAA,GAA8B,mBAAA,EACT;AACrB,EAAA,OAAOtB,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,iBAAiB,CAAA,EAAG,KAAA,CAAM,UAAU,CAAA;AAAA,IACjD;AAAA,GACF;AACF;AAMO,SAAS,oBAAA,CACd,KAAA,EACA,UAAA,EACA,gBAAA,GAA8B,mBAAA,EACT;AACrB,EAAA,MAAM,CAAC,WAAW,CAAA,GAAI,UAAA,GAClB,CAAC,UAAU,CAAA,GACX,uBAAA,CAAwB,KAAA,EAAO,gBAAgB,CAAA;AAEnD,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,YAAY,CAAA,EAAG,MAAM,QAAA,EAAS,EAAG,WAAA,CAAY,QAAA,EAAU,CAAA;AAAA,IACpE;AAAA,GACF;AACF;AAMO,SAAS,yBAAA,CACd,mBAA8B,mBAAA,EACT;AACrB,EAAA,OAAOA,iBAAAA,CAAU,uBAAuB,CAAC,MAAA,CAAO,KAAK,kBAAkB,CAAC,GAAG,gBAAgB,CAAA;AAC7F;AAWO,SAAS,oCAAA,CACd,KAAA,EACA,gBAAA,GAA8B,sBAAA,EACT;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,+BAA+B,CAAA,EAAG,KAAA,CAAM,UAAU,CAAA;AAAA,IAC/D;AAAA,GACF;AACF;AAUO,SAAS,yBAAA,CACd,KAAA,EACA,kBAAA,GAAgC,wBAAA,EACX;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,YAAY,CAAA,EAAG,KAAA,CAAM,UAAU,CAAA;AAAA,IAC5C;AAAA,GACF;AACF;AAEO,SAAS,8BAAA,CACd,cAAA,EACA,YAAA,EACA,cAAA,GAA4B,gBAAA,EACjB;AACX,EAAA,OAAO,6BAAA;AAAA,IACL,cAAA;AAAA,IACA,YAAA;AAAA,IACA,IAAA;AAAA,IACA,cAAA;AAAA,IACA;AAAA,GACF;AACF;AAMO,SAAS,sBAAA,CACd,KAAA,EACA,kBAAA,GAAgC,wBAAA,EACX;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA,EAAG,KAAA,CAAM,UAAU,CAAA;AAAA,IAC/C;AAAA,GACF;AACF;AAMO,SAAS,sBAAA,CACd,qBAAgC,wBAAA,EACX;AACrB,EAAA,OAAOA,iBAAAA,CAAU,uBAAuB,CAAC,MAAA,CAAO,KAAK,cAAc,CAAC,GAAG,kBAAkB,CAAA;AAC3F;AAMO,SAAS,yBAAA,CACd,KAAA,EACA,IAAA,EACA,kBAAA,GAAgC,wBAAA,EACX;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,eAAe,CAAA,EAAG,MAAM,QAAA,EAAS,EAAG,IAAA,CAAK,QAAA,EAAU,CAAA;AAAA,IAChE;AAAA,GACF;AACF;AAEO,SAAS,uCAAA,CACd,cAAA,EACA,UAAA,EACA,kBAAA,GAAgC,wBAAA,EACX;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,yBAAyB,CAAA,EAAG,eAAe,QAAA,EAAS,EAAG,UAAA,CAAW,QAAA,EAAU,CAAA;AAAA,IACzF;AAAA,GACF;AACF;;;ACnMA,IAAM2C,SAAAA,GAAW,CAAC,GAAA,EAAa,oBAAA,GAA+B,gBAAgB,MAAA,GAAiB,CAAA,KAC7F,IAAA,CAAK,GAAA,CAAA,CAAK,CAAA,GAAI,GAAA,GAAM,oBAAA,KAAyB,oBAAA,GAAuB,GAAG,MAAM,CAAA;;;ACDxE,IAAM,6BAAA,GAAgC,IAAIrB,oBAAAA,CAAG,eAAe;AAC5D,IAAM,oBAAA,GAAuB,IAAIA,oBAAAA,CAAG,OAAU;AAC9C,IAAM,oBAAA,GAAuB,IAAIA,oBAAAA,CAAG,gBAAgB;AAcpD,SAAS,2BAAA,CACd,cACA,iBAAA,EACI;AACJ,EAAA,OAAO,aAAa,kBAAA,CAAmB,GAAA,CAAI,iBAAiB,CAAA,CAAE,IAAI,6BAA6B,CAAA;AACjG;AAqBO,SAAS,2BAAA,CACd,YAAA,EACA,WAAA,EACA,gBAAA,EACsB;AACtB,EAAA,MAAM,aAAA,GAAsC;AAAA,IAC1C,WAAA,EAAa,IAAIA,oBAAAA,CAAG,CAAC,CAAA;AAAA,IACrB,YAAA,EAAc,KAAA;AAAA,IACd,kBAAkB,YAAA,CAAa;AAAA,GACjC;AAEA,EAAA,IAAI,aAAa,SAAA,CAAU,MAAA,MAAY,YAAA,CAAa,QAAA,CAAS,QAAO,EAAG;AACrE,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,IAAI,gBAAA,CAAiB,GAAG,YAAA,CAAa,SAAA,CAAU,IAAI,YAAA,CAAa,QAAQ,CAAC,CAAA,EAAG;AAC1E,IAAA,OAAO,EAAE,GAAG,aAAA,EAAe,YAAA,EAAc,IAAA,EAAK;AAAA,EAChD;AAEA,EAAA,IAAI,WAAA,CAAY,EAAA,CAAG,YAAA,CAAa,QAAQ,CAAA,EAAG;AACzC,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,IAAI,WAAA,GAAc,YAAA,CAAa,YAAA,CAAa,GAAA,CAAI,IAAIA,qBAAG,GAAG,CAAC,CAAA,CAAE,GAAA,CAAI,WAAW,CAAA;AAE5E,EAAA,IAAI,WAAA,CAAY,EAAA,CAAG,oBAAoB,CAAA,EAAG;AACxC,IAAA,WAAA,GAAc,oBAAA;AAAA,EAChB;AAEA,EAAA,OAAO;AAAA,IACL,WAAA;AAAA,IACA,YAAA,EAAc,KAAA;AAAA,IACd,kBAAkB,YAAA,CAAa;AAAA,GACjC;AACF;AAiBO,SAAS,2CAAA,CACd,YAAA,EACA,WAAA,EACA,gBAAA,EACoC;AACpC,EAAA,MAAM,aAAA,GAAgB,EAAE,IAAA,EAAM,IAAIA,qBAAG,CAAC,CAAA,EAAG,gBAAA,EAAkB,YAAA,CAAa,SAAA,EAAU;AAElF,EAAA,IAAI,aAAa,SAAA,CAAU,MAAA,MAAY,YAAA,CAAa,QAAA,CAAS,QAAO,EAAG;AACrE,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,IAAI,gBAAA,CAAiB,GAAG,YAAA,CAAa,SAAA,CAAU,IAAI,YAAA,CAAa,QAAQ,CAAC,CAAA,EAAG;AAC1E,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,IAAI,WAAA,CAAY,EAAA,CAAG,YAAA,CAAa,QAAQ,CAAA,EAAG;AACzC,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,YAAA,CAAa,YAAA,CAAa,IAAI,6BAA6B,CAAA,CAAE,IAAI,WAAW,CAAA;AAEvF,EAAA,IAAI,IAAA,CAAK,EAAA,CAAG,oBAAoB,CAAA,EAAG;AACjC,IAAA,IAAA,GAAO,oBAAA;AAAA,EACT;AAEA,EAAA,OAAO,EAAE,IAAA,EAAM,gBAAA,EAAkB,YAAA,CAAa,SAAA,EAAU;AAC1D;AAuBO,SAAS,gCAAA,CACd,YAAA,EACA,YAAA,EACA,YAAA,EACA,mBACA,gBAAA,EACI;AACJ,EAAA,MAAM,wBAAwB,YAAA,CAAa,kBAAA;AAC3C,EAAA,MAAM,4BAA4B,YAAA,CAAa,sBAAA;AAC/C,EAAA,MAAM,gCAAgC,YAAA,CAAa,mBAAA;AAGnD,EAAA,IAAI,WAAA,GAAc,IAAIA,oBAAAA,CAAG,CAAC,CAAA;AAC1B,EAAA,IAAI,mBAAmB,YAAA,CAAa,mBAAA;AAEpC,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,WAAA,GAAc,2BAAA,CAA4B,YAAA,EAAc,iBAAiB,CAAA;AAC/E,IAAA,MAAM,MAAA,GAAS,2CAAA;AAAA,MACb,YAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,WAAA,GAAc,MAAA,CAAO,IAAA;AACrB,IAAA,gBAAA,GAAmB,MAAA,CAAO,gBAAA;AAAA,EAC5B;AAEA,EAAA,IAAI,iBAAiB,YAAA,CAAa,mBAAA;AAClC,EAAA,IAAI,cAAA,CAAe,EAAA,CAAG,gBAAgB,CAAA,EAAG;AACvC,IAAA,cAAA,GAAiB,gBAAA;AAAA,EACnB;AAEA,EAAA,MAAM,cAAA,GAAiB,gBAAA,CAAiB,GAAA,CAAI,cAAc,CAAA;AAI1D,EAAA,IAAI,kBAAA,GAAqB,WAAA,CACtB,GAAA,CAAI,cAAc,CAAA,CAClB,GAAA,CAAI,oBAAoB,CAAA,CACxB,GAAA,CAAI,IAAIA,oBAAAA,CAAG,GAAG,CAAC,CAAA;AAGlB,EAAA,MAAM,KAAA,GAAQ,6BAAA,CAA8B,GAAA,CAAI,yBAAyB,CAAA;AACzE,EAAA,kBAAA,GAAqB,kBAAA,CAAmB,GAAA;AAAA,IACtC,KAAA,CAAM,IAAI,IAAIA,oBAAAA,CAAG,IAAI,CAAC,CAAA,CAAE,IAAI,yBAAyB;AAAA,GACvD;AAEA,EAAA,OAAO,qBAAA,CAAsB,GAAA,CAAI,qBAAA,CAAsB,GAAA,CAAI,kBAAkB,CAAA,CAAE,GAAA,CAAI,IAAIA,oBAAAA,CAAG,IAAI,CAAC,CAAC,CAAA;AAClG;AAeO,SAAS,oCAAoC,YAAA,EAAmC;AACrF,EAAA,MAAM,UAAA,GAAa,IAAIA,oBAAAA,CAAG,YAAA,CAAa,UAAU,CAAA;AACjD,EAAA,MAAM,GAAA,GAAM,IAAIA,oBAAAA,CAAG,YAAA,CAAa,aAAa,CAAA;AAE7C,EAAA,IAAI,YAAA,CAAa,uBAAA,CAAwB,MAAA,EAAO,EAAG;AACjD,IAAA,OAAO,IAAIA,qBAAG,CAAC,CAAA;AAAA,EACjB;AAEA,EAAA,MAAM,yBAAA,GAA4B,aAAa,uBAAA,CAC5C,GAAA,CAAI,aAAa,mBAAmB,CAAA,CACpC,IAAI,6BAA6B,CAAA;AAEpC,EAAA,MAAM,yBAAA,GAA4B,aAAa,uBAAA,CAC5C,GAAA,CAAI,aAAa,mBAAmB,CAAA,CACpC,IAAI,6BAA6B,CAAA;AAEpC,EAAA,IAAI,yBAAA,CAA0B,QAAO,EAAG;AACtC,IAAA,OAAO,IAAIA,qBAAG,CAAC,CAAA;AAAA,EACjB;AAEA,EAAA,OAAO,UAAA,CACJ,IAAI,IAAIA,oBAAAA,CAAG,GAAG,CAAA,CAAE,GAAA,CAAI,GAAG,CAAC,CAAA,CACxB,IAAI,yBAAyB,CAAA,CAC7B,IAAI,yBAAA,CAA0B,GAAA,CAAI,IAAIA,oBAAAA,CAAG,GAAG,CAAC,CAAC,CAAA;AACnD;AAkBO,SAAS,0BAAA,CACd,YAAA,EACA,YAAA,EACA,YAAA,EACA,iBAAA,EACQ;AACR,EAAA,MAAM,UAAA,GAAa,oCAAoC,YAAY,CAAA;AAGnE,EAAA,IAAI,YAAA,GAAe,WAAW,QAAA,EAAS;AAEvC,EAAA,IAAI,YAAA,EAAc;AAChB,IAAA,MAAM,WAAA,GAAc,2BAAA,CAA4B,YAAA,EAAc,iBAAiB,CAAA;AAC/E,IAAA,MAAM,gBAAA,GAAmB,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,IAAA,CAAK,GAAA,EAAI,GAAI,GAAI,CAAC,CAAA;AAC7D,IAAA,MAAM,EAAE,aAAY,GAAI,2BAAA;AAAA,MACtB,YAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,YAAA,IAAgB,YAAY,QAAA,EAAS;AAAA,EACvC;AAEA,EAAA,OAAO,YAAA,GAAe,GAAA;AACxB;AAcO,SAAS,0BAA0B,YAAA,EAAuC;AAC/E,EAAA,MAAM,aAAA,GAAgB,oCAAoC,YAAY,CAAA;AACtE,EAAA,MAAM,GAAA,GAAM,aAAA,CAAc,QAAA,EAAS,GAAI,GAAA;AACvC,EAAA,OAAOqB,UAAS,GAAG,CAAA;AACrB;AAsBO,SAAS,0BAAA,CACd,WACA,cAAA,EACQ;AACR,EAAA,MAAM,CAAA,GAAI,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,GAAA,EAAO,cAAc,CAAC,CAAA;AAErD,EAAA,IAAI,SAAA,CAAU,YAAY,CAAA,EAAG;AAE3B,IAAA,IAAI,CAAA,IAAK,UAAU,gBAAA,EAAkB;AACnC,MAAA,OAAO,iBAAA;AAAA,QACL,CAAA;AAAA,QACA,SAAA,CAAU,UAAA;AAAA,QACV,SAAA,CAAU,gBAAA;AAAA,QACV,SAAA,CAAU,WAAA;AAAA,QACV;AAAA,OACF;AAAA,IACF,CAAA,MAAA,IAAW,CAAA,IAAK,SAAA,CAAU,gBAAA,EAAkB;AAC1C,MAAA,OAAO,iBAAA;AAAA,QACL,SAAA,CAAU,gBAAA;AAAA,QACV,SAAA,CAAU,WAAA;AAAA,QACV,SAAA,CAAU,gBAAA;AAAA,QACV,SAAA,CAAU,WAAA;AAAA,QACV;AAAA,OACF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,OAAO,iBAAA;AAAA,QACL,SAAA,CAAU,gBAAA;AAAA,QACV,SAAA,CAAU,WAAA;AAAA,QACV,GAAA;AAAA,QACA,SAAA,CAAU,SAAA;AAAA,QACV;AAAA,OACF;AAAA,IACF;AAAA,EACF,CAAA,MAAO;AAEL,IAAA,IAAI,CAAA,IAAK,UAAU,gBAAA,EAAkB;AACnC,MAAA,OAAO,iBAAA;AAAA,QACL,CAAA;AAAA,QACA,SAAA,CAAU,UAAA;AAAA,QACV,SAAA,CAAU,gBAAA;AAAA,QACV,SAAA,CAAU,WAAA;AAAA,QACV;AAAA,OACF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,OAAO,iBAAA;AAAA,QACL,SAAA,CAAU,gBAAA;AAAA,QACV,SAAA,CAAU,WAAA;AAAA,QACV,GAAA;AAAA,QACA,SAAA,CAAU,SAAA;AAAA,QACV;AAAA,OACF;AAAA,IACF;AAAA,EACF;AACF;AAKA,SAAS,iBAAA,CAAkB,EAAA,EAAY,EAAA,EAAY,EAAA,EAAY,IAAY,CAAA,EAAmB;AAC5F,EAAA,IAAI,EAAA,KAAO,IAAI,OAAO,EAAA;AACtB,EAAA,OAAO,EAAA,GAAA,CAAO,EAAA,GAAK,EAAA,KAAO,CAAA,GAAI,OAAQ,EAAA,GAAK,EAAA,CAAA;AAC7C;AA0BO,SAAS,0BAAA,CACd,WACA,aAAA,EACiC;AACjC,EAAA,MAAM,aAAA,GAAgB,IAAI,aAAA,GAAgB,GAAA;AAE1C,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,KAAI,EAAG,CAAC,GAAG,CAAA,KAAM;AAC3C,IAAA,MAAM,sBAAsB,CAAA,GAAI,GAAA;AAChC,IAAA,MAAM,iBAAiB,CAAA,GAAI,GAAA;AAE3B,IAAA,MAAM,aAAA,GAAgB,0BAAA,CAA2B,SAAA,EAAW,cAAc,CAAA;AAC1E,IAAA,MAAM,oBAAoB,aAAA,GAAgB,GAAA;AAE1C,IAAA,MAAM,SAAA,GAAY,oBAAoB,aAAA,GAAgB,mBAAA;AACtD,IAAA,MAAM,SAAA,GAAYA,UAAS,SAAS,CAAA;AAEpC,IAAA,OAAO;AAAA,MACL,WAAA,EAAa,CAAA;AAAA;AAAA,MACb,WAAW,SAAA,GAAY;AAAA;AAAA,KACzB;AAAA,EACF,CAAC,CAAA;AACH;ACraO,SAAS,iBAAA,CACd,YAAA,EACA,YAAA,EACA,iBAAA,EACsB;AACtB,EAAA,IAAI,YAAA,CAAa,gBAAA,CAAiB,MAAA,CAAO3C,iBAAAA,CAAU,OAAO,CAAA,EAAG;AAC3D,IAAA,OAAO;AAAA,MACL,WAAA,EAAa,IAAIsB,oBAAAA,CAAG,CAAC,CAAA;AAAA,MACrB,YAAA,EAAc,KAAA;AAAA,MACd,gBAAA,EAAkB,IAAIA,oBAAAA,CAAG,CAAC;AAAA,KAC5B;AAAA,EACF;AAEA,EAAA,MAAM,WAAA,GAAc,2BAAA,CAA4B,YAAA,EAAc,iBAAiB,CAAA;AAC/E,EAAA,MAAM,gBAAA,GAAmB,IAAIA,oBAAAA,CAAG,IAAA,CAAK,MAAM,IAAA,CAAK,GAAA,EAAI,GAAI,GAAI,CAAC,CAAA;AAE7D,EAAA,OAAO,2BAAA,CAA4B,YAAA,EAAc,WAAA,EAAa,gBAAgB,CAAA;AAChF;ACzBA,IAAM,yBAAA,GAA4B,MAAA,CAAO,IAAA,CAAK,CAAC,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA;AAE5E,IAAM,0BAA0B,CACrC,OAAA,EACA,IAAA,EACA,UAAA,EACA,8BACA,gBAAA,KAC2B;AAC3B,EAAA,MAAM,IAAA,GAAsB;AAAA;AAAA,IAE1B,EAAE,MAAA,EAAQ,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA;AAAA,IAGrD,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAGnD,EAAE,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAGzD,EAAE,MAAA,EAAQ,4BAAA,EAA8B,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAG3E,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,GACjE;AAEA,EAAA,OAAO,IAAIL,8BAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,mBAAA;AAAA,IACX,IAAA,EAAM;AAAA,GACP,CAAA;AACH;;;ACnCO,SAAS,qBAAA,CAAsB,EAAE,YAAA,EAAa,EAAgC;AACnF,EAAA,OAAO,uBAAA;AAAA,IACL,YAAA,CAAa,MAAA;AAAA,IACb,YAAA,CAAa,IAAA;AAAA,IACb,YAAA,CAAa,UAAA;AAAA,IACb,YAAA,CAAa,sBAAA;AAAA,IACb,YAAA,CAAa;AAAA,GACf;AACF;ACSA,IAAM,WAAA,GAAc,iBAAA;AACpB,IAAM,UAAA,GAAA,CAAc,MAAM,GAAA,IAAO,EAAA;AAEjC,SAAS,SAAS,KAAA,EAAgC;AAChD,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,IAAI,KAAA,GAAQ,EAAA,IAAM,KAAA,GAAQ,UAAA,EAAY;AACpC,MAAA,MAAM,IAAI,UAAA,CAAW,CAAA,4BAAA,EAA+B,KAAK,CAAA,CAAE,CAAA;AAAA,IAC7D;AACA,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,CAAC,MAAA,CAAO,SAAA,CAAU,KAAK,CAAA,EAAG;AAC5B,IAAA,MAAM,IAAI,SAAA,CAAU,CAAA,mCAAA,EAAsC,KAAK,CAAA,CAAE,CAAA;AAAA,EACnE;AACA,EAAA,IAAI,QAAQ,CAAA,EAAG;AACb,IAAA,MAAM,IAAI,UAAA,CAAW,CAAA,iCAAA,EAAoC,KAAK,CAAA,CAAE,CAAA;AAAA,EAClE;AACA,EAAA,OAAO,OAAO,KAAK,CAAA;AACrB;AAIO,IAAM,gBAAA,GAAN,MAAM,iBAAA,SAAyB,KAAA,CAAM;AAAA,EAC1C,IAAA;AAAA,EACA,MAAA;AAAA,EAEA,WAAA,CAAY,MAAc,MAAA,EAAgB;AACxC,IAAA,KAAA,CAAM,CAAA,kCAAA,EAAqC,IAAI,CAAA,EAAA,EAAK,MAAM,CAAA,CAAE,CAAA;AAC5D,IAAA,IAAA,CAAK,IAAA,GAAO,kBAAA;AACZ,IAAA,MAAA,CAAO,cAAA,CAAe,IAAA,EAAM,iBAAA,CAAiB,SAAS,CAAA;AACtD,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AACF;AAEO,IAAM,aAAA,GAAN,MAAM,cAAA,SAAsB,KAAA,CAAM;AAAA,EACvC,QAAA;AAAA,EAEA,YAAY,QAAA,EAAyB;AACnC,IAAA,KAAA,CAAM,CAAA,QAAA,EAAW,SAAS,SAAS,CAAA,kBAAA,EAAqB,SAAS,IAAI,CAAA,EAAA,EAAK,QAAA,CAAS,OAAO,CAAA,CAAE,CAAA;AAC5F,IAAA,IAAA,CAAK,IAAA,GAAO,eAAA;AACZ,IAAA,MAAA,CAAO,cAAA,CAAe,IAAA,EAAM,cAAA,CAAc,SAAS,CAAA;AACnD,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAAA,EAClB;AACF;AAEO,IAAM,WAAA,GAAN,MAAM,YAAA,SAAoB,KAAA,CAAM;AAAA,EACrC,QAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EAEA,YAAY,MAAA,EAAmB;AAC7B,IAAA,MAAM,IAAA,GAAO,OAAO,SAAA,IAAa,CAAA;AACjC,IAAA,MAAM,OAAA,GAAU,OAAO,YAAA,IAAgB,EAAA;AACvC,IAAA,KAAA,CAAM,UAAU,MAAA,CAAO,EAAE,0BAA0B,IAAI,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AACrE,IAAA,IAAA,CAAK,IAAA,GAAO,aAAA;AACZ,IAAA,MAAA,CAAO,cAAA,CAAe,IAAA,EAAM,YAAA,CAAY,SAAS,CAAA;AACjD,IAAA,IAAA,CAAK,WAAW,MAAA,CAAO,EAAA;AACvB,IAAA,IAAA,CAAK,SAAA,GAAY,IAAA;AACjB,IAAA,IAAA,CAAK,YAAA,GAAe,OAAA;AAAA,EACtB;AACF;AAqBA,IAAM,UAAU,IAAI2B,eAAA,CAAQ,EAAE,WAAA,EAAa,MAAM,CAAA;AACjD,IAAM,UAAU,IAAIC,eAAA,CAAQ,EAAE,WAAA,EAAa,MAAM,CAAA;AAI1C,IAAM,QAAA,GAAN,MAAM,SAAA,CAAS;AAAA,EACZ,MAAA;AAAA,EACA,MAAA,GAAS,CAAA;AAAA,EACT,OAAA,GAAU,KAAA;AAAA,EACV,QAAA,GAAW,KAAA;AAAA,EAEX,OAAA,uBAAc,GAAA,EAA4B;AAAA,EAC1C,OAAA,uBAAc,GAAA,EAAyD;AAAA,EACvE,cAAA,uBAAqB,GAAA,EAAqB;AAAA,EAC1C,iBAAkE,EAAC;AAAA;AAAA,EAI3E,OAAO,QAAQ,GAAA,EAAgC;AAC7C,IAAA,OAAO,IAAI,OAAA,CAAkB,CAAC,OAAA,EAAS,MAAA,KAAW;AAChD,MAAA,MAAM,KAAK,IAAIC,0BAAA,CAAU,GAAA,EAAK,CAAC,WAAW,CAAC,CAAA;AAE3C,MAAA,EAAA,CAAG,UAAA,GAAa,aAAA;AAEhB,MAAA,MAAM,SAAS,MAAM;AAGnB,QAAA,EAAA,CAAG,GAAA,CAAI,SAAS,OAAO,CAAA;AACvB,QAAA,EAAA,CAAG,GAAA,CAAI,SAAS,OAAO,CAAA;AACvB,QAAA,OAAA,CAAQ,IAAI,SAAA,CAAS,EAAE,CAAC,CAAA;AAAA,MAC1B,CAAA;AACA,MAAA,MAAM,OAAA,GAAU,CAAC,GAAA,KAAe;AAC9B,QAAA,EAAA,CAAG,GAAA,CAAI,QAAQ,MAAM,CAAA;AACrB,QAAA,EAAA,CAAG,GAAA,CAAI,SAAS,OAAO,CAAA;AACvB,QAAA,MAAA,CAAO,GAAG,CAAA;AAAA,MACZ,CAAA;AAIA,MAAA,MAAM,OAAA,GAAU,CAAC,IAAA,EAAc,MAAA,KAAmB;AAChD,QAAA,EAAA,CAAG,GAAA,CAAI,QAAQ,MAAM,CAAA;AACrB,QAAA,EAAA,CAAG,GAAA,CAAI,SAAS,OAAO,CAAA;AACvB,QAAA,MAAA;AAAA,UACE,IAAI,KAAA;AAAA,YACF,CAAA,mCAAA,EAAsC,IAAI,CAAA,EACxC,MAAA,CAAO,MAAA,GAAS,YAAY,MAAA,CAAO,QAAA,EAAU,CAAA,CAAA,GAAK,EACpD,CAAA,CAAA;AAAA;AACF,SACF;AAAA,MACF,CAAA;AAEA,MAAA,EAAA,CAAG,IAAA,CAAK,QAAQ,MAAM,CAAA;AACtB,MAAA,EAAA,CAAG,IAAA,CAAK,SAAS,OAAO,CAAA;AACxB,MAAA,EAAA,CAAG,IAAA,CAAK,SAAS,OAAO,CAAA;AAAA,IAC1B,CAAC,CAAA;AAAA,EACH;AAAA;AAAA,EAIQ,YAAY,MAAA,EAAmB;AACrC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAEd,IAAA,IAAA,CAAK,MAAA,CAAO,EAAA,CAAG,SAAA,EAAW,CAAC,IAAA,KAA4B;AACrD,MAAA,IAAA,CAAK,cAAc,IAAI,CAAA;AAAA,IACzB,CAAC,CAAA;AACD,IAAA,IAAA,CAAK,MAAA,CAAO,EAAA,CAAG,OAAA,EAAS,CAAC,MAAc,MAAA,KAAmB;AACxD,MAAA,IAAA,CAAK,WAAA,CAAY,IAAA,EAAM,MAAA,CAAO,QAAA,EAAU,CAAA;AAAA,IAC1C,CAAC,CAAA;AACD,IAAA,IAAA,CAAK,MAAA,CAAO,EAAA,CAAG,OAAA,EAAS,CAAC,GAAA,KAAe;AACtC,MAAA,IAAA,CAAK,YAAY,GAAG,CAAA;AAAA,IACtB,CAAC,CAAA;AAAA,EACH;AAAA,EAEQ,aAAA,GAAwB;AAC9B,IAAA,OAAO,IAAA,CAAK,MAAA,EAAA;AAAA,EACd;AAAA;AAAA,EAIA,IAAW,MAAA,GAAkB;AAC3B,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA,EAEO,KAAA,GAAuB;AAC5B,IAAA,IAAI,IAAA,CAAK,OAAA,EAAS,OAAO,OAAA,CAAQ,OAAA,EAAQ;AACzC,IAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,EAAS,MAAA,KAAW;AAC5C,MAAA,IAAA,CAAK,cAAA,CAAe,IAAA,CAAK,EAAE,OAAA,EAAS,QAAQ,CAAA;AAC5C,MAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,QAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,QAAA,IAAA,CAAK,OAAO,KAAA,EAAM;AAAA,MACpB;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAAA,EAEO,mBACL,MAAA,EACkE;AAClE,IAAA,MAAM,SAAA,GAAY,KAAK,aAAA,EAAc;AAErC,IAAA,MAAM,UAAU,IAAI,OAAA;AAAA,MAClB,CAAC,SAAS,MAAA,KAAW;AACnB,QAAA,IAAA,CAAK,OAAA,CAAQ,IAAI,SAAA,EAAW;AAAA,UAC1B,OAAA;AAAA,UACA,MAAA;AAAA,UACA,IAAA,EAAM;AAAA,SACP,CAAA;AAAA,MACH;AAAA,KACF;AAEA,IAAA,MAAM,UAAA,GAA+B;AAAA,MACnC,GAAG,MAAA;AAAA,MACH,IAAA,EAAM,EAAE,GAAG,MAAA,CAAO,IAAA,EAAM,QAAQ,QAAA,CAAS,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA;AAAE,KAC/D;AAEA,IAAA,MAAM,OAAA,GAAyB;AAAA,MAC7B,EAAA,EAAI,SAAA;AAAA,MACJ,IAAA,EAAM,EAAE,kBAAA,EAAoB,UAAA;AAAW,KACzC;AACA,IAAA,IAAA,CAAK,KAAK,OAAO,CAAA;AAEjB,IAAA,OAAO,OAAA;AAAA,EACT;AAAA,EAEO,WAAW,QAAA,EAA+C;AAC/D,IAAA,MAAM,SAAA,GAAY,KAAK,aAAA,EAAc;AAErC,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAA4B,CAAC,SAAS,MAAA,KAAW;AACnE,MAAA,IAAA,CAAK,OAAA,CAAQ,IAAI,SAAA,EAAW;AAAA,QAC1B,OAAA;AAAA,QACA,MAAA;AAAA,QACA,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,CAAC,CAAA;AAED,IAAA,MAAM,OAAA,GAAyB;AAAA,MAC7B,EAAA,EAAI,SAAA;AAAA,MACJ,MAAM,EAAE,UAAA,EAAY,EAAE,EAAA,EAAI,UAAS;AAAE,KACvC;AACA,IAAA,IAAA,CAAK,KAAK,OAAO,CAAA;AAEjB,IAAA,OAAO,OAAA;AAAA,EACT;AAAA;AAAA,EAIQ,KAAK,OAAA,EAA8B;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA;AACtC,MAAA,IAAA,CAAK,MAAA,CAAO,KAAK,OAAO,CAAA;AAAA,IAC1B,SAAS,GAAA,EAAK;AACZ,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,QAAQ,EAAE,CAAA;AACvC,MAAA,IAAI,GAAA,EAAK;AACP,QAAA,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,OAAA,CAAQ,EAAE,CAAA;AAC9B,QAAA,GAAA,CAAI,OAAO,GAAG,CAAA;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAIQ,cAAc,GAAA,EAA8B;AAClD,IAAA,IAAI,GAAA;AACJ,IAAA,IAAI,eAAe,WAAA,EAAa;AAC9B,MAAA,GAAA,GAAM,IAAI,WAAW,GAAG,CAAA;AAAA,IAC1B,CAAA,MAAA,IAAW,MAAA,CAAO,QAAA,CAAS,GAAG,CAAA,EAAG;AAC/B,MAAA,GAAA,GAAM,IAAI,UAAA,CAAW,GAAA,CAAI,QAAQ,GAAA,CAAI,UAAA,EAAY,IAAI,UAAU,CAAA;AAAA,IACjE,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG;AAC7B,MAAA,GAAA,GAAM,IAAI,UAAA,CAAW,MAAA,CAAO,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,IACzC,CAAA,MAAO;AACL,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAA;AACJ,IAAA,IAAI;AACF,MAAA,OAAA,GAAU,OAAA,CAAQ,OAAO,GAAG,CAAA;AAAA,IAC9B,CAAA,CAAA,MAAQ;AACN,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,IAAA,EAAM,0BAA0B,CAAA;AAClD,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,cAAc,OAAA,EAAS;AACzB,MAAA,IAAA,CAAK,cAAA,CAAe,QAAQ,QAAQ,CAAA;AAAA,IACtC,CAAA,MAAA,IAAW,WAAW,OAAA,EAAS;AAC7B,MAAA,IAAA,CAAK,mBAAA,CAAoB,QAAQ,KAAK,CAAA;AAAA,IACxC,CAAA,MAAA,IAAW,gBAAgB,OAAA,EAAS;AAClC,MAAA,IAAA,CAAK,gBAAA,CAAiB,QAAQ,UAAU,CAAA;AAAA,IAC1C,CAAA,MAAA,IAAW,eAAe,OAAA,EAAS;AACjC,MAAA,IAAA,CAAK,eAAA,CAAgB,QAAQ,SAAS,CAAA;AAAA,IACxC;AAAA,EACF;AAAA,EAEQ,eAAe,GAAA,EAA4B;AACjD,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,IAAI,SAAS,CAAA;AAC1C,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,GAAA,CAAI,SAAS,CAAA;AAEjC,IAAA,IAAI,oBAAA,IAAwB,GAAA,CAAI,IAAA,IAAQ,GAAA,CAAI,SAAS,oBAAA,EAAsB;AACzE,MAAA,MAAM,aAAa,GAAA,CAAI,MAAA;AACvB,MAAA,IAAI,CAAC,UAAA,EAAY;AACf,QAAA,GAAA,CAAI,MAAA,CAAO,IAAI,KAAA,CAAM,uDAAuD,CAAC,CAAA;AAC7E,QAAA;AAAA,MACF;AACA,MAAA,MAAM,MAAA,GAAS,IAAI,cAAA,CAA2B;AAAA,QAC5C,KAAA,EAAO,CAAC,UAAA,KAAe;AACrB,UAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,UAAA,CAAW,EAAA,EAAI,UAAU,CAAA;AAAA,QAC5C,CAAA;AAAA,QACA,QAAQ,MAAM;AACZ,UAAA,OAAO,IAAA,CAAK,YAAA,CAAa,UAAA,CAAW,EAAE,CAAA;AAAA,QACxC;AAAA,OACD,CAAA;AACD,MAAA,MAAM,MAAA,GAAkE;AAAA,QACtE,QAAA,EAAU,IAAI,IAAA,CAAK,kBAAA;AAAA,QACnB,MAAA;AAAA,QACA,UAAU,UAAA,CAAW;AAAA,OACvB;AACA,MAAA,GAAA,CAAI,QAAQ,MAAM,CAAA;AAAA,IACpB,WAAW,eAAA,IAAmB,GAAA,CAAI,IAAA,IAAQ,GAAA,CAAI,SAAS,YAAA,EAAc;AACnE,MAAA,GAAA,CAAI,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,aAAa,CAAA;AAAA,IACpC,CAAA,MAAO;AACL,MAAA,GAAA,CAAI,OAAO,IAAI,KAAA,CAAM,gCAAgC,GAAA,CAAI,IAAI,EAAE,CAAC,CAAA;AAAA,IAClE;AAAA,EACF;AAAA,EAEQ,oBAAoB,KAAA,EAA4B;AACtD,IAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,MAAM,SAAS,CAAA;AAC5C,IAAA,IAAI,CAAC,GAAA,EAAK;AACV,IAAA,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA;AACnC,IAAA,GAAA,CAAI,MAAA,CAAO,IAAI,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,EACrC;AAAA,EAEQ,iBAAiB,MAAA,EAA0B;AACjD,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,OAAO,EAAE,CAAA;AAC7C,IAAA,IAAI,CAAC,UAAA,EAAY;AACjB,IAAA,IAAI,MAAA,CAAO,OAAA,CAAQ,UAAA,KAAe,MAAA,EAAW;AAC3C,MAAA,UAAA,CAAW,OAAA,CAAQ,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA;AAAA,IAC9C;AAAA,EACF;AAAA,EAEQ,gBAAgB,MAAA,EAAyB;AAC/C,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,OAAO,EAAE,CAAA;AAC7C,IAAA,IAAI,CAAC,UAAA,EAAY;AACjB,IAAA,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,MAAA,CAAO,EAAE,CAAA;AAC7B,IAAA,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO,MAAA,CAAO,EAAE,CAAA;AAEpC,IAAA,IAAI,MAAA,CAAO,cAAc,MAAA,EAAW;AAClC,MAAA,UAAA,CAAW,KAAA,CAAM,IAAI,WAAA,CAAY,MAAM,CAAC,CAAA;AAAA,IAC1C,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,KAAA,EAAM;AAAA,IACnB;AAAA,EACF;AAAA,EAEA,MAAc,aAAa,QAAA,EAAiC;AAC1D,IAAA,IAAI,IAAA,CAAK,cAAA,CAAe,GAAA,CAAI,QAAQ,CAAA,IAAK,CAAC,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA,EAAG;AACtE,IAAA,IAAA,CAAK,cAAA,CAAe,GAAA,CAAI,QAAA,EAAU,IAAI,CAAA;AACtC,IAAA,MAAM,IAAA,CAAK,WAAW,QAAQ,CAAA;AAAA,EAChC;AAAA;AAAA,EAIQ,UAAU,KAAA,EAAoB;AACpC,IAAA,KAAA,MAAW,GAAA,IAAO,IAAA,CAAK,OAAA,CAAQ,MAAA,EAAO,EAAG;AACvC,MAAA,GAAA,CAAI,OAAO,KAAK,CAAA;AAAA,IAClB;AACA,IAAA,IAAA,CAAK,QAAQ,KAAA,EAAM;AACnB,IAAA,KAAA,MAAW,UAAA,IAAc,IAAA,CAAK,OAAA,CAAQ,MAAA,EAAO,EAAG;AAC9C,MAAA,UAAA,CAAW,MAAM,KAAK,CAAA;AAAA,IACxB;AACA,IAAA,IAAA,CAAK,QAAQ,KAAA,EAAM;AACnB,IAAA,IAAA,CAAK,eAAe,KAAA,EAAM;AAAA,EAC5B;AAAA,EAEQ,WAAA,CAAY,MAAc,MAAA,EAAsB;AACtD,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AACf,IAAA,IAAA,CAAK,SAAA,CAAU,IAAI,gBAAA,CAAiB,IAAA,EAAM,MAAM,CAAC,CAAA;AACjD,IAAA,KAAA,MAAW,QAAA,IAAY,KAAK,cAAA,EAAgB;AAC1C,MAAA,QAAA,CAAS,OAAA,EAAQ;AAAA,IACnB;AACA,IAAA,IAAA,CAAK,iBAAiB,EAAC;AAAA,EACzB;AAAA,EAEQ,YAAY,GAAA,EAAkB;AACpC,IAAA,IAAA,CAAK,UAAU,GAAG,CAAA;AAClB,IAAA,IAAA,CAAK,MAAA,CAAO,MAAM,IAAI,CAAA;AAAA,EACxB;AACF;;;ACnVO,IAAK,QAAA,qBAAAC,SAAAA,KAAL;AACL,EAAAA,UAAA,SAAA,CAAA,GAAU,SAAA;AACV,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AAFD,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA;AAuEL,IAAK,WAAA,qBAAAC,YAAAA,KAAL;AACL,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,QAAK,CAAA,CAAA,GAAL,IAAA;AACA,EAAAA,YAAAA,CAAAA,YAAAA,CAAA,QAAK,CAAA,CAAA,GAAL,IAAA;AAFU,EAAA,OAAAA,YAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA;ACpEL,IAAM,kBAAkB,CAAC,MAAA,KAC9B,OAAO,QAAA,EAAS,CAAE,WAAW,eAAe;AAEvC,SAAS,iCACd,EAAA,EACwB;AACxB,EAAA,OAAO,IAAI/B,8BAAAA,CAAuB;AAAA,IAChC,SAAA,EAAW,IAAIjB,iBAAAA,CAAU,MAAA,CAAO,KAAK,EAAA,CAAG,CAAA,EAAG,QAAQ,CAAC,CAAA;AAAA,IACpD,IAAA,EAAM,EAAA,CAAG,CAAA,CACN,GAAA,CAAI,CAAC,OAAA,MAAa;AAAA,MACjB,MAAA,EAAQ,IAAIA,iBAAAA,CAAU,MAAA,CAAO,KAAK,OAAA,CAAQ,CAAA,EAAG,QAAQ,CAAC,CAAA;AAAA,MACtD,UAAU,OAAA,CAAQ,CAAA;AAAA,MAClB,YAAY,OAAA,CAAQ;AAAA,KACtB,CAAE,EACD,MAAA,CAAO,CAAC,QAAQ,CAAC,eAAA,CAAgB,GAAA,CAAI,MAAM,CAAC,CAAA;AAAA,IAC/C,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,EAAA,CAAG,GAAG,QAAQ;AAAA,GACjC,CAAA;AACH;AAIO,SAAS,eAAA,CACd,QACA,QAAA,EACU;AACV,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AACnC,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAChC,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,CAAC,IAAA,EAAM,KAAA,KAAU;AACpC,IAAA,IAAI,aAAa,SAAA,EAAW;AAC1B,MAAA,OAAO,KAAA,CAAM,SAAA,GAAY,IAAA,CAAK,SAAA,GAAY,KAAA,GAAQ,IAAA;AAAA,IACpD,CAAA,MAAO;AACL,MAAA,OAAO,KAAA,CAAM,QAAA,GAAW,IAAA,CAAK,QAAA,GAAW,KAAA,GAAQ,IAAA;AAAA,IAClD;AAAA,EACF,CAAC,CAAA;AACH;AAcO,SAAS,oBAAA,CACd,OAQA,QAAA,EACsB;AACtB,EAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAG1B,EAAA,MAAM,SAAA,GAAY,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA;AACxC,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA;AAEtC,EAAA,IAAI,oBAAA;AACJ,EAAA,IAAI,aAAa,SAAA,EAAW;AAC1B,IAAA,oBAAA,GAAuB,OAAO,IAAA,CAAK,KAAA,CAAM,aAAa,CAAA,GAAI,WAAA,GAAc,IAAM,CAAC,CAAA;AAAA,EACjF,CAAA,MAAO;AACL,IAAA,oBAAA,GAAuB,OAAO,IAAA,CAAK,IAAA,CAAK,YAAY,CAAA,GAAI,WAAA,GAAc,IAAM,CAAC,CAAA;AAAA,EAC/E;AAEA,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,MAAA,CAAO,KAAA,CAAM,QAAQ,CAAA;AAAA,IAC/B,SAAA,EAAW,MAAA,CAAO,KAAA,CAAM,SAAS,CAAA;AAAA,IACjC,oBAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA,EAAa,MAAM,WAAA,GACf;AAAA,MACE,MAAA,EAAQ,MAAA,CAAO,KAAA,CAAM,WAAA,CAAY,MAAM,CAAA;AAAA,MACvC,MAAA,EAAQ,MAAM,WAAA,CAAY;AAAA,KAC5B,GACA,MAAA;AAAA,IACJ,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,WAAW,KAAA,CAAM;AAAA,GACnB;AACF;AAIA,eAAsB,mBAAA,CACpB,YACA,UAAA,EACsC;AACtC,EAAA,IAAI,UAAA,CAAW,MAAA,KAAW,CAAA,EAAG,OAAO,EAAC;AAErC,EAAA,MAAM,cAAA,GAAiB,MAAM,UAAA,CAAW,uBAAA,CAAwB,UAAU,CAAA;AAE1E,EAAA,OAAO,cAAA,CACJ,GAAA,CAAI,CAAC,WAAA,EAAa,KAAA,KAAU;AAC3B,IAAA,IAAI,CAAC,aAAa,OAAO,IAAA;AACzB,IAAA,OAAO,IAAIiD,iCAAA,CAA0B;AAAA,MACnC,GAAA,EAAK,WAAW,KAAK,CAAA;AAAA,MACrB,KAAA,EAAOA,iCAAA,CAA0B,WAAA,CAAY,WAAA,CAAY,IAAI;AAAA,KAC9D,CAAA;AAAA,EACH,CAAC,CAAA,CACA,MAAA,CAAO,CAAC,OAAA,KAAkD,YAAY,IAAI,CAAA;AAC/E;AC/IA,IAAM,iBAAiB,IAAIL,eAAAA,CAAQ,EAAE,WAAA,EAAa,MAAM,CAAA;AAsBjD,SAAS,uBAAuB,EAAA,EAAkD;AACvF,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,EAAA,CAAG,SAAA,CAAU,OAAA,EAAQ;AAAA,IACxB,CAAA,EAAG,EAAA,CAAG,IAAA,CAAK,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,MACrB,CAAA,EAAG,CAAA,CAAE,MAAA,CAAO,OAAA,EAAQ;AAAA,MACpB,GAAG,CAAA,CAAE,QAAA;AAAA,MACL,GAAG,CAAA,CAAE;AAAA,KACP,CAAE,CAAA;AAAA,IACF,CAAA,EAAG,UAAA,CAAW,IAAA,CAAK,EAAA,CAAG,IAAI;AAAA,GAC5B;AACF;AAGO,SAAS,eAAe,GAAA,EAAkD;AAC/E,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,GAAA,CAAI,GAAA,CAAI,OAAA,EAAQ;AAAA,IACnB,CAAA,EAAG,IAAI,KAAA,CAAM,SAAA,CAAU,IAAI,CAAC,CAAA,KAAM,CAAA,CAAE,OAAA,EAAS;AAAA,GAC/C;AACF;AAMO,SAAS,mBAAmB,SAAA,EAIN;AAC3B,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,SAAA,CAAU,YAAA,CAAa,GAAA,CAAI,sBAAsB,CAAA;AAAA,IACpD,CAAA,EAAG,SAAA,CAAU,IAAA,CAAK,GAAA,CAAI,cAAc,CAAA;AAAA,IACpC,IAAI,SAAA,CAAU,iBAAA,IAAqB,EAAC,EAAG,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,MACjD,CAAA,EAAG,CAAA,CAAE,MAAA,CAAO,OAAA,EAAQ;AAAA,MACpB,GAAG,CAAA,CAAE,QAAA;AAAA,MACL,GAAG,CAAA,CAAE;AAAA,KACP,CAAE;AAAA,GACJ;AACF;AAGO,SAAS,oBAAoB,QAAA,EAA4C;AAC9E,EAAA,OAAO,MAAA,CAAO,KAAK,cAAA,CAAe,MAAA,CAAO,QAAQ,CAAC,CAAA,CAAE,SAAS,QAAQ,CAAA;AACvE;AAkDA,eAAsB,sBACpB,MAAA,EAC+D;AAC/D,EAAA,MAAM;AAAA,IACJ,QAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,gBAAA;AAAA,IACA,SAAA;AAAA,IACA,mBAAA;AAAA,IACA,iBAAA;AAAA,IACA,cAAA;AAAA,IACA,kBAAA;AAAA,IACA,qBAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF,GAAI,MAAA;AAEJ,EAAA,MAAM,KAAA,GAAQ,IAAI,eAAA,CAAgB;AAAA,IAChC,SAAA;AAAA,IACA,UAAA;AAAA,IACA,MAAA,EAAQ,OAAO,MAAM,CAAA;AAAA,IACrB,aAAA;AAAA,IACA,aAAA;AAAA,IACA,gBAAA,EAAkB,GAAA;AAAA,IAClB,QAAA,EAAU;AAAA,GACX,CAAA;AACD,EAAA,IAAI,gBAAgB,MAAA,EAAW,KAAA,CAAM,IAAI,aAAA,EAAe,MAAA,CAAO,WAAW,CAAC,CAAA;AAC3E,EAAA,IAAI,QAAA,EAAU,KAAA,CAAM,GAAA,CAAI,UAAA,EAAY,QAAQ,CAAA;AAC5C,EAAA,IAAI,KAAA,EAAO,QAAQ,KAAA,CAAM,GAAA,CAAI,SAAS,KAAA,CAAM,IAAA,CAAK,GAAG,CAAC,CAAA;AACrD,EAAA,IAAI,YAAA,EAAc,QAAQ,KAAA,CAAM,GAAA,CAAI,gBAAgB,YAAA,CAAa,IAAA,CAAK,GAAG,CAAC,CAAA;AAC1E,EAAA,IAAI,SAAA,EAAW,QAAQ,KAAA,CAAM,GAAA,CAAI,aAAa,SAAA,CAAU,IAAA,CAAK,GAAG,CAAC,CAAA;AACjE,EAAA,IAAI,gBAAA,EAAkB,KAAA,CAAM,GAAA,CAAI,kBAAA,EAAoB,MAAM,CAAA;AAC1D,EAAA,IAAI,mBAAA,EAAqB;AACvB,IAAA,KAAA,CAAM,GAAA,CAAI,uBAAuB,mBAAmB,CAAA;AAAA,EACtD,CAAA,MAAO;AAEL,IAAA,IAAI,iBAAA,EAAmB,KAAA,CAAM,GAAA,CAAI,mBAAA,EAAqB,MAAM,CAAA;AAC5D,IAAA,IAAI,mBAAmB,MAAA,EAAW,KAAA,CAAM,IAAI,gBAAA,EAAkB,MAAA,CAAO,cAAc,CAAC,CAAA;AACpF,IAAA,IAAI,uBAAuB,MAAA,EAAW;AACpC,MAAA,KAAA,CAAM,GAAA,CAAI,oBAAA,EAAsB,MAAA,CAAO,kBAAkB,CAAC,CAAA;AAAA,IAC5D;AACA,IAAA,IAAI,0BAA0B,MAAA,EAAW;AACvC,MAAA,KAAA,CAAM,GAAA,CAAI,uBAAA,EAAyB,MAAA,CAAO,qBAAqB,CAAC,CAAA;AAAA,IAClE;AAAA,EACF;AACA,EAAA,IAAI,MAAA,KAAW,UAAa,UAAA,EAAY;AACtC,IAAA,KAAA,CAAM,GAAA,CAAI,QAAA,EAAU,MAAA,CAAO,MAAM,CAAC,CAAA;AAClC,IAAA,KAAA,CAAM,GAAA,CAAI,cAAc,UAAU,CAAA;AAAA,EACpC;AAEA,EAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,EAAG,QAAQ,CAAA,YAAA,EAAe,KAAA,CAAM,QAAA,EAAU,CAAA,CAAA,EAAI;AAAA,IACzE,MAAA,EAAQ,KAAA;AAAA,IACR,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,yBAAA;AAAA,MACR,GAAI,SAAS,EAAE,aAAA,EAAe,UAAU,MAAM,CAAA,CAAA,KAAO,EAAC;AAAA,MACtD,GAAI,WAAW;AAAC;AAClB,GACD,CAAA;AAED,EAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,IAAA,MAAM,OAAO,MAAM,QAAA,CAAS,MAAK,CAAE,KAAA,CAAM,MAAM,EAAE,CAAA;AACjD,IAAA,MAAM,IAAI,MAAM,CAAA,qBAAA,EAAwB,QAAA,CAAS,MAAM,CAAA,GAAA,EAAM,IAAA,IAAQ,QAAA,CAAS,UAAU,CAAA,CAAE,CAAA;AAAA,EAC5F;AAKA,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI;AACF,IAAA,GAAA,GAAMM,eAAO,IAAI,UAAA,CAAW,MAAM,QAAA,CAAS,WAAA,EAAa,CAAC,CAAA;AAAA,EAC3D,CAAA,CAAA,MAAQ;AACN,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,mDAAA,EAAsD,SAAS,CAAA,IAAA,EAAO,UAAU,CAAA;AAAA,KAClF;AAAA,EACF;AAEA,EAAA,MAAM,KAAA,GAAQ,kBAAA,CAAmB,GAAA,EAAK,QAAA,IAAY,SAAS,CAAA;AAC3D,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,4BAAA,EAA+B,SAAS,CAAA,IAAA,EAAO,UAAU,CAAA,CAAE,CAAA;AAAA,EAC7E;AACA,EAAA,OAAO,EAAE,OAAO,GAAA,EAAI;AACtB;AAQA,SAAS,aAAA,CAAc,OAAkB,QAAA,EAA2C;AAClF,EAAA,OAAO,aAAa,SAAA,GAAY,KAAA,CAAM,SAAA,GAAY,CAAA,GAAI,MAAM,QAAA,GAAW,CAAA;AACzE;AAOO,SAAS,kBAAA,CACd,KACA,QAAA,EACkB;AAClB,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,UAAU,EAAE,CAAA,CAAE,MAAA,CAAO,CAAC,CAAA,KAAM,aAAA,CAAc,CAAA,EAAG,QAAQ,CAAC,CAAA;AACvF,EAAA,IAAI,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAGhC,EAAA,MAAM,QAAA,GAAW,IAAI,QAAA,EAAU,cAAA;AAC/B,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,QAAQ,CAAA;AAClC,IAAA,IAAI,MAAA,IAAU,aAAA,CAAc,MAAA,EAAQ,QAAQ,GAAG,OAAO,MAAA;AAAA,EACxD;AAEA,EAAA,OAAO,MAAA,CAAO,MAAA;AAAA,IAAO,CAAC,IAAA,EAAM,KAAA,KAC1B,QAAA,KAAa,YACT,KAAA,CAAM,SAAA,GAAY,IAAA,CAAK,SAAA,GACrB,QACA,IAAA,GACF,KAAA,CAAM,QAAA,GAAW,IAAA,CAAK,WACpB,KAAA,GACA;AAAA,GACR;AACF;AAGO,SAAS,gCAAgC,EAAA,EAAkD;AAChG,EAAA,OAAO,IAAIjC,8BAAAA,CAAuB;AAAA,IAChC,SAAA,EAAW,IAAIjB,iBAAAA,CAAU,EAAA,CAAG,CAAC,CAAA;AAAA,IAC7B,IAAA,EAAM,EAAA,CAAG,CAAA,CACN,GAAA,CAAI,CAAC,OAAA,MAAa;AAAA,MACjB,MAAA,EAAQ,IAAIA,iBAAAA,CAAU,OAAA,CAAQ,CAAC,CAAA;AAAA,MAC/B,UAAU,OAAA,CAAQ,CAAA;AAAA,MAClB,YAAY,OAAA,CAAQ;AAAA,KACtB,CAAE,EACD,MAAA,CAAO,CAAC,QAAQ,CAAC,eAAA,CAAgB,GAAA,CAAI,MAAM,CAAC,CAAA;AAAA,IAC/C,IAAA,EAAM,MAAA,CAAO,IAAA,CAAK,EAAA,CAAG,CAAC;AAAA,GACvB,CAAA;AACH;;;ACpOO,IAAK,qBAAA,qBAAAmD,sBAAAA,KAAL;AACL,EAAAA,sBAAAA,CAAAA,sBAAAA,CAAA,YAAS,CAAA,CAAA,GAAT,QAAA;AACA,EAAAA,sBAAAA,CAAAA,sBAAAA,CAAA,YAAS,CAAA,CAAA,GAAT,QAAA;AAFU,EAAA,OAAAA,sBAAAA;AAAA,CAAA,EAAA,qBAAA,IAAA,EAAA;AClCL,IAAM,2BAA2B,IAAInD,iBAAAA;AAAA,EAC1C;AACF;AAGO,IAAM,2BAA2B,IAAIA,iBAAAA;AAAA,EAC1C;AACF;AAGO,IAAM,gCAAgC,IAAIA,iBAAAA;AAAA,EAC/C;AACF;AAGO,IAAM,6BAA6B,IAAIA,iBAAAA;AAAA,EAC5C;AACF;AAOO,IAAM,iCAAiC,IAAIA,iBAAAA;AAAA,EAChD;AACF;AACO,IAAM,kCAAkC,IAAIA,iBAAAA;AAAA,EACjD;AACF;AACO,IAAM,gCAAgC,IAAIA,iBAAAA;AAAA,EAC/C;AACF;AACO,IAAM,wCAAwC,IAAIA,iBAAAA;AAAA,EACvD;AACF;AACO,IAAM,gCAAgC,IAAIA,iBAAAA;AAAA,EAC/C;AACF;AAGO,IAAM,6BAAA,GAAgC;;;ACzD7C,IAAA,qBAAA,GAAA;AAAA,EACI,OAAA,EAAW,6CAAA;AAAA,EACX,QAAA,EAAY;AAAA,IACR,IAAA,EAAQ,eAAA;AAAA,IACR,OAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAQ,OAAA;AAAA,IACR,WAAA,EAAe;AAAA,GACnB;AAAA,EACA,YAAA,EAAgB;AAAA,IACZ;AAAA,MACI,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd;AACJ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,OAAA,EAAW;AAAA,cACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,QAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,QAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd;AACJ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,OAAA,EAAW;AAAA,cACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,8DAAA;AAAA,YACA,gEAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,8DAAA;AAAA,YACA,gEAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,eAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,OAAA,EAAW;AAAA,cACP,IAAA,EAAQ;AAAA;AACZ;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,OAAA,EAAW;AAAA,cACP,IAAA,EAAQ;AAAA;AACZ;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,MAAQ,EAAC;AAAA,MACT,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,OAAA,EAAW;AAAA,cACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,8BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,yBAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd;AACJ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,2BAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,4BAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,yBAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,OAAA,EAAW;AAAA,cACP,IAAA,EAAQ;AAAA;AACZ;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd;AACJ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,2BAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,4BAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,yBAAA;AAAA,YACA;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,OAAA,EAAW;AAAA,cACP,IAAA,EAAQ;AAAA;AACZ;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ,MAAA,EAAU;AAAA;AACd;AACJ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA;AACJ,SACJ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,OAAA,EAAW;AAAA,QACP,OAAA,EAAW;AAAA,UACP,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb;AAAA,OACJ;AAAA,MACA,QAAA,EAAY;AAAA,QACR;AAAA,UACI,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACd;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACJ;AAAA,WACJ;AAAA,UACA,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SAChB;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ;AAAA;AACZ,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ;AAAA,UACI,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACZ;AAAA,QACA;AAAA,UACI,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,GACJ;AAAA,EACA,QAAA,EAAY;AAAA,IACR;AAAA,MACI,IAAA,EAAQ,OAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,OAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ;AACJ,GACJ;AAAA,EACA,MAAA,EAAU;AAAA,IACN;AAAA,MACI,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,kCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACb,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACJ;AACJ,GACJ;AAAA,EACA,MAAA,EAAU;AAAA,IACN;AAAA,MACI,IAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,YAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,YAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACX;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uCAAA;AAAA,MACR,GAAA,EAAO;AAAA;AACX,GACJ;AAAA,EACA,KAAA,EAAS;AAAA,IACL;AAAA,MACI,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,MAAA,EAAU;AAAA;AACd,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACR;AAAA,YACI,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,KAAA,EAAS;AAAA,gBACL,IAAA;AAAA,gBACA;AAAA;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,GAAA,EAAO;AAAA,kBACH,OAAA,EAAW;AAAA,oBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,8EAAA;AAAA,QACA;AAAA,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,4CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,4CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,gEAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,yDAAA;AAAA,cACA,yEAAA;AAAA,cACA,gFAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACR;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,6BAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA,gBACI,IAAA,EAAQ,cAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,kBACJ,OAAA,EAAW;AAAA,oBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,eACJ;AAAA,cACA;AAAA,gBACI,IAAA,EAAQ,mBAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,kBACJ,OAAA,EAAW;AAAA,oBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iCAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA,gBACI,IAAA,EAAQ,4CAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACZ;AAAA,cACA;AAAA,gBACI,IAAA,EAAQ,4CAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACZ;AAAA,cACA;AAAA,gBACI,IAAA,EAAQ,yBAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,0BAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,uBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACN;AAAA;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,gEAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,6BAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,6BAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,KAAA,EAAS;AAAA,gBACL,IAAA;AAAA,gBACA;AAAA;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,KAAA,EAAS;AAAA,gBACL,IAAA;AAAA,gBACA;AAAA;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ;AAAA,OACZ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,KAAA,EAAS;AAAA,cACL,KAAA;AAAA,cACA;AAAA;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,kDAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ;AAAA,OACJ;AAAA,MACA,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA;AACX;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACR;AAAA,YACI,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,+CAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,mCAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,KAAA,EAAS;AAAA,gBACL,IAAA;AAAA,gBACA;AAAA;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,4BAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,+CAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,GAAA,EAAO;AAAA,gBACH,OAAA,EAAW;AAAA,kBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,6BAAA;AAAA,cACA;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ;AAAA,aACJ;AAAA,YACA,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,kCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,qCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,sCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ,KACJ;AAAA,IACA;AAAA,MACI,IAAA,EAAQ,+BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACJ,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACN;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACJ,OAAA,EAAW;AAAA,gBACP,IAAA,EAAQ;AAAA;AACZ;AACJ,WACJ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACZ;AAAA,UACA;AAAA,YACI,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACZ;AACJ;AACJ;AACJ;AAER,CAAA;;;ACvqLA,IAAA,qBAAA,GAAA;AAAA,EACE,OAAA,EAAW,8CAAA;AAAA,EACX,QAAA,EAAY;AAAA,IACV,IAAA,EAAQ,eAAA;AAAA,IACR,OAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAQ,OAAA;AAAA,IACR,WAAA,EAAe;AAAA,GACjB;AAAA,EACA,YAAA,EAAgB;AAAA,IACd;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,KAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ,EAAC;AAAA,MACT,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,8DAAA;AAAA,YACA,gEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,qCAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ,EAAC;AAAA,MACT,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,uBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,mFAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,yBAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ,EAAC;AAAA,MACT,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,yCAAA;AAAA,YACA,gDAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,2BAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,4BAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,yBAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,OAAA,EAAW;AAAA,QACT,OAAA,EAAW;AAAA,UACT,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,0DAAA;AAAA,QACA,kBAAA;AAAA,QACA,8BAAA;AAAA,QACA,2CAAA;AAAA,QACA,yDAAA;AAAA,QACA,gBAAA;AAAA,QACA,EAAA;AAAA,QACA,aAAA;AAAA,QACA,uDAAA;AAAA,QACA,6DAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,8BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,4BAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,GACF;AAAA,EACA,QAAA,EAAY;AAAA,IACV;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF;AACF,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF;AACF,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,KAAA,EAAS;AAAA,IACP;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,MAAA,EAAU;AAAA;AACZ,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,gBAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,mBAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,UAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,UAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,gBAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,aAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,cAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,kBACN,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,6BAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,+BAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,mBAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,GAAA,EAAO;AAAA,kBACL,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4CAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,MAAA;AAAA,QACR,QAAA,EAAY;AAAA,UACV;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,6BAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,cAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,kBACN,OAAA,EAAW;AAAA,oBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA,gBACE,IAAA,EAAQ,4CAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,4CAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,yBAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,MAAA,EAAU;AAAA,cACR;AAAA;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6BAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,6BAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,8BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,QAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,KAAA,EAAS;AAAA,cACP,KAAA;AAAA,cACA;AAAA;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,kDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA;AACT;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,+BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA;AACT,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,OAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mCAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,4BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4BAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+CAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,GAAA,EAAO;AAAA,gBACL,OAAA,EAAW;AAAA,kBACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,kDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,OAAA,EAAW;AAAA,gBACT,IAAA,EAAQ;AAAA;AACV;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AAEJ,CAAA;;;AC9gOO,IAAM,iBAAA,GAAoB;AAQ1B,IAAM,iBAAA,GAAoB;ACC1B,IAAM,qBAAA,GAAwB,IAAI8B,oBAAAA,CAAU,IAAI;AAEvD,IAAM,uBAAA,GAA0B,IAAIS,yBAAAA,CAAmB,iBAAmC,CAAA;AAC1F,IAAM,4BAAA,GAA+B,IAAIA,yBAAAA,CAAmB,iBAAmC,CAAA;AAGxF,SAAS,0BAA0B,GAAA,EAAyB;AAGjE,EAAA,IAAI,KAAA,GAAiB,GAAA;AACrB,EAAA,IAAI,CAAC,MAAM,OAAA,CAAQ,KAAK,KAAK,KAAA,IAAS,OAAO,UAAU,QAAA,EAAU;AAC/D,IAAA,KAAA,GAAS,MAAkC,CAAC,CAAA,IAAK,OAAO,MAAA,CAAO,KAAK,EAAE,CAAC,CAAA;AAAA,EACzE;AACA,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACzB,IAAA,MAAM,IAAI,MAAM,oDAAoD,CAAA;AAAA,EACtE;AAEA,EAAA,IAAI,KAAA,GAAQ,IAAIT,oBAAAA,CAAU,CAAC,CAAA;AAC3B,EAAA,MAAM,SAAS,IAAIA,oBAAAA,CAAU,CAAC,CAAA,CAAE,IAAI,EAAE,CAAA;AACtC,EAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAA,KAAM;AACtB,IAAA,MAAM,IAAA,GAAO,IAAIA,oBAAAA,CAAUR,oBAAAA,CAAG,IAAA,CAAK,CAAC,CAAA,GAAI,CAAA,CAAE,QAAA,EAAS,GAAI,MAAA,CAAO,CAAC,CAAC,CAAA;AAChE,IAAA,KAAA,GAAQ,KAAA,CAAM,KAAK,IAAA,CAAK,KAAA,CAAM,OAAO,GAAA,CAAI,CAAC,CAAC,CAAC,CAAA;AAAA,EAC9C,CAAC,CAAA;AACD,EAAA,OAAO,KAAA,CAAM,IAAI,qBAAqB,CAAA;AACxC;AAEA,SAAS,GAAG,CAAA,EAAuB;AACjC,EAAA,OAAO,CAAA,YAAatB,iBAAAA,GAAY,CAAA,GAAI,IAAIA,kBAAU,CAAW,CAAA;AAC/D;AAGO,SAAS,oBAAoB,IAAA,EAA6B;AAC/D,EAAA,MAAM,CAAA,GAAI,uBAAA,CAAwB,MAAA,CAAO,OAAA,EAAS,IAAI,CAAA;AACtD,EAAA,MAAM,GAAA,GAAM,CAAC,KAAA,EAAe,KAAA,KAAkB,EAAE,KAAK,CAAA,IAAK,EAAE,KAAK,CAAA;AACjE,EAAA,MAAMa,IAAAA,GAAM,CAAC,CAAA,KAAuB,MAAA,CAAOS,qBAAG,IAAA,CAAK,CAAC,CAAA,GAAI,CAAA,CAAE,QAAA,EAAS,GAAI,MAAA,CAAO,CAAA,IAAK,CAAC,CAAC,CAAA;AAErF,EAAA,MAAM,GAAA,GAAO,GAAA,CAAI,cAAA,EAAgB,aAAa,KAAK,EAAC;AAEpD,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,EAAA,CAAG,GAAA,CAAI,WAAA,EAAa,WAAW,CAAC,CAAA;AAAA,IAC3C,SAAA,EAAW,EAAA,CAAG,GAAA,CAAI,YAAA,EAAc,WAAW,CAAC,CAAA;AAAA,IAC5C,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC,CAAA;AAAA,IACnC,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC,CAAA;AAAA,IACnC,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC,CAAA;AAAA,IACnC,QAAA,EAAU,EAAA,CAAG,GAAA,CAAI,WAAA,EAAa,UAAU,CAAC,CAAA;AAAA,IACzC,aAAA,EAAe,EAAA,CAAG,GAAA,CAAI,gBAAA,EAAkB,eAAe,CAAC,CAAA;AAAA,IACxD,kBAAA,EAAoB,EAAA,CAAG,GAAA,CAAI,sBAAA,EAAwB,oBAAoB,CAAC,CAAA;AAAA,IACxE,WAAA,EAAa;AAAA,MACX,UAAA,EAAY,iBAAA,CAAkB,GAAA,CAAI,YAAA,IAAgB,IAAI,UAAU,CAAA;AAAA,MAChE,SAAA,EAAW,iBAAA,CAAkB,GAAA,CAAI,UAAA,IAAc,IAAI,SAAS,CAAA;AAAA,MAC5D,UAAA,EAAY,iBAAA,CAAkB,GAAA,CAAI,WAAA,IAAe,IAAI,UAAU;AAAA,KACjE;AAAA,IACA,OAAA,EAAST,IAAAA,CAAI,GAAA,CAAI,WAAA,EAAa,SAAS,CAAC,CAAA;AAAA,IACxC,QAAA,EAAUA,IAAAA,CAAI,GAAA,CAAI,WAAA,EAAa,UAAU,CAAC,CAAA;AAAA,IAC1C,sBAAA,EAAwB,yBAAA;AAAA,MACtB,GAAA,CAAI,8BAA8B,wBAAwB;AAAA,KAC5D;AAAA,IACA,yBAAA,EAA2B,yBAAA;AAAA,MACzB,GAAA,CAAI,kCAAkC,2BAA2B;AAAA,KACnE;AAAA,IACA,mBAAA,EAAqB,yBAAA;AAAA,MACnB,GAAA,CAAI,0BAA0B,qBAAqB;AAAA,KACrD;AAAA,IACA,QAAQ,MAAA,CAAO,GAAA,CAAI,QAAA,EAAU,QAAQ,KAAK,CAAC,CAAA;AAAA,IAC3C,SAAS,MAAA,CAAO,GAAA,CAAI,UAAA,EAAY,SAAS,KAAK,CAAC,CAAA;AAAA,IAC/C,UAAU,MAAA,CAAO,GAAA,CAAI,UAAA,EAAY,UAAU,KAAK,CAAC;AAAA,GACnD;AACF;AAGO,SAAS,0BAA0B,IAAA,EAAyB;AACjE,EAAA,MAAM,CAAA,GAAI,uBAAA,CAAwB,MAAA,CAAO,WAAA,EAAa,IAAI,CAAA;AAC1D,EAAA,OAAO,EAAA,CAAG,EAAE,KAAK,CAAA;AACnB;AAGA,SAAS,kBAAkB,GAAA,EAA6C;AACtE,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,SAAU,EAAC;AACjC,EAAA,OAAO,GAAA,CAAI,GAAA,CAAI,CAAC,CAAA,KAAM;AACpB,IAAA,MAAM,CAAA,GAAK,KAAK,EAAC;AACjB,IAAA,OAAO;AAAA,MACL,UAAU,MAAA,CAAO,CAAA,CAAE,SAAA,IAAa,CAAA,CAAE,YAAY,CAAC,CAAA;AAAA,MAC/C,UAAU,OAAA,CAAQ,CAAA,CAAE,SAAA,IAAa,CAAA,CAAE,YAAY,KAAK,CAAA;AAAA,MACpD,YAAY,OAAA,CAAQ,CAAA,CAAE,WAAA,IAAe,CAAA,CAAE,cAAc,KAAK;AAAA,KAC5D;AAAA,EACF,CAAC,CAAA;AACH;AAGO,SAAS,wBAAwB,IAAA,EAAiC;AACvE,EAAA,MAAM,CAAA,GAAI,uBAAA,CAAwB,MAAA,CAAO,WAAA,EAAa,IAAI,CAAA;AAC1D,EAAA,MAAM,GAAA,GAAM,CAAC,KAAA,EAAe,KAAA,KAAkB,EAAE,KAAK,CAAA,IAAK,EAAE,KAAK,CAAA;AACjE,EAAA,MAAM,GAAA,GAAO,GAAA,CAAI,cAAA,EAAgB,aAAa,KAAK,EAAC;AAEpD,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,EAAA,CAAG,GAAA,CAAI,cAAA,EAAgB,aAAa,CAAC,CAAA;AAAA,IAClD,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC,CAAA;AAAA,IACnC,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC,CAAA;AAAA,IACnC,KAAA,EAAO,EAAA,CAAG,GAAA,CAAI,OAAA,EAAS,OAAO,CAAC,CAAA;AAAA,IAC/B,aAAA,EAAe,EAAA,CAAG,GAAA,CAAI,iBAAA,EAAmB,eAAe,CAAC,CAAA;AAAA,IACzD,aAAA,EAAe,EAAA,CAAG,GAAA,CAAI,iBAAA,EAAmB,eAAe,CAAC,CAAA;AAAA,IACzD,kBAAA,EAAoB,EAAA,CAAG,GAAA,CAAI,uBAAA,EAAyB,oBAAoB,CAAC,CAAA;AAAA,IACzE,kBAAA,EAAoB,EAAA,CAAG,GAAA,CAAI,sBAAA,EAAwB,oBAAoB,CAAC,CAAA;AAAA,IACxE,SAAA,EAAW,EAAA,CAAG,GAAA,CAAI,YAAA,EAAc,WAAW,CAAC,CAAA;AAAA,IAC5C,aAAa,MAAA,CAAO,GAAA,CAAI,cAAA,EAAgB,aAAa,KAAK,CAAC,CAAA;AAAA,IAC3D,WAAA,EAAa;AAAA,MACX,UAAA,EAAY,iBAAA,CAAkB,GAAA,CAAI,YAAA,IAAgB,IAAI,UAAU,CAAA;AAAA,MAChE,SAAA,EAAW,iBAAA,CAAkB,GAAA,CAAI,UAAA,IAAc,IAAI,SAAS,CAAA;AAAA,MAC5D,UAAA,EAAY,iBAAA,CAAkB,GAAA,CAAI,WAAA,IAAe,IAAI,UAAU;AAAA;AACjE,GACF;AACF;AAGA,eAAsB,sBAAA,CACpB,YACA,MAAA,EAC4B;AAC5B,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,cAAA,CAAe,MAAM,CAAA;AACnD,EAAA,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,CAAA,mCAAA,EAAsC,MAAA,CAAO,QAAA,EAAU,CAAA,CAAE,CAAA;AACpF,EAAA,OAAO,uBAAA,CAAwB,KAAK,IAAI,CAAA;AAC1C;AAGO,SAAS,0BAA0B,IAAA,EAAmC;AAC3E,EAAA,MAAM,CAAA,GAAI,4BAAA,CAA6B,MAAA,CAAO,aAAA,EAAe,IAAI,CAAA;AACjE,EAAA,MAAM,GAAA,GAAM,CAAC,KAAA,EAAe,KAAA,KAAkB,EAAE,KAAK,CAAA,IAAK,EAAE,KAAK,CAAA;AACjE,EAAA,MAAM,GAAA,GAAO,GAAA,CAAI,iBAAA,EAAmB,eAAe,KAAK,EAAC;AAEzD,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,EAAA,CAAG,GAAA,CAAI,cAAA,EAAgB,aAAa,CAAC,CAAA;AAAA,IAClD,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC,CAAA;AAAA,IACnC,MAAA,EAAQ,EAAA,CAAG,GAAA,CAAI,SAAA,EAAW,QAAQ,CAAC,CAAA;AAAA,IACnC,KAAA,EAAO,EAAA,CAAG,GAAA,CAAI,OAAA,EAAS,OAAO,CAAC,CAAA;AAAA,IAC/B,KAAA,EAAO,EAAA,CAAG,GAAA,CAAI,OAAA,EAAS,OAAO,CAAC,CAAA;AAAA,IAC/B,aAAA,EAAe,EAAA,CAAG,GAAA,CAAI,iBAAA,EAAmB,eAAe,CAAC,CAAA;AAAA,IACzD,aAAA,EAAe,EAAA,CAAG,GAAA,CAAI,iBAAA,EAAmB,eAAe,CAAC,CAAA;AAAA,IACzD,kBAAA,EAAoB,EAAA,CAAG,GAAA,CAAI,uBAAA,EAAyB,oBAAoB,CAAC,CAAA;AAAA,IACzE,kBAAA,EAAoB,EAAA,CAAG,GAAA,CAAI,uBAAA,EAAyB,oBAAoB,CAAC,CAAA;AAAA,IACzE,kBAAA,EAAoB,EAAA,CAAG,GAAA,CAAI,sBAAA,EAAwB,oBAAoB,CAAC,CAAA;AAAA,IACxE,SAAA,EAAW,EAAA,CAAG,GAAA,CAAI,YAAA,EAAc,WAAW,CAAC,CAAA;AAAA,IAC5C,aAAa,MAAA,CAAO,GAAA,CAAI,cAAA,EAAgB,aAAa,KAAK,CAAC,CAAA;AAAA,IAC3D,WAAA,EAAa;AAAA,MACX,UAAA,EAAY,iBAAA,CAAkB,GAAA,CAAI,YAAA,IAAgB,IAAI,UAAU,CAAA;AAAA,MAChE,gBAAA,EAAkB,iBAAA,CAAkB,GAAA,CAAI,kBAAA,IAAsB,IAAI,gBAAgB,CAAA;AAAA,MAClF,SAAA,EAAW,iBAAA,CAAkB,GAAA,CAAI,UAAA,IAAc,IAAI,SAAS,CAAA;AAAA,MAC5D,UAAA,EAAY,iBAAA,CAAkB,GAAA,CAAI,WAAA,IAAe,IAAI,UAAU;AAAA;AACjE,GACF;AACF;AAGA,eAAsB,wBAAA,CACpB,YACA,MAAA,EAC8B;AAC9B,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,cAAA,CAAe,MAAM,CAAA;AACnD,EAAA,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,CAAA,wCAAA,EAA2C,MAAA,CAAO,QAAA,EAAU,CAAA,CAAE,CAAA;AACzF,EAAA,OAAO,yBAAA,CAA0B,KAAK,IAAI,CAAA;AAC5C;AAGA,eAAsB,kBAAA,CACpB,YACA,KAAA,EACwB;AACxB,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,cAAA,CAAe,KAAK,CAAA;AAClD,EAAA,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,CAAA,kCAAA,EAAqC,KAAA,CAAM,QAAA,EAAU,CAAA,CAAE,CAAA;AAClF,EAAA,OAAO,mBAAA,CAAoB,KAAK,IAAI,CAAA;AACtC;AAGA,eAAsB,4BAAA,CACpB,YACA,MAAA,EACuD;AACvD,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,cAAA,CAAe,MAAM,CAAA;AACnD,EAAA,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,CAAA,mCAAA,EAAsC,MAAA,CAAO,QAAA,EAAU,CAAA,CAAE,CAAA;AACpF,EAAA,MAAM,KAAA,GAAQ,yBAAA,CAA0B,IAAA,CAAK,IAAI,CAAA;AACjD,EAAA,OAAO,EAAE,KAAA,EAAO,OAAA,EAAS,MAAM,kBAAA,CAAmB,UAAA,EAAY,KAAK,CAAA,EAAE;AACvE;AAGA,eAAsB,eAAA,CAAgB,YAAwB,IAAA,EAAkC;AAC9F,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,cAAA,CAAe,IAAI,CAAA;AACjD,EAAA,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,CAAA,wBAAA,EAA2B,IAAA,CAAK,QAAA,EAAU,CAAA,CAAE,CAAA;AACvE,EAAA,OAAO,IAAA,CAAK,KAAK,EAAE,CAAA;AACrB;ACnMO,SAAS,4BAAA,GAA0C;AACxD,EAAA,OAAOb,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,6BAA6B,CAAC,CAAA;AAAA,IAC3C;AAAA,IACA,CAAC,CAAA;AACL;AAGO,SAAS,gCAAA,GAA8C;AAC5D,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,6BAA6B,CAAC,CAAA;AAAA,IAC3C;AAAA,IACA,CAAC,CAAA;AACL;ACIA,IAAM,mBAAA,GAAsBgB,aAAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AASpC,SAAS,mBAAA,CACd,UACA,YAAA,EACwB;AACxB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,iBAAiB,4BAAA,EAA6B;AAGpD,EAAA,MAAM,IAAA,GAAOA,aAAAA,CAAO,KAAA,CAAM,mBAAA,CAAoB,SAAS,CAAC,CAAA;AACxD,EAAA,mBAAA,CAAoB,IAAA,CAAK,MAAM,CAAC,CAAA;AAChC,EAAA,IAAA,CAAK,gBAAA,CAAiB,YAAA,EAAc,mBAAA,CAAoB,MAAM,CAAA;AAG9D,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IAC3D,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAChE,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,aAAa,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAClE,EAAE,MAAA,EAAQ,QAAA,CAAS,UAAU,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC/D,EAAE,MAAA,EAAQ,QAAA,CAAS,UAAU,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC/D,EAAE,MAAA,EAAQ,QAAA,CAAS,UAAU,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC/D,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,YAAA,EAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC3D,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACjE,EAAE,MAAA,EAAQ,QAAA,CAAS,oBAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC1E,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC7D,EAAE,MAAA,EAAQ,wBAAA,EAA0B,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA;AAAA,IAGvE,GAAI,QAAA,CAAS,iBAAA,IAAqB;AAAC,GACrC;AAEA,EAAA,OAAO,IAAIC,8BAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,wBAAA;AAAA,IACX;AAAA,GACD,CAAA;AACH;AAQA,IAAM,sBAAA,GAAyBD,aAAAA,CAAO,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA;AAaxC,SAAS,iBAAA,CAAkB;AAAA,EAChC,WAAA;AAAA,EACA;AACF,CAAA,EAGkD;AAChD,EAAA,OAAO,EAAE,WAAA,EAAa,WAAA,EAAa,YAAA,EAAc,CAAC,aAAA,EAAc;AAClE;AAaO,SAAS,qBAAA,CACd,UACA,IAAA,EACwB;AACxB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,iBAAiB,4BAAA,EAA6B;AAGpD,EAAA,MAAM,IAAA,GAAOA,aAAAA,CAAO,KAAA,CAAM,sBAAA,CAAuB,SAAS,EAAE,CAAA;AAC5D,EAAA,sBAAA,CAAuB,IAAA,CAAK,MAAM,CAAC,CAAA;AACnC,EAAA,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,WAAA,EAAa,sBAAA,CAAuB,MAAM,CAAA;AACpE,EAAA,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,YAAA,EAAc,sBAAA,CAAuB,SAAS,CAAC,CAAA;AAGzE,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,oBAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC1E,EAAE,MAAA,EAAQ,YAAA,EAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC3D,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACjE,EAAE,MAAA,EAAQ,QAAA,CAAS,oBAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACzE,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC7D,EAAE,MAAA,EAAQ,wBAAA,EAA0B,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAEvE,GAAG,QAAA,CAAS;AAAA,GACd;AAEA,EAAA,OAAO,IAAIC,8BAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,wBAAA;AAAA,IACX;AAAA,GACD,CAAA;AACH;AAOA,IAAM,mBAAA,GAAsBD,aAAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AAcpC,SAAS,mBAAA,CACd,UACA,YAAA,EACwB;AACxB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,iBAAiB,4BAAA,EAA6B;AAGpD,EAAA,MAAM,IAAA,GAAOA,aAAAA,CAAO,KAAA,CAAM,mBAAA,CAAoB,SAAS,CAAC,CAAA;AACxD,EAAA,mBAAA,CAAoB,IAAA,CAAK,MAAM,CAAC,CAAA;AAChC,EAAA,IAAA,CAAK,gBAAA,CAAiB,YAAA,EAAc,mBAAA,CAAoB,MAAM,CAAA;AAG9D,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IAC/D,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAChE,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,UAAU,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC/D,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,YAAA,EAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC3D,EAAE,MAAA,EAAQ,QAAA,CAAS,oBAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC1E,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACjE,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC7D,EAAE,MAAA,EAAQ,wBAAA,EAA0B,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAEvE,GAAI,QAAA,CAAS,iBAAA,IAAqB;AAAC,GACrC;AAEA,EAAA,OAAO,IAAIC,8BAAAA,CAAuB,EAAE,MAAM,SAAA,EAAW,wBAAA,EAA0B,MAAM,CAAA;AACvF;AASA,IAAM,2BAAA,GAA8BD,aAAAA,CAAO,IAAA,CAAK,CAAC,EAAE,CAAC,CAAA;AAc7C,SAAS,0BAAA,CACd,UACA,IAAA,EACwB;AACxB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,iBAAiB,4BAAA,EAA6B;AAGpD,EAAA,MAAM,IAAA,GAAOA,aAAAA,CAAO,KAAA,CAAM,2BAAA,CAA4B,SAAS,CAAC,CAAA;AAChE,EAAA,2BAAA,CAA4B,IAAA,CAAK,MAAM,CAAC,CAAA;AACxC,EAAA,IAAA,CAAK,gBAAA,CAAiB,IAAA,CAAK,cAAA,EAAgB,2BAAA,CAA4B,MAAM,CAAA;AAC7E,EAAA,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,qBAAA,EAAuB,2BAAA,CAA4B,SAAS,CAAC,CAAA;AAGlF,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IAC3D,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,UAAU,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC/D,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAChE,EAAE,MAAA,EAAQ,QAAA,CAAS,oBAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC1E,EAAE,MAAA,EAAQ,YAAA,EAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC3D,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACjE,EAAE,MAAA,EAAQI,qBAAAA,CAAc,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACtE,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC7D,EAAE,MAAA,EAAQ,wBAAA,EAA0B,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAEvE,GAAG,QAAA,CAAS;AAAA,GACd;AAEA,EAAA,OAAO,IAAIH,8BAAAA,CAAuB,EAAE,MAAM,SAAA,EAAW,wBAAA,EAA0B,MAAM,CAAA;AACvF;AAGA,IAAM,iCAAA,GAAoCD,aAAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AAUlD,SAAS,gCAAgC,QAAA,EASrB;AACzB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAChE,EAAE,MAAA,EAAQ,QAAA,CAAS,mBAAmB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACzE,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,cAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,mBAAmB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACxE,EAAE,MAAA,EAAQ,QAAA,CAAS,UAAU,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC/D,EAAE,MAAA,EAAQ,YAAA,EAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA;AAAM,GAC7D;AACA,EAAA,OAAO,IAAIC,8BAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,WAAW,QAAA,CAAS,gBAAA;AAAA,IACpB,IAAA,EAAMD,aAAAA,CAAO,IAAA,CAAK,iCAAiC;AAAA,GACpD,CAAA;AACH;AAUA,IAAM,2BAAA,GAA8BA,aAAAA,CAAO,IAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AAGnD,SAAS,gBAAgB,KAAA,EAA8B;AACrD,EAAA,IAAI,UAAU,IAAA,EAAM,OAAOA,cAAO,IAAA,CAAK,CAAC,CAAC,CAAC,CAAA;AAC1C,EAAA,MAAM,GAAA,GAAMA,aAAAA,CAAO,KAAA,CAAM,CAAC,CAAA;AAC1B,EAAA,GAAA,CAAI,UAAA,CAAW,GAAG,CAAC,CAAA;AACnB,EAAA,GAAA,CAAI,gBAAA,CAAiB,OAAO,CAAC,CAAA;AAC7B,EAAA,OAAO,GAAA;AACT;AAWO,SAAS,qBAAA,CAAsB;AAAA,EACpC,gBAAA;AAAA,EACA;AACF,CAAA,EAQE;AACA,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,gBAAA;AAAA,IACV,aAAA,EAAA,CAAA;AAAA,IACA,mBAAA,EAAqB,cAAA;AAAA,IACrB,cAAA,EAAgB;AAAA,GAClB;AACF;AAeO,SAAS,yBAAA,CACd,UACA,IAAA,EAMwB;AACxB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,iBAAiB,gCAAA,EAAiC;AAIxD,EAAA,MAAM,IAAA,GAAOA,aAAAA,CAAO,KAAA,CAAM,2BAAA,CAA4B,SAAS,CAAC,CAAA;AAChE,EAAA,2BAAA,CAA4B,IAAA,CAAK,MAAM,CAAC,CAAA;AACxC,EAAA,IAAA,CAAK,gBAAA,CAAiB,IAAA,CAAK,QAAA,EAAU,2BAAA,CAA4B,MAAM,CAAA;AACvE,EAAA,IAAA,CAAK,UAAA,CAAW,IAAA,CAAK,aAAA,EAAe,2BAAA,CAA4B,SAAS,CAAC,CAAA;AAE1E,EAAA,MAAM,IAAA,GAAOA,aAAAA,CAAO,MAAA,CAAO,CAAC,MAAM,eAAA,CAAgB,IAAA,CAAK,mBAAmB,CAAA,EAAGA,cAAO,IAAA,CAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAG9F,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC7D,EAAE,MAAA,EAAQ,QAAA,CAAS,OAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC5D,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,eAAe,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACpE,EAAE,MAAA,EAAQ,QAAA,CAAS,oBAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC1E,EAAE,MAAA,EAAQ,YAAA,EAAc,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC3D,EAAE,MAAA,EAAQ,QAAA,CAAS,WAAW,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACjE,EAAE,MAAA,EAAQ,QAAA,CAAS,oBAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACzE,EAAE,MAAA,EAAQ,QAAA,CAAS,oBAAoB,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACzE,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC7D,EAAE,MAAA,EAAQ,wBAAA,EAA0B,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA;AAAA,IAEvE,GAAG,QAAA,CAAS;AAAA,GACd;AAEA,EAAA,OAAO,IAAIC,8BAAAA,CAAuB,EAAE,MAAM,SAAA,EAAW,wBAAA,EAA0B,MAAM,CAAA;AACvF;;;ACnXA,SAAS,eAAA,CACP,QAAA,EACA,YAAA,EACA,MAAA,EACe;AACf,EAAA,OAAO,QAAA,CAAS,GAAA,CAAI,CAAC,GAAA,KAAQ;AAC3B,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,GAAA,CAAI,QAAQ,CAAA;AACxC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,+BAAA,EAAkC,IAAI,QAAQ,CAAA,mBAAA,EACpC,OAAO,QAAA,EAAU,CAAA,KAAA,EAAQ,YAAA,CAAa,MAAM,CAAA,SAAA;AAAA,OACxD;AAAA,IACF;AAKA,IAAA,OAAO,EAAE,MAAA,EAAQ,QAAA,EAAU,KAAA,EAAO,UAAA,EAAY,IAAI,UAAA,EAAW;AAAA,EAC/D,CAAC,CAAA;AACH;AAGA,SAAS,wBAAwB,KAAA,EAAqC;AACpE,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAyB;AAC1C,EAAA,KAAA,MAAW,KAAK,KAAA,EAAO;AACrB,IAAA,MAAM,GAAA,GAAM,CAAA,CAAE,MAAA,CAAO,QAAA,EAAS;AAC9B,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,GAAG,CAAA;AACzB,IAAA,IAAI,IAAA,EAAM,IAAA,CAAK,UAAA,GAAa,IAAA,CAAK,cAAc,CAAA,CAAE,UAAA;AAAA,cACvC,GAAA,CAAI,GAAA,EAAK,EAAE,GAAG,GAAG,CAAA;AAAA,EAC7B;AACA,EAAA,OAAO,CAAC,GAAG,IAAA,CAAK,MAAA,EAAQ,CAAA;AAC1B;AAGA,IAAM,kBAAA,GAAqB;AAAA,EACzB,aAAA,EAAe,EAAA;AAAA,EACf,YAAA,EAAc,GAAA;AAAA,EACd,QAAA,EAAU,GAAA;AAAA,EACV,iBAAA,EAAmB;AACrB,CAAA;AAQA,eAAsB,4BACpB,MAAA,EAC+B;AAC/B,EAAA,MAAM,EAAE,UAAA,EAAY,KAAA,EAAM,GAAI,MAAA;AAC9B,EAAA,MAAM,gBAAA,GAAmB,OAAO,gBAAA,IAAoB,gBAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,OAAO,cAAA,IAAkB,gBAAA;AAEhD,EAAA,IAAI,YAAA;AACJ,EAAA,IAAI,KAAA;AACJ,EAAA,IAAI,OAAO,KAAA,EAAO;AAChB,IAAA,YAAA,GAAe,MAAA,CAAO,KAAA;AACtB,IAAA,KAAA,GAAQ,MAAM,kBAAA,CAAmB,UAAA,EAAY,YAAY,CAAA;AAAA,EAC3D,CAAA,MAAA,IAAW,OAAO,MAAA,EAAQ;AACxB,IAAA,MAAM,GAAA,GAAM,MAAM,4BAAA,CAA6B,UAAA,EAAY,OAAO,MAAM,CAAA;AACxE,IAAA,YAAA,GAAe,GAAA,CAAI,KAAA;AACnB,IAAA,KAAA,GAAQ,GAAA,CAAI,OAAA;AAAA,EACd,CAAA,MAAO;AACL,IAAA,MAAM,IAAI,MAAM,qEAAqE,CAAA;AAAA,EACvF;AAEA,EAAA,MAAM,WAAW,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,gBAAgB,CAAA;AAC1F,EAAA,MAAM,WAAW,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,gBAAgB,CAAA;AAC1F,EAAA,MAAM,cAAc,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,cAAc,CAAA;AAI3F,EAAA,MAAM,SAAA,GAAY,MAAM,UAAA,CAAW,qBAAA,CAAsB,MAAM,kBAAkB,CAAA;AACjF,EAAA,MAAM,MAAM,SAAA,CAAU,KAAA;AACtB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,+CAAA,EAAkD,KAAA,CAAM,kBAAA,CAAmB,QAAA,EAAU,CAAA;AAAA,KACvF;AAAA,EACF;AAEA,EAAA,MAAM,iBAAA,GAAmC;AAAA,IACvC,GAAG,gBAAgB,KAAA,CAAM,WAAA,CAAY,YAAY,GAAA,CAAI,KAAA,CAAM,SAAA,EAAW,KAAA,CAAM,kBAAkB,CAAA;AAAA,IAC9F,GAAG,gBAAgB,KAAA,CAAM,WAAA,CAAY,YAAY,GAAA,CAAI,KAAA,CAAM,SAAA,EAAW,KAAA,CAAM,kBAAkB;AAAA,GAChG;AAEA,EAAA,MAAM,aAAA,GAAuC;AAAA,IAC3C,KAAA;AAAA,IACA,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,KAAA,EAAO,YAAA;AAAA,IACP,WAAA;AAAA,IACA,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,oBAAoB,KAAA,CAAM,kBAAA;AAAA,IAC1B,eAAe,KAAA,CAAM,aAAA;AAAA,IACrB,YAAA,EAAc,gBAAA;AAAA,IACd;AAAA,GACF;AAEA,EAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,UAAA,EAAY,MAAM,MAAM,CAAA;AAE/D,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,kBAAA,EAAoB,GAAA;AAAA,IACpB,YAAY,EAAE,IAAA,EAAM,MAAM,MAAA,EAAQ,QAAA,EAAU,cAAc,cAAA,EAAe;AAAA,IACzE,4BAA4B,cAAA,EAAgC;AAG1D,MAAA,IAAI,KAAA,CAAM,QAAA,KAAa,EAAA,EAAI,OAAO,EAAA;AAClC,MAAA,MAAM,EAAA,GAAK,IAAIa,oBAAAA,CAAU,cAAA,CAAe,UAAU,CAAA,CAC/C,MAAM,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,CAC9B,IAAI,KAAA,CAAM,QAAA,CAAS,UAAU,CAAA,CAC7B,YAAA,CAAaA,oBAAAA,CAAU,WAAW,CAAA;AACrC,MAAA,OAAO,MAAA,CAAO,EAAA,CAAG,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,IAC7B;AAAA,GACF;AACF;AAWA,eAAsB,8BACpB,MAAA,EACiC;AACjC,EAAA,MAAM,EAAE,UAAA,EAAY,KAAA,EAAM,GAAI,MAAA;AAC9B,EAAA,MAAM,cAAA,GAAiB,OAAO,cAAA,IAAkB,gBAAA;AAChD,EAAA,MAAM,cAAA,GAAiB,OAAO,cAAA,IAAkB,gBAAA;AAEhD,EAAA,MAAM,MAAA,GAAS,MAAM,sBAAA,CAAuB,UAAA,EAAY,OAAO,MAAM,CAAA;AAIrE,EAAA,MAAM,SAAA,GAAY,MAAM,UAAA,CAAW,qBAAA,CAAsB,OAAO,kBAAkB,CAAA;AAClF,EAAA,MAAM,MAAM,SAAA,CAAU,KAAA;AACtB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,gDAAA,EAAmD,MAAA,CAAO,kBAAA,CAAmB,QAAA,EAAU,CAAA;AAAA,KACzF;AAAA,EACF;AACA,EAAA,MAAM,YAAA,GAAe,IAAI,KAAA,CAAM,SAAA;AAC/B,EAAA,MAAM,SAAS,MAAA,CAAO,kBAAA;AAGtB,EAAA,MAAM,iBAAA,GAAmC;AAAA,IACvC,GAAG,eAAA,CAAgB,MAAA,CAAO,WAAA,CAAY,UAAA,EAAY,cAAc,MAAM,CAAA;AAAA,IACtE,GAAG,eAAA,CAAgB,MAAA,CAAO,WAAA,CAAY,SAAA,EAAW,cAAc,MAAM,CAAA;AAAA,IACrE,GAAG,eAAA,CAAgB,MAAA,CAAO,WAAA,CAAY,UAAA,EAAY,cAAc,MAAM;AAAA,GACxE;AAEA,EAAA,MAAM,gBAAgB,6BAAA,CAA8B,MAAA,CAAO,MAAA,EAAQ,KAAA,EAAO,MAAM,cAAc,CAAA;AAC9F,EAAA,MAAM,gBAAgB,6BAAA,CAA8B,MAAA,CAAO,MAAA,EAAQ,KAAA,EAAO,MAAM,cAAc,CAAA;AAE9F,EAAA,MAAM,eAAA,GAA2C;AAAA,IAC/C,MAAA,EAAQ,KAAA;AAAA,IACR,QAAQ,MAAA,CAAO,WAAA;AAAA,IACf,aAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAe,MAAA,CAAO,aAAA;AAAA,IACtB,eAAe,MAAA,CAAO,aAAA;AAAA,IACtB,oBAAoB,MAAA,CAAO,kBAAA;AAAA,IAC3B,WAAW,MAAA,CAAO,SAAA;AAAA,IAClB,oBAAoB,MAAA,CAAO,kBAAA;AAAA,IAC3B,YAAA,EAAc,cAAA;AAAA,IACd;AAAA,GACF;AAEA,EAAA,MAAM,CAAC,UAAA,EAAY,UAAU,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,IACjD,eAAA,CAAgB,UAAA,EAAY,MAAA,CAAO,MAAM,CAAA;AAAA,IACzC,eAAA,CAAgB,UAAA,EAAY,MAAA,CAAO,MAAM;AAAA,GAC1C,CAAA;AAED,EAAA,OAAO;AAAA,IACL,eAAe,MAAA,CAAO,WAAA;AAAA,IACtB,MAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA,EAAoB,GAAA;AAAA,IACpB,EAAA,EAAI,EAAE,IAAA,EAAM,MAAA,CAAO,QAAQ,QAAA,EAAU,UAAA,EAAY,cAAc,cAAA,EAAe;AAAA,IAC9E,EAAA,EAAI,EAAE,IAAA,EAAM,MAAA,CAAO,QAAQ,QAAA,EAAU,UAAA,EAAY,cAAc,cAAA;AAAe,GAChF;AACF;AAcA,eAAsB,kCACpB,MAAA,EACqC;AACrC,EAAA,MAAM,EAAE,UAAA,EAAY,KAAA,EAAM,GAAI,MAAA;AAC9B,EAAA,MAAM,cAAA,GAAiB,OAAO,cAAA,IAAkB,gBAAA;AAChD,EAAA,MAAM,cAAA,GAAiB,OAAO,cAAA,IAAkB,gBAAA;AAEhD,EAAA,MAAM,MAAA,GAAS,MAAM,wBAAA,CAAyB,UAAA,EAAY,OAAO,MAAM,CAAA;AAEvE,EAAA,MAAM,SAAA,GAAY,MAAM,UAAA,CAAW,qBAAA,CAAsB,OAAO,kBAAkB,CAAA;AAClF,EAAA,MAAM,MAAM,SAAA,CAAU,KAAA;AACtB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,qDAAA,EAAwD,MAAA,CAAO,kBAAA,CAAmB,QAAA,EAAU,CAAA;AAAA,KAC9F;AAAA,EACF;AACA,EAAA,MAAM,YAAA,GAAe,IAAI,KAAA,CAAM,SAAA;AAC/B,EAAA,MAAM,SAAS,MAAA,CAAO,kBAAA;AAItB,EAAA,MAAM,oBAAoB,uBAAA,CAAwB;AAAA,IAChD,GAAG,eAAA,CAAgB,MAAA,CAAO,WAAA,CAAY,UAAA,EAAY,cAAc,MAAM,CAAA;AAAA,IACtE,GAAG,eAAA,CAAgB,MAAA,CAAO,WAAA,CAAY,gBAAA,EAAkB,cAAc,MAAM,CAAA;AAAA,IAC5E,GAAG,eAAA,CAAgB,MAAA,CAAO,WAAA,CAAY,SAAA,EAAW,cAAc,MAAM,CAAA;AAAA,IACrE,GAAG,eAAA,CAAgB,MAAA,CAAO,WAAA,CAAY,UAAA,EAAY,cAAc,MAAM;AAAA,GACvE,CAAA;AAED,EAAA,MAAM,gBAAgB,6BAAA,CAA8B,MAAA,CAAO,MAAA,EAAQ,KAAA,EAAO,MAAM,cAAc,CAAA;AAC9F,EAAA,MAAM,gBAAgB,6BAAA,CAA8B,MAAA,CAAO,MAAA,EAAQ,KAAA,EAAO,MAAM,cAAc,CAAA;AAE9F,EAAA,MAAM,eAAA,GAA+C;AAAA,IACnD,MAAA,EAAQ,KAAA;AAAA,IACR,QAAQ,MAAA,CAAO,WAAA;AAAA,IACf,OAAO,MAAA,CAAO,KAAA;AAAA,IACd,aAAA;AAAA,IACA,aAAA;AAAA,IACA,eAAe,MAAA,CAAO,aAAA;AAAA,IACtB,eAAe,MAAA,CAAO,aAAA;AAAA,IACtB,oBAAoB,MAAA,CAAO,kBAAA;AAAA,IAC3B,WAAW,MAAA,CAAO,SAAA;AAAA,IAClB,oBAAoB,MAAA,CAAO,kBAAA;AAAA,IAC3B,oBAAoB,MAAA,CAAO,kBAAA;AAAA,IAC3B,YAAA,EAAc,cAAA;AAAA,IACd;AAAA,GACF;AAEA,EAAA,MAAM,CAAC,UAAA,EAAY,UAAU,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,IACjD,eAAA,CAAgB,UAAA,EAAY,MAAA,CAAO,MAAM,CAAA;AAAA,IACzC,eAAA,CAAgB,UAAA,EAAY,MAAA,CAAO,MAAM;AAAA,GAC1C,CAAA;AAED,EAAA,OAAO;AAAA,IACL,eAAe,MAAA,CAAO,WAAA;AAAA,IACtB,MAAA;AAAA,IACA,eAAA;AAAA,IACA,kBAAA,EAAoB,GAAA;AAAA,IACpB,EAAA,EAAI,EAAE,IAAA,EAAM,MAAA,CAAO,QAAQ,QAAA,EAAU,UAAA,EAAY,cAAc,cAAA,EAAe;AAAA,IAC9E,EAAA,EAAI,EAAE,IAAA,EAAM,MAAA,CAAO,QAAQ,QAAA,EAAU,UAAA,EAAY,cAAc,cAAA;AAAe,GAChF;AACF;AAQA,eAAsB,4BACpB,MAAA,EAC+B;AAC/B,EAAA,MAAM,EAAE,UAAA,EAAY,KAAA,EAAM,GAAI,MAAA;AAC9B,EAAA,MAAM,gBAAA,GAAmB,OAAO,gBAAA,IAAoB,gBAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,OAAO,cAAA,IAAkB,gBAAA;AAEhD,EAAA,IAAI,YAAA;AACJ,EAAA,IAAI,KAAA;AACJ,EAAA,IAAI,OAAO,KAAA,EAAO;AAChB,IAAA,YAAA,GAAe,MAAA,CAAO,KAAA;AACtB,IAAA,KAAA,GAAQ,MAAM,kBAAA,CAAmB,UAAA,EAAY,YAAY,CAAA;AAAA,EAC3D,CAAA,MAAA,IAAW,OAAO,MAAA,EAAQ;AACxB,IAAA,MAAM,GAAA,GAAM,MAAM,4BAAA,CAA6B,UAAA,EAAY,OAAO,MAAM,CAAA;AACxE,IAAA,YAAA,GAAe,GAAA,CAAI,KAAA;AACnB,IAAA,KAAA,GAAQ,GAAA,CAAI,OAAA;AAAA,EACd,CAAA,MAAO;AACL,IAAA,MAAM,IAAI,MAAM,qEAAqE,CAAA;AAAA,EACvF;AAEA,EAAA,MAAM,SAAA,GAAY,MAAM,UAAA,CAAW,qBAAA,CAAsB,MAAM,kBAAkB,CAAA;AACjF,EAAA,MAAM,MAAM,SAAA,CAAU,KAAA;AACtB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,+CAAA,EAAkD,KAAA,CAAM,kBAAA,CAAmB,QAAA,EAAU,CAAA;AAAA,KACvF;AAAA,EACF;AAEA,EAAA,MAAM,iBAAA,GAAmC,eAAA;AAAA,IACvC,MAAM,WAAA,CAAY,SAAA;AAAA,IAClB,IAAI,KAAA,CAAM,SAAA;AAAA,IACV,KAAA,CAAM;AAAA,GACR;AAEA,EAAA,MAAM,QAAQ,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,cAAc,CAAA;AACrF,EAAA,MAAM,QAAQ,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,gBAAgB,CAAA;AACvF,EAAA,MAAM,QAAQ,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,gBAAgB,CAAA;AAEvF,EAAA,MAAM,aAAA,GAAuC;AAAA,IAC3C,SAAA,EAAW,KAAA;AAAA,IACX,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,KAAA,EAAO,YAAA;AAAA,IACP,KAAA;AAAA,IACA,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,oBAAoB,KAAA,CAAM,kBAAA;AAAA,IAC1B,eAAe,KAAA,CAAM,aAAA;AAAA,IACrB,YAAA,EAAc,gBAAA;AAAA,IACd;AAAA,GACF;AAEA,EAAA,MAAM,CAAC,UAAA,EAAY,UAAU,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,IACjD,eAAA,CAAgB,UAAA,EAAY,KAAA,CAAM,MAAM,CAAA;AAAA,IACxC,eAAA,CAAgB,UAAA,EAAY,KAAA,CAAM,MAAM;AAAA,GACzC,CAAA;AACD,EAAA,MAAM,cAAA,GAAiB,KAAA,CAAM,sBAAA,CAAuB,QAAA,EAAS;AAE7D,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,KAAA;AAAA,IACA,aAAA;AAAA,IACA,kBAAA,EAAoB,GAAA;AAAA,IACpB,EAAA,EAAI,EAAE,IAAA,EAAM,KAAA,CAAM,QAAQ,QAAA,EAAU,UAAA,EAAY,cAAc,cAAA,EAAe;AAAA,IAC7E,EAAA,EAAI,EAAE,IAAA,EAAM,KAAA,CAAM,QAAQ,QAAA,EAAU,UAAA,EAAY,cAAc,gBAAA,EAAiB;AAAA,IAC/E,IAAI,EAAE,IAAA,EAAM,KAAA,CAAM,MAAA,EAAQ,cAAc,gBAAA,EAAiB;AAAA,IACzD,cAAA;AAAA,IACA,wBAAwB,UAAA,EAA4B;AAElD,MAAA,MAAM,EAAA,GAAK,KAAA,CAAM,sBAAA,CACd,KAAA,CAAM,UAAA,CAAW,UAAU,CAAA,CAC3B,YAAA,CAAaA,oBAAAA,CAAU,WAAW,CAAA;AACrC,MAAA,OAAO,MAAA,CAAO,EAAA,CAAG,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,IAC7B;AAAA,GACF;AACF;AAQA,eAAe,4BAAA,CACb,YACA,SAAA,EACA;AACA,EAAA,MAAM,IAAA,GAAO,MAAM,UAAA,CAAW,cAAA,CAAe,SAAS,CAAA;AACtD,EAAA,IAAI,CAAC,MAAM,MAAM,IAAI,MAAM,CAAA,kCAAA,EAAqC,SAAA,CAAU,QAAA,EAAU,CAAA,CAAE,CAAA;AACtF,EAAA,MAAM,mBAAmB,IAAA,CAAK,KAAA;AAC9B,EAAA,MAAM,EAAA,GAAK,CAAC,GAAA,KAAgB,IAAI9B,iBAAAA,CAAU,IAAA,CAAK,IAAA,CAAK,QAAA,CAAS,GAAA,EAAK,GAAA,GAAM,EAAE,CAAC,CAAA;AAC3E,EAAA,MAAM,CAAC,iBAAiB,CAAA,GAAIA,iBAAAA,CAAU,sBAAA;AAAA,IACpC,CAAC,SAAA,CAAU,QAAA,IAAY,MAAA,CAAO,IAAA,CAAK,UAAU,CAAC,CAAA;AAAA,IAC9C;AAAA,GACF;AACA,EAAA,OAAO,+BAAA,CAAgC;AAAA,IACrC,gBAAA;AAAA,IACA,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,aAAA,EAAe,EAAA,CAAG,kBAAA,CAAmB,aAAa,CAAA;AAAA,IAClD,YAAA,EAAc,EAAA,CAAG,kBAAA,CAAmB,YAAY,CAAA;AAAA,IAChD,iBAAA,EAAmB,EAAA,CAAG,kBAAA,CAAmB,iBAAiB,CAAA;AAAA,IAC1D,QAAA,EAAU,EAAA,CAAG,kBAAA,CAAmB,QAAQ;AAAA,GACzC,CAAA;AACH;AAaA,eAAsB,mCACpB,MAAA,EACsC;AACtC,EAAA,MAAM,EAAE,UAAA,EAAY,KAAA,EAAO,QAAA,EAAS,GAAI,MAAA;AACxC,EAAA,MAAM,gBAAA,GAAmB,OAAO,gBAAA,IAAoB,gBAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,OAAO,cAAA,IAAkB,gBAAA;AAChD,EAAA,MAAM,gBAAA,GAAmB,OAAO,gBAAA,IAAoB,gBAAA;AAEpD,EAAA,IAAI,YAAA;AACJ,EAAA,IAAI,KAAA;AACJ,EAAA,IAAI,OAAO,KAAA,EAAO;AAChB,IAAA,YAAA,GAAe,MAAA,CAAO,KAAA;AACtB,IAAA,KAAA,GAAQ,MAAM,kBAAA,CAAmB,UAAA,EAAY,YAAY,CAAA;AAAA,EAC3D,CAAA,MAAA,IAAW,OAAO,MAAA,EAAQ;AACxB,IAAA,MAAM,GAAA,GAAM,MAAM,4BAAA,CAA6B,UAAA,EAAY,OAAO,MAAM,CAAA;AACxE,IAAA,YAAA,GAAe,GAAA,CAAI,KAAA;AACnB,IAAA,KAAA,GAAQ,GAAA,CAAI,OAAA;AAAA,EACd,CAAA,MAAO;AACL,IAAA,MAAM,IAAI,MAAM,4EAA4E,CAAA;AAAA,EAC9F;AAEA,EAAA,MAAM,SAAA,GAAY,MAAM,UAAA,CAAW,qBAAA,CAAsB,MAAM,kBAAkB,CAAA;AACjF,EAAA,MAAM,MAAM,SAAA,CAAU,KAAA;AACtB,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,+CAAA,EAAkD,KAAA,CAAM,kBAAA,CAAmB,QAAA,EAAU,CAAA;AAAA,KACvF;AAAA,EACF;AACA,EAAA,MAAM,SAAS,KAAA,CAAM,kBAAA;AACrB,EAAA,MAAM,UAAA,GAAa,gBAAgB,KAAA,CAAM,WAAA,CAAY,YAAY,GAAA,CAAI,KAAA,CAAM,WAAW,MAAM,CAAA;AAC5F,EAAA,MAAM,UAAA,GAAa,gBAAgB,KAAA,CAAM,WAAA,CAAY,YAAY,GAAA,CAAI,KAAA,CAAM,WAAW,MAAM,CAAA;AAC5F,EAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KAEF;AAAA,EACF;AAEA,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,CAAC,CAAA,CAAE,MAAA;AAC9B,EAAA,MAAM,SAAA,GAAY,UAAA,CAAW,CAAC,CAAA,CAAE,MAAA;AAEhC,EAAA,MAAM,QAAQ,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,cAAc,CAAA;AACrF,EAAA,MAAM,QAAQ,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,gBAAgB,CAAA;AACvF,EAAA,MAAM,QAAQ,6BAAA,CAA8B,KAAA,CAAM,MAAA,EAAQ,KAAA,EAAO,MAAM,gBAAgB,CAAA;AACvF,EAAA,MAAM,OAAA,GAAU,6BAAA,CAA8B,QAAA,EAAU,KAAA,EAAO,MAAM,gBAAgB,CAAA;AACrF,EAAA,MAAM,UAAA,GAAa,6BAAA,CAA8B,QAAA,EAAU,OAAA,EAAS,MAAM,gBAAgB,CAAA;AAI1F,EAAA,MAAM,MAAA,GAAwB;AAAA,IAC5B,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,IAClD,EAAE,MAAA,EAAQ,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACrD,EAAE,MAAA,EAAQ,OAAA,EAAS,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACrD,EAAE,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACxD,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IACnD,EAAE,MAAA,EAAQ,KAAA,CAAM,QAAQ,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA,EAAK;AAAA,IAC1D,EAAE,MAAA,EAAQ,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IACvD,EAAE,MAAA,EAAQ,cAAA,EAAgB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC7D,EAAE,MAAA,EAAQ,gBAAA,EAAkB,QAAA,EAAU,KAAA,EAAO,YAAY,KAAA,EAAM;AAAA,IAC/D,EAAE,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,KAAA,EAAO,YAAY,IAAA;AAAK,GACzD;AACA,EAAA,MAAM,MAAM,uBAAA,CAAwB,CAAC,GAAG,UAAA,EAAY,GAAG,UAAU,CAAC,CAAA;AAElE,EAAA,MAAM,oBAAA,GAAqD;AAAA,IACzD,KAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,YAAA;AAAA,IACP,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,oBAAoB,KAAA,CAAM,kBAAA;AAAA,IAC1B,eAAe,KAAA,CAAM,aAAA;AAAA,IACrB,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,YAAA,EAAc,gBAAA;AAAA,IACd,iBAAA,EAAmB,CAAC,GAAG,MAAA,EAAQ,GAAG,GAAG,CAAA;AAAA,IACrC,uBAAuB,MAAA,CAAO;AAAA,GAChC;AAEA,EAAA,MAAM,CAAC,YAAA,EAAc,kBAAkB,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,IAC3D,eAAA,CAAgB,YAAY,QAAQ,CAAA;AAAA,IACpC,4BAAA,CAA6B,YAAY,SAAS;AAAA,GACnD,CAAA;AAED,EAAA,OAAO;AAAA,IACL,YAAA;AAAA,IACA,KAAA;AAAA,IACA,oBAAA;AAAA,IACA,eAAA,EAAiB,CAAC,kBAAkB,CAAA;AAAA,IACpC,kBAAA,EAAoB,GAAA;AAAA,IACpB,WAAW,EAAE,IAAA,EAAM,UAAU,QAAA,EAAU,YAAA,EAAc,cAAc,gBAAA,EAAiB;AAAA,IACpF,UAAA,EAAY;AAAA,MACV,EAAE,IAAA,EAAM,QAAA,EAAU,YAAA,EAAc,gBAAA,EAAiB;AAAA,MACjD,EAAE,IAAA,EAAM,KAAA,CAAM,MAAA,EAAQ,cAAc,cAAA,EAAe;AAAA,MACnD,EAAE,IAAA,EAAM,KAAA,CAAM,MAAA,EAAQ,cAAc,gBAAA,EAAiB;AAAA,MACrD,EAAE,IAAA,EAAM,KAAA,CAAM,MAAA,EAAQ,cAAc,gBAAA;AAAiB,KACvD;AAAA,IACA,0BAA0B,cAAA,EAAgC;AAKxD,MAAA,IAAI,KAAA,CAAM,QAAA,KAAa,EAAA,EAAI,OAAO,EAAA;AAClC,MAAA,MAAM,IAAA,GAAO,IAAI8B,oBAAAA,CAAU,cAAA,CAAe,UAAU,CAAA,CACjD,MAAM,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,CAC9B,IAAI,KAAA,CAAM,QAAA,CAAS,UAAU,CAAA,CAC7B,YAAA,CAAaA,oBAAAA,CAAU,WAAW,CAAA;AACrC,MAAA,OAAO,MAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,IAC/B;AAAA,GACF;AACF;ACthBO,IAAM,yBAAyB,IAAI9B,iBAAAA;AAAA,EACxC;AACF;AAGO,IAAM,sBAAA,GAAyB;AAC/B,IAAM,mBAAA,GAAsB;AAC5B,IAAM,oBAAA,GAAuB;AAC7B,IAAM,oBAAA,GAAuB;AAC7B,IAAM,qBAAA,GAAwB;;;AClBrC,IAAA,iBAAA,GAAA;AAAA,EACE,OAAA,EAAW,8CAAA;AAAA,EACX,QAAA,EAAY;AAAA,IACV,IAAA,EAAQ,aAAA;AAAA,IACR,OAAA,EAAW,OAAA;AAAA,IACX,IAAA,EAAQ,OAAA;AAAA,IACR,WAAA,EAAe;AAAA,GACjB;AAAA,EACA,YAAA,EAAgB;AAAA,IACd;AAAA,MACE,IAAA,EAAQ,aAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,2EAAA;AAAA,QACA,8EAAA;AAAA,QACA,2EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,0EAAA;AAAA,YACA,0EAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,uEAAA;AAAA,YACA,6EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,2CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,qEAAA;AAAA,QACA,2EAAA;AAAA,QACA,wEAAA;AAAA,QACA,2EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,oEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,iEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX,mBAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,qEAAA;AAAA,QACA,mEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,oEAAA;AAAA,YACA,sEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,yEAAA;AAAA,YACA,qEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX,mBAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,wEAAA;AAAA,QACA,uEAAA;AAAA,QACA,wEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,oEAAA;AAAA,YACA,sEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,iEAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,yEAAA;AAAA,YACA,qEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX,mBAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,8CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX,mBAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,yBAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,uEAAA;AAAA,QACA,yEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,sEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,sEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF;AACF,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,6DAAA;AAAA,YACA,sEAAA;AAAA,YACA,sEAAA;AAAA,YACA,sEAAA;AAAA,YACA,qEAAA;AAAA,YACA,sEAAA;AAAA,YACA,2EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA,qEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA,0EAAA;AAAA,YACA,0EAAA;AAAA,YACA;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,qDAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,YAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,MAAA,EAAU;AAAA;AACZ;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,wEAAA;AAAA,QACA,wEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,iEAAA;AAAA,QACA,kEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,2EAAA;AAAA,QACA,6EAAA;AAAA,QACA,yEAAA;AAAA,QACA,kFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,8EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,8EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,iFAAA;AAAA,YACA,4EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,4EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,2EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,yEAAA;AAAA,QACA,6EAAA;AAAA,QACA,iFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,8EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,8EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,qEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,iFAAA;AAAA,YACA,4EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,2EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,0EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,qEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,mCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,wEAAA;AAAA,QACA,4EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,KAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,yEAAA;AAAA,QACA,wEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,2EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iCAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,mEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,6CAAA;AAAA,YACA,+DAAA;AAAA,YACA,+DAAA;AAAA,YACA,+CAAA;AAAA,YACA,2CAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA;AACV,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,gDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,CAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,CAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,wBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,KAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,+BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,yEAAA;AAAA,QACA,yEAAA;AAAA,QACA,oEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,yEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA,yEAAA;AAAA,YACA,2EAAA;AAAA,YACA,sEAAA;AAAA,YACA,8EAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,yEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,MAAQ;AAAC,KACX;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,iEAAA;AAAA,QACA,yDAAA;AAAA,QACA,uEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wDAAA;AAAA,YACA,sEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,iEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA,qEAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,wEAAA;AAAA,YACA,0EAAA;AAAA,YACA,0EAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,2BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,WAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,sBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,YAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,oBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,wEAAA;AAAA,QACA,yEAAA;AAAA,QACA,oEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,yEAAA;AAAA,QACA,sEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF;AACF,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,SAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mCAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,QAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,OAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,oBAAA;AAAA,UACR,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,yBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,cAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS;AAAA,cACP,IAAA;AAAA,cACA;AAAA;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,KAAA,EAAS;AAAA,cACP,IAAA;AAAA,cACA;AAAA;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,UAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,6BAAA;AAAA,QACA,wDAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU;AAAA,SACZ;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,UAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,mBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN,uDAAA;AAAA,YACA,2DAAA;AAAA,YACA;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,QAAA,EAAY;AAAA,SACd;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,iBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,uBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,kBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,OAAA;AAAA,gBACR,KAAA,EAAS;AAAA,kBACP,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,EAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA,GAAA;AAAA,kBACA;AAAA;AACF,eACF;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,IAAA,EAAQ;AAAA,YACN;AAAA,WACF;AAAA,UACA,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,eAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAA,EAAY;AAAA,QACV;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,MAAA,EAAU,IAAA;AAAA,UACV,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,qBAAA;AAAA,UACR,QAAA,EAAY,IAAA;AAAA,UACZ,GAAA,EAAO;AAAA,YACL,KAAA,EAAS;AAAA,cACP;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA,eACV;AAAA,cACA;AAAA,gBACE,IAAA,EAAQ,SAAA;AAAA,gBACR,IAAA,EAAQ;AAAA;AACV,aACF;AAAA,YACA,OAAA,EAAW;AAAA,cACT,IAAA,EAAQ,OAAA;AAAA,cACR,KAAA,EAAS;AAAA,gBACP,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,GAAA;AAAA,gBACA,CAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA,GAAA;AAAA,gBACA;AAAA;AACF;AACF;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,aAAA;AAAA,UACR,SAAA,EAAa;AAAA,YACX;AAAA;AACF,SACF;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,gBAAA;AAAA,UACR,OAAA,EAAW;AAAA,SACb;AAAA,QACA;AAAA,UACE,IAAA,EAAQ;AAAA,SACV;AAAA,QACA;AAAA,UACE,IAAA,EAAQ,0BAAA;AAAA,UACR,OAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN;AAAA,UACE,IAAA,EAAQ,QAAA;AAAA,UACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,GACF;AAAA,EACA,QAAA,EAAY;AAAA,IACV;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF;AACF,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,CAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2CAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,EAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,aAAA,EAAiB;AAAA,QACf,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,QACA,CAAA;AAAA,QACA,EAAA;AAAA,QACA;AAAA;AACF;AACF,GACF;AAAA,EACA,MAAA,EAAU;AAAA,IACR;AAAA,MACE,IAAA,EAAQ,GAAA;AAAA,MACR,IAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,UAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,cAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,aAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,aAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,0BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,4BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,2BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,+BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,8BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,uBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,gCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,yBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,mCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,wBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,qBAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,6BAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,oCAAA;AAAA,MACR,GAAA,EAAO;AAAA,KACT;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,IAAA;AAAA,MACR,IAAA,EAAQ,sCAAA;AAAA,MACR,GAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,KAAA,EAAS;AAAA,IACP;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,sEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yEAAA;AAAA,cACA,uEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,2CAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,uEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,gEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,8DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,uEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,mEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,oEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,0BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,qCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,wEAAA;AAAA,QACA,8EAAA;AAAA,QACA,+EAAA;AAAA,QACA,4BAAA;AAAA,QACA,EAAA;AAAA,QACA,8EAAA;AAAA,QACA,yEAAA;AAAA,QACA,8EAAA;AAAA,QACA,mFAAA;AAAA,QACA,iFAAA;AAAA,QACA,0EAAA;AAAA,QACA,+EAAA;AAAA,QACA,mEAAA;AAAA,QACA,uEAAA;AAAA,QACA,4CAAA;AAAA,QACA,EAAA;AAAA,QACA,kFAAA;AAAA,QACA,+EAAA;AAAA,QACA,6EAAA;AAAA,QACA,8BAAA;AAAA,QACA,EAAA;AAAA,QACA,gFAAA;AAAA,QACA,iFAAA;AAAA,QACA,gFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,sBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,8BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gCAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,qEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,6EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,QAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,KAAA,EAAS;AAAA,gBACP,IAAA;AAAA,gBACA;AAAA;AACF;AACF,WACF;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,0EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,eAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,sEAAA;AAAA,QACA,+CAAA;AAAA,QACA,EAAA;AAAA,QACA,0EAAA;AAAA,QACA,4EAAA;AAAA,QACA,6EAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,iBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,sBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,cAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,qEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,SAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,KAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,2EAAA;AAAA,cACA,oEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,wDAAA;AAAA,cACA,qEAAA;AAAA,cACA,0EAAA;AAAA,cACA,gEAAA;AAAA,cACA,iEAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,eAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oCAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,sEAAA;AAAA,cACA,qEAAA;AAAA,cACA,8DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,6BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,4BAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,wBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,SAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,gBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,uEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,uBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,iBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,+DAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,yDAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN,4EAAA;AAAA,cACA,2BAAA;AAAA,cACA,EAAA;AAAA,cACA,2EAAA;AAAA,cACA,0EAAA;AAAA,cACA,mEAAA;AAAA,cACA,2EAAA;AAAA,cACA,uDAAA;AAAA,cACA,EAAA;AAAA,cACA,0EAAA;AAAA,cACA,sEAAA;AAAA,cACA,0EAAA;AAAA,cACA,iDAAA;AAAA,cACA,EAAA;AAAA,cACA,+EAAA;AAAA,cACA,8DAAA;AAAA,cACA,yEAAA;AAAA,cACA,EAAA;AAAA,cACA,uEAAA;AAAA,cACA,6EAAA;AAAA,cACA,yEAAA;AAAA,cACA,yEAAA;AAAA,cACA,EAAA;AAAA,cACA,4EAAA;AAAA,cACA,2EAAA;AAAA,cACA,4EAAA;AAAA,cACA,6EAAA;AAAA,cACA,gEAAA;AAAA,cACA,2EAAA;AAAA,cACA,sEAAA;AAAA,cACA,oEAAA;AAAA,cACA,qEAAA;AAAA,cACA,EAAA;AAAA,cACA,oCAAA;AAAA,cACA,EAAA;AAAA,cACA,6EAAA;AAAA,cACA,yEAAA;AAAA,cACA,qEAAA;AAAA,cACA,0EAAA;AAAA,cACA,kEAAA;AAAA,cACA,wEAAA;AAAA,cACA,mDAAA;AAAA,cACA,EAAA;AAAA,cACA,yEAAA;AAAA,cACA,0EAAA;AAAA,cACA,gFAAA;AAAA,cACA,yEAAA;AAAA,cACA,CAAA,yEAAA,CAAA;AAAA,cACA,iDAAA;AAAA,cACA,EAAA;AAAA,cACA,yEAAA;AAAA,cACA,0EAAA;AAAA,cACA,uEAAA;AAAA,cACA,iEAAA;AAAA,cACA,kCAAA;AAAA,cACA,EAAA;AAAA,cACA,wEAAA;AAAA,cACA,0DAAA;AAAA,cACA,EAAA;AAAA,cACA,8EAAA;AAAA,cACA,uEAAA;AAAA,cACA,qEAAA;AAAA,cACA,uEAAA;AAAA,cACA,sEAAA;AAAA,cACA,wEAAA;AAAA,cACA,oDAAA;AAAA,cACA,EAAA;AAAA,cACA,6DAAA;AAAA,cACA,oEAAA;AAAA,cACA,mEAAA;AAAA,cACA,2EAAA;AAAA,cACA,uEAAA;AAAA,cACA,0EAAA;AAAA,cACA,2EAAA;AAAA,cACA,EAAA;AAAA,cACA,wEAAA;AAAA,cACA,0EAAA;AAAA,cACA,8DAAA;AAAA,cACA,EAAA;AAAA,cACA,4EAAA;AAAA,cACA,oEAAA;AAAA,cACA,2EAAA;AAAA,cACA,2DAAA;AAAA,cACA,uEAAA;AAAA,cACA,6EAAA;AAAA,cACA,8EAAA;AAAA,cACA,2BAAA;AAAA,cACA,EAAA;AAAA,cACA,2EAAA;AAAA,cACA,2EAAA;AAAA,cACA,2EAAA;AAAA,cACA,KAAA;AAAA,cACA,EAAA;AAAA,cACA,2EAAA;AAAA,cACA,uEAAA;AAAA,cACA,2EAAA;AAAA,cACA,EAAA;AAAA,cACA,oFAAA;AAAA,cACA,4EAAA;AAAA,cACA,4EAAA;AAAA,cACA,6EAAA;AAAA,cACA,6EAAA;AAAA,cACA,6EAAA;AAAA,cACA,EAAA;AAAA,cACA,+EAAA;AAAA,cACA,0DAAA;AAAA,cACA,6DAAA;AAAA,cACA,sEAAA;AAAA,cACA,2EAAA;AAAA,cACA,oEAAA;AAAA,cACA,oCAAA;AAAA,cACA,wEAAA;AAAA,cACA,sEAAA;AAAA,cACA,8EAAA;AAAA,cACA,sBAAA;AAAA,cACA,aAAA;AAAA,cACA,mDAAA;AAAA,cACA,EAAA;AAAA,cACA,4EAAA;AAAA,cACA,0EAAA;AAAA,cACA;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,cAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,YAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,uBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,kBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,aAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,mBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,gBAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,kBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,UAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,yBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,wBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,qBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,MAAA;AAAA,YACR,IAAA,EAAQ;AAAA,cACN;AAAA,aACF;AAAA,YACA,IAAA,EAAQ;AAAA;AACV;AACF;AACF,KACF;AAAA,IACA;AAAA,MACE,IAAA,EAAQ,yBAAA;AAAA,MACR,IAAA,EAAQ;AAAA,QACN,IAAA,EAAQ,QAAA;AAAA,QACR,MAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAQ,OAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,oBAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,2BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,0BAAA;AAAA,YACR,IAAA,EAAQ;AAAA,WACV;AAAA,UACA;AAAA,YACE,IAAA,EAAQ,WAAA;AAAA,YACR,IAAA,EAAQ;AAAA;AACV;AACF;AACF;AACF;AAEJ,CAAA;;;ACjxRO,IAAM,eAAA,GAAkB;ACkBxB,SAAS,2BAAA,CACd,OAAA,EACA,SAAA,GAAuB,sBAAA,EACF;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,sBAAsB,CAAA,EAAG,OAAA,CAAQ,UAAU,CAAA;AAAA,IACxD;AAAA,GACF;AACF;AAMO,SAAS,wBAAA,CACd,OAAA,EACA,SAAA,GAAuB,sBAAA,EACF;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,mBAAmB,CAAA,EAAG,OAAA,CAAQ,UAAU,CAAA;AAAA,IACrD;AAAA,GACF;AACF;AAMO,SAAS,yBAAA,CACd,IAAA,EACA,OAAA,EACA,SAAA,GAAuB,sBAAA,EACF;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,oBAAoB,CAAA,EAAG,KAAK,QAAA,EAAS,EAAG,OAAA,CAAQ,QAAA,EAAU,CAAA;AAAA,IACvE;AAAA,GACF;AACF;AAMO,SAAS,yBAAA,CACd,IAAA,EACA,OAAA,EACA,SAAA,GAAuB,sBAAA,EACF;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,oBAAoB,CAAA,EAAG,KAAK,QAAA,EAAS,EAAG,OAAA,CAAQ,QAAA,EAAU,CAAA;AAAA,IACvE;AAAA,GACF;AACF;AAMO,SAAS,0BAAA,CACd,IAAA,EACA,OAAA,EACA,SAAA,GAAuB,sBAAA,EACF;AACrB,EAAA,OAAOA,iBAAAA,CAAU,sBAAA;AAAA,IACf,CAAC,MAAA,CAAO,IAAA,CAAK,qBAAqB,CAAA,EAAG,KAAK,QAAA,EAAS,EAAG,OAAA,CAAQ,QAAA,EAAU,CAAA;AAAA,IACxE;AAAA,GACF;AACF;AAOO,SAAS,cAAA,CACd,IAAA,EACA,KAAA,EACA,YAAA,GAA0B,gBAAA,EACf;AACX,EAAA,OAAO,6BAAA;AAAA,IACL,IAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;ACpGA,IAAM,oBAAA,GAAuB,IAAIuC,yBAAAA,CAAmB,eAAe,CAAA;AAEnE,IAAM,oBAAA,GAAuB,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA;AAC9E,IAAM,4BAAA,GAA+B,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,CAAA,EAAG,GAAA,EAAK,GAAG,CAAC,CAAA;AAEtF,IAAM,IAAA,GAAO,CAAC,CAAA,KAAoBjB,oBAAAA,CAAG,IAAA,CAAK,CAAC,CAAA,GAAI,CAAA,GAAI,IAAIA,oBAAAA,CAAAA,CAAI,CAAA,IAAK,CAAA,EAAG,UAAU,CAAA;AAGtE,SAAS,sBAAA,CAAuB,MAAc,MAAA,EAAoC;AACvF,EAAA,IAAI,CAAC,KAAK,QAAA,CAAS,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,oBAAoB,CAAA,EAAG;AACrD,IAAA,MAAM,IAAI,MAAM,6CAA6C,CAAA;AAAA,EAC/D;AAEA,EAAA,MAAM,CAAA,GAAI,oBAAA,CAAqB,MAAA,CAAO,SAAA,EAAW,IAAI,CAAA;AAErD,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,aAAA,EAAe,CAAA,CAAE,cAAA,IAAkB,CAAA,CAAE,aAAA;AAAA,IACrC,oBAAA,EAAsB,CAAA,CAAE,sBAAA,IAA0B,CAAA,CAAE,oBAAA;AAAA,IACpD,UAAA,EAAY,CAAA,CAAE,WAAA,IAAe,CAAA,CAAE,UAAA;AAAA,IAC/B,UAAA,EAAY,CAAA,CAAE,WAAA,IAAe,CAAA,CAAE,UAAA;AAAA,IAC/B,aAAA,EAAe,CAAA,CAAE,cAAA,IAAkB,CAAA,CAAE,aAAA;AAAA,IACrC,GAAA,EAAK,IAAA,CAAK,CAAA,CAAE,GAAG,CAAA;AAAA,IACf,WAAA,EAAa,IAAA,CAAK,CAAA,CAAE,YAAA,IAAgB,EAAE,WAAW,CAAA;AAAA,IACjD,YAAA,EAAc,IAAA,CAAK,CAAA,CAAE,cAAA,IAAkB,EAAE,YAAY,CAAA;AAAA,IACrD,eAAA,EAAiB,IAAA,CAAK,CAAA,CAAE,iBAAA,IAAqB,EAAE,eAAe,CAAA;AAAA,IAC9D,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,SAAA,EAAW,CAAA,CAAE,UAAA,IAAc,CAAA,CAAE,SAAA;AAAA,IAC7B,sBAAA,EAAwB,IAAA,CAAK,CAAA,CAAE,wBAAA,IAA4B,EAAE,sBAAsB,CAAA;AAAA,IACnF,YAAA,EAAc,CAAA,CAAE,aAAA,IAAiB,CAAA,CAAE,YAAA;AAAA,IACnC,iBAAA,EAAmB,CAAA,CAAE,mBAAA,IAAuB,CAAA,CAAE,iBAAA;AAAA,IAC9C,sBAAA,EAAwB,IAAA,CAAK,CAAA,CAAE,wBAAA,IAA4B,EAAE,sBAAsB,CAAA;AAAA,IACnF,uBAAA,EAAyB,IAAA,CAAK,CAAA,CAAE,yBAAA,IAA6B,EAAE,uBAAuB,CAAA;AAAA,IACtF,6BAAA,EAA+B,IAAA;AAAA,MAC7B,CAAA,CAAE,sCAAsC,CAAA,CAAE;AAAA,KAC5C;AAAA,IACA,eAAA,EAAiB,CAAA,CAAE,gBAAA,IAAoB,CAAA,CAAE;AAAA,GAC3C;AACF;AAGO,SAAS,8BAAA,CACd,MACA,MAAA,EACyB;AACzB,EAAA,IAAI,CAAC,KAAK,QAAA,CAAS,CAAA,EAAG,CAAC,CAAA,CAAE,MAAA,CAAO,4BAA4B,CAAA,EAAG;AAC7D,IAAA,MAAM,IAAI,MAAM,qDAAqD,CAAA;AAAA,EACvE;AAEA,EAAA,MAAM,CAAA,GAAI,oBAAA,CAAqB,MAAA,CAAO,iBAAA,EAAmB,IAAI,CAAA;AAE7D,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,OAAA,EAAS,CAAA,CAAE,QAAA,IAAY,CAAA,CAAE,OAAA;AAAA,IACzB,aAAA,EAAe,IAAA,CAAK,CAAA,CAAE,cAAA,IAAkB,EAAE,aAAa,CAAA;AAAA,IACvD,eAAA,EAAiB,IAAA,CAAK,CAAA,CAAE,gBAAA,IAAoB,EAAE,eAAe,CAAA;AAAA,IAC7D,eAAA,EAAiB,IAAA,CAAK,CAAA,CAAE,gBAAA,IAAoB,EAAE,eAAe,CAAA;AAAA,IAC7D,eAAA,EAAiB,IAAA,CAAK,CAAA,CAAE,iBAAA,IAAqB,EAAE,eAAe,CAAA;AAAA,IAC9D,MAAM,CAAA,CAAE;AAAA,GACV;AACF;AC5DA,IAAM,qBAAA,GAAwB,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA;AAChF,IAAM,sBAAA,GAAyB,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,EAAA,EAAI,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,EAAE,CAAC,CAAA;AAChF,IAAM,iCAAA,GAAoC,MAAA,CAAO,IAAA,CAAK,CAAC,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,GAAA,EAAK,GAAG,CAAC,CAAA;AAG5F,IAAM,YAAY,CAAC,MAAA,KAAuB,OAAO,WAAA,CAAY,MAAA,EAAQ,MAAM,CAAC,CAAA;AAE5E,IAAM,IAAA,GAAO,CAAC,MAAA,EAAmB,QAAA,EAAmB,UAAA,MAAsC;AAAA,EACxF,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,CAAA;AA0BO,SAAS,kBAAA,CACd,UACA,MAAA,EACwB;AACxB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,sBAAA,GAAyB,SAAS,sBAAA,IAA0B,2BAAA;AAElE,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,IAAA,CAAK,QAAA,CAAS,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,IAC9B,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,KAAA,EAAO,IAAI,CAAA;AAAA,IAClC,IAAA,CAAK,QAAA,CAAS,gBAAA,EAAkB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC3C,IAAA,CAAK,QAAA,CAAS,aAAA,EAAe,KAAA,EAAO,KAAK,CAAA;AAAA,IACzC,IAAA,CAAK,QAAA,CAAS,aAAA,EAAe,KAAA,EAAO,IAAI,CAAA;AAAA,IACxC,IAAA,CAAK,QAAA,CAAS,YAAA,EAAc,KAAA,EAAO,IAAI,CAAA;AAAA,IACvC,IAAA,CAAK,QAAA,CAAS,YAAA,EAAc,KAAA,EAAO,IAAI,CAAA;AAAA,IACvC,IAAA,CAAK,QAAA,CAAS,cAAA,EAAgB,KAAA,EAAO,IAAI,CAAA;AAAA,IACzC,IAAA,CAAK,QAAA,CAAS,UAAA,EAAY,KAAA,EAAO,KAAK,CAAA;AAAA,IACtC,IAAA,CAAK,QAAA,CAAS,UAAA,EAAY,KAAA,EAAO,IAAI,CAAA;AAAA,IACrC,IAAA,CAAKF,qBAAAA,CAAc,SAAA,EAAW,KAAA,EAAO,KAAK,CAAA;AAAA,IAC1C,IAAA,CAAK,YAAA,EAAc,KAAA,EAAO,KAAK,CAAA;AAAA,IAC/B,IAAA,CAAK,sBAAA,EAAwB,KAAA,EAAO,KAAK;AAAA,GAC3C;AAEA,EAAA,OAAO,IAAIH,8BAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,sBAAA;AAAA,IACX,IAAA,EAAM,OAAO,MAAA,CAAO,CAAC,uBAAuB,SAAA,CAAU,MAAM,CAAC,CAAC;AAAA,GAC/D,CAAA;AACH;AA8BO,SAAS,mBAAA,CACd,UACA,YAAA,EACwB;AACxB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,sBAAA,GAAyB,SAAS,sBAAA,IAA0B,2BAAA;AAElE,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,IAAA,CAAK,QAAA,CAAS,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,IAC9B,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,KAAA,EAAO,IAAI,CAAA;AAAA,IAClC,IAAA,CAAK,QAAA,CAAS,gBAAA,EAAkB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC3C,IAAA,CAAK,QAAA,CAAS,aAAA,EAAe,KAAA,EAAO,IAAI,CAAA;AAAA,IACxC,IAAA,CAAK,QAAA,CAAS,YAAA,EAAc,KAAA,EAAO,IAAI,CAAA;AAAA,IACvC,IAAA,CAAK,QAAA,CAAS,UAAA,EAAY,KAAA,EAAO,KAAK,CAAA;AAAA,IACtC,IAAA,CAAK,QAAA,CAAS,UAAA,EAAY,KAAA,EAAO,IAAI,CAAA;AAAA,IACrC,IAAA,CAAK,QAAA,CAAS,mBAAA,EAAqB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC9C,IAAA,CAAK,QAAA,CAAS,cAAA,EAAgB,KAAA,EAAO,IAAI,CAAA;AAAA,IACzC,IAAA,CAAK,QAAA,CAAS,mBAAA,EAAqB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC9C,IAAA,CAAK,QAAA,CAAS,mBAAA,EAAqB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC9C,IAAA,CAAK,QAAA,CAAS,eAAA,EAAiB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC1C,IAAA,CAAKG,qBAAAA,CAAc,SAAA,EAAW,KAAA,EAAO,KAAK,CAAA;AAAA,IAC1C,IAAA,CAAK,YAAA,EAAc,KAAA,EAAO,KAAK,CAAA;AAAA,IAC/B,IAAA,CAAK,sBAAA,EAAwB,KAAA,EAAO,KAAK,CAAA;AAAA;AAAA;AAAA,IAGzC,IAAA,CAAK,QAAA,CAAS,aAAA,EAAe,KAAA,EAAO,KAAK;AAAA,GAC3C;AAEA,EAAA,OAAO,IAAIH,8BAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,sBAAA;AAAA,IACX,IAAA,EAAM,OAAO,MAAA,CAAO,CAAC,wBAAwB,SAAA,CAAU,YAAY,CAAC,CAAC;AAAA,GACtE,CAAA;AACH;AAwBO,SAAS,8BACd,QAAA,EACwB;AACxB,EAAA,MAAM,YAAA,GAAe,SAAS,YAAA,IAAgB,gBAAA;AAC9C,EAAA,MAAM,sBAAA,GAAyB,SAAS,sBAAA,IAA0B,2BAAA;AAElE,EAAA,MAAM,IAAA,GAAsB;AAAA,IAC1B,IAAA,CAAK,QAAA,CAAS,IAAA,EAAM,IAAA,EAAM,IAAI,CAAA;AAAA,IAC9B,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,KAAA,EAAO,KAAK,CAAA;AAAA,IACnC,IAAA,CAAK,QAAA,CAAS,UAAA,EAAY,KAAA,EAAO,KAAK,CAAA;AAAA,IACtC,IAAA,CAAK,QAAA,CAAS,UAAA,EAAY,KAAA,EAAO,IAAI,CAAA;AAAA,IACrC,IAAA,CAAK,QAAA,CAAS,YAAA,EAAc,KAAA,EAAO,IAAI,CAAA;AAAA,IACvC,IAAA,CAAK,QAAA,CAAS,cAAA,EAAgB,KAAA,EAAO,IAAI,CAAA;AAAA,IACzC,IAAA,CAAK,QAAA,CAAS,mBAAA,EAAqB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC9C,IAAA,CAAK,QAAA,CAAS,mBAAA,EAAqB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC9C,IAAA,CAAK,QAAA,CAAS,eAAA,EAAiB,KAAA,EAAO,IAAI,CAAA;AAAA,IAC1C,IAAA,CAAKG,qBAAAA,CAAc,SAAA,EAAW,KAAA,EAAO,KAAK,CAAA;AAAA,IAC1C,IAAA,CAAK,YAAA,EAAc,KAAA,EAAO,KAAK,CAAA;AAAA,IAC/B,IAAA,CAAK,sBAAA,EAAwB,KAAA,EAAO,KAAK;AAAA,GAC3C;AAEA,EAAA,OAAO,IAAIH,8BAAAA,CAAuB;AAAA,IAChC,IAAA;AAAA,IACA,SAAA,EAAW,sBAAA;AAAA,IACX,IAAA,EAAM;AAAA,GACP,CAAA;AACH","file":"vendor.cjs","sourcesContent":["import { Buffer } from \"buffer\";\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L758\nconst ERR_BUFFER_OUT_OF_BOUNDS = () => new Error(\"Attempt to access memory outside buffer bounds\");\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L968\nconst ERR_INVALID_ARG_TYPE = (name: string, expected: string, actual: any) =>\n  new Error(`The \"${name}\" argument must be of type ${expected}. Received ${actual}`);\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/errors.js#L1262\nconst ERR_OUT_OF_RANGE = (str: string, range: string, received: number) =>\n  new Error(`The value of \"${str} is out of range. It must be ${range}. Received ${received}`);\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/validators.js#L127-L130\nfunction validateNumber(value: any, name: string) {\n  if (typeof value !== \"number\") throw ERR_INVALID_ARG_TYPE(name, \"number\", value);\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L68-L80\nfunction boundsError(value: number, length: number) {\n  if (Math.floor(value) !== value) {\n    validateNumber(value, \"offset\");\n    throw ERR_OUT_OF_RANGE(\"offset\", \"an integer\", value);\n  }\n\n  if (length < 0) throw ERR_BUFFER_OUT_OF_BOUNDS();\n\n  throw ERR_OUT_OF_RANGE(\"offset\", `>= 0 and <= ${length}`, value);\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L129-L145\nexport function readBigInt64LE(buffer: Buffer, offset = 0): bigint {\n  validateNumber(offset, \"offset\");\n  const first = buffer[offset];\n  const last = buffer[offset + 7];\n  if (first === undefined || last === undefined) boundsError(offset, buffer.length - 8);\n  // tslint:disable-next-line:no-bitwise\n  const val =\n    buffer[offset + 4] + buffer[offset + 5] * 2 ** 8 + buffer[offset + 6] * 2 ** 16 + (last << 24); // Overflow\n  return (\n    (BigInt(val) << BigInt(32)) + // tslint:disable-line:no-bitwise\n    BigInt(\n      first + buffer[++offset] * 2 ** 8 + buffer[++offset] * 2 ** 16 + buffer[++offset] * 2 ** 24\n    )\n  );\n}\n\n// https://github.com/nodejs/node/blob/v14.17.0/lib/internal/buffer.js#L89-L107\nexport function readBigUInt64LE(buffer: Buffer, offset = 0): bigint {\n  validateNumber(offset, \"offset\");\n  const first = buffer[offset];\n  const last = buffer[offset + 7];\n  if (first === undefined || last === undefined) boundsError(offset, buffer.length - 8);\n\n  const lo =\n    first + buffer[++offset] * 2 ** 8 + buffer[++offset] * 2 ** 16 + buffer[++offset] * 2 ** 24;\n\n  const hi =\n    buffer[++offset] + buffer[++offset] * 2 ** 8 + buffer[++offset] * 2 ** 16 + last * 2 ** 24;\n\n  return BigInt(lo) + (BigInt(hi) << BigInt(32)); // tslint:disable-line:no-bitwise\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nimport { readBigInt64LE, readBigUInt64LE } from \"./readBig\";\n\n/** Number of slots that can pass before a publisher's price is no longer included in the aggregate. */\nexport const MAX_SLOT_DIFFERENCE = 25;\nconst empty32Buffer = Buffer.alloc(32);\nconst PKorNull = (data: Buffer) => (data.equals(empty32Buffer) ? null : new PublicKey(data));\n\nexport interface Price {\n  priceComponent: bigint;\n  price: number;\n  confidenceComponent: bigint;\n  confidence: number;\n  status: PriceStatus;\n  corporateAction: CorpAction;\n  publishSlot: number;\n}\n\nexport enum PriceStatus {\n  Unknown,\n  Trading,\n  Halted,\n  Auction,\n  Ignored,\n}\n\nexport enum CorpAction {\n  NoCorpAct,\n}\n\nconst parsePriceInfo = (data: Buffer, exponent: number): Price => {\n  // aggregate price\n  const priceComponent = readBigInt64LE(data, 0);\n  const price = Number(priceComponent) * 10 ** exponent;\n  // aggregate confidence\n  const confidenceComponent = readBigUInt64LE(data, 8);\n  const confidence = Number(confidenceComponent) * 10 ** exponent;\n  // aggregate status\n  const status: PriceStatus = data.readUInt32LE(16);\n  // aggregate corporate action\n  const corporateAction: CorpAction = data.readUInt32LE(20);\n  // aggregate publish slot. It is converted to number to be consistent with Solana's library interface (Slot there is number)\n  const publishSlot = Number(readBigUInt64LE(data, 24));\n  return {\n    priceComponent,\n    price,\n    confidenceComponent,\n    confidence,\n    status,\n    corporateAction,\n    publishSlot,\n  };\n};\n\nexport interface PriceData extends Base {\n  priceType: PriceType;\n  exponent: number;\n  numComponentPrices: number;\n  numQuoters: number;\n  lastSlot: bigint;\n  validSlot: bigint;\n  emaPrice: Ema;\n  emaConfidence: Ema;\n  timestamp: bigint;\n  minPublishers: number;\n  drv2: number;\n  drv3: number;\n  drv4: number;\n  productAccountKey: PublicKey;\n  nextPriceAccountKey: PublicKey | null;\n  previousSlot: bigint;\n  previousPriceComponent: bigint;\n  previousPrice: number;\n  previousConfidenceComponent: bigint;\n  previousConfidence: number;\n  previousTimestamp: bigint;\n  priceComponents: PriceComponent[];\n  aggregate: Price;\n  // The current price and confidence and status. The typical use of this interface is to consume these three fields.\n  // If undefined, Pyth does not currently have price information for this product. This condition can\n  // happen for various reasons (e.g., US equity market is closed, or insufficient publishers), and your\n  // application should handle it gracefully. Note that other raw price information fields (such as\n  // aggregate.price) may be defined even if this is undefined; you most likely should not use those fields,\n  // as their value can be arbitrary when this is undefined.\n  price: number | undefined;\n  confidence: number | undefined;\n  status: PriceStatus;\n}\n\nexport interface Base {\n  magic: number;\n  version: number;\n  type: AccountType;\n  size: number;\n}\n\nexport enum AccountType {\n  Unknown,\n  Mapping,\n  Product,\n  Price,\n  Test,\n  Permission,\n}\n\nexport enum PriceType {\n  Unknown,\n  Price,\n}\n\n/**\n * valueComponent = numerator / denominator\n * value = valueComponent * 10 ^ exponent (from PriceData)\n */\nexport interface Ema {\n  valueComponent: bigint;\n  value: number;\n  numerator: bigint;\n  denominator: bigint;\n}\n\nexport interface PriceComponent {\n  publisher: PublicKey;\n  aggregate: Price;\n  latest: Price;\n}\n\n// Provide currentSlot when available to allow status to consider the case when price goes stale. It is optional because\n// it requires an extra request to get it when it is not available which is not always efficient.\nexport const parsePriceData = (data: Buffer, currentSlot?: number): PriceData => {\n  // pyth magic number\n  const magic = data.readUInt32LE(0);\n  // program version\n  const version = data.readUInt32LE(4);\n  // account type\n  const type = data.readUInt32LE(8);\n  // price account size\n  const size = data.readUInt32LE(12);\n  // price or calculation type\n  const priceType: PriceType = data.readUInt32LE(16);\n  // price exponent\n  const exponent = data.readInt32LE(20);\n  // number of component prices\n  const numComponentPrices = data.readUInt32LE(24);\n  // number of quoters that make up aggregate\n  const numQuoters = data.readUInt32LE(28);\n  // slot of last valid (not unknown) aggregate price\n  const lastSlot = readBigUInt64LE(data, 32);\n  // valid on-chain slot of aggregate price\n  const validSlot = readBigUInt64LE(data, 40);\n  // exponential moving average price\n  const emaPrice = parseEma(data.slice(48, 72), exponent);\n  // exponential moving average confidence interval\n  const emaConfidence = parseEma(data.slice(72, 96), exponent);\n  // timestamp of the current price\n  const timestamp = readBigInt64LE(data, 96);\n  // minimum number of publishers for status to be TRADING\n  const minPublishers = data.readUInt8(104);\n  // space for future derived values\n  const drv2 = data.readInt8(105);\n  // space for future derived values\n  const drv3 = data.readInt16LE(106);\n  // space for future derived values\n  const drv4 = data.readInt32LE(108);\n  // product id / reference account\n  const productAccountKey = new PublicKey(data.slice(112, 144));\n  // next price account in list\n  const nextPriceAccountKey = PKorNull(data.slice(144, 176));\n  // valid slot of previous update\n  const previousSlot = readBigUInt64LE(data, 176);\n  // aggregate price of previous update\n  const previousPriceComponent = readBigInt64LE(data, 184);\n  const previousPrice = Number(previousPriceComponent) * 10 ** exponent;\n  // confidence interval of previous update\n  const previousConfidenceComponent = readBigUInt64LE(data, 192);\n  const previousConfidence = Number(previousConfidenceComponent) * 10 ** exponent;\n  // space for future derived values\n  const previousTimestamp = readBigInt64LE(data, 200);\n  const aggregate = parsePriceInfo(data.slice(208, 240), exponent);\n\n  let status = aggregate.status;\n\n  if (currentSlot && status === PriceStatus.Trading) {\n    if (currentSlot - aggregate.publishSlot > MAX_SLOT_DIFFERENCE) {\n      status = PriceStatus.Unknown;\n    }\n  }\n\n  let price;\n  let confidence;\n  if (status === PriceStatus.Trading) {\n    price = aggregate.price;\n    confidence = aggregate.confidence;\n  }\n\n  // price components - up to 32\n  const priceComponents: PriceComponent[] = [];\n  let offset = 240;\n  while (priceComponents.length < numComponentPrices) {\n    const publisher = new PublicKey(data.slice(offset, offset + 32));\n    offset += 32;\n    const componentAggregate = parsePriceInfo(data.slice(offset, offset + 32), exponent);\n    offset += 32;\n    const latest = parsePriceInfo(data.slice(offset, offset + 32), exponent);\n    offset += 32;\n    priceComponents.push({ publisher, aggregate: componentAggregate, latest });\n  }\n\n  return {\n    magic,\n    version,\n    type,\n    size,\n    priceType,\n    exponent,\n    numComponentPrices,\n    numQuoters,\n    lastSlot,\n    validSlot,\n    emaPrice,\n    emaConfidence,\n    timestamp,\n    minPublishers,\n    drv2,\n    drv3,\n    drv4,\n    productAccountKey,\n    nextPriceAccountKey,\n    previousSlot,\n    previousPriceComponent,\n    previousPrice,\n    previousConfidenceComponent,\n    previousConfidence,\n    previousTimestamp,\n    aggregate,\n    priceComponents,\n    price,\n    confidence,\n    status,\n  };\n};\n\nconst parseEma = (data: Buffer, exponent: number): Ema => {\n  // current value of ema\n  const valueComponent = readBigInt64LE(data, 0);\n  const value = Number(valueComponent) * 10 ** exponent;\n  // numerator state for next update\n  const numerator = readBigInt64LE(data, 8);\n  // denominator state for next update\n  const denominator = readBigInt64LE(data, 16);\n  return { valueComponent, value, numerator, denominator };\n};\n","import { deserialize } from \"borsh\";\n\ntype PriceUpdateV2 = {\n  writeAuthority: Buffer;\n  verificationLevel: number;\n  priceMessage: {\n    feedId: Buffer;\n    price: bigint;\n    conf: bigint;\n    exponent: number;\n    publishTime: bigint;\n    prevPublishTime: bigint;\n    emaPrice: bigint;\n    emaConf: bigint;\n  };\n};\n\nconst priceUpdateV2Schema = {\n  struct: {\n    writeAuthority: {\n      array: { type: \"u8\", len: 32 },\n    },\n    verificationLevel: \"u8\",\n    priceMessage: {\n      struct: {\n        feedId: { array: { type: \"u8\", len: 32 } },\n        price: \"i64\",\n        conf: \"u64\",\n        exponent: \"i32\",\n        publishTime: \"i64\",\n        prevPublishTime: \"i64\",\n        emaPrice: \"i64\",\n        emaConf: \"u64\",\n      },\n    },\n    postedSlot: \"u64\",\n  },\n};\n\nexport const parsePriceInfo = (data: Buffer): PriceUpdateV2 => {\n  const decoded: PriceUpdateV2 = deserialize(priceUpdateV2Schema, data) as any;\n  return decoded;\n};\n","import { PublicKey } from \"@solana/web3.js\";\n\n/** Information about a token account */\nexport interface Account {\n  /** Address of the account */\n  address: PublicKey;\n  /** Mint associated with the account */\n  mint: PublicKey;\n  /** Owner of the account */\n  owner: PublicKey;\n  /** Number of tokens the account holds */\n  amount: bigint;\n  /** Authority that can transfer tokens from the account */\n  delegate: PublicKey | null;\n  /** Number of tokens the delegate is authorized to transfer */\n  delegatedAmount: bigint;\n  /** True if the account is initialized */\n  isInitialized: boolean;\n  /** True if the account is frozen */\n  isFrozen: boolean;\n  /** True if the account is a native token account */\n  isNative: boolean;\n  /**\n   * If the account is a native token account, it must be rent-exempt. The rent-exempt reserve is the amount that must\n   * remain in the balance until the account is closed.\n   */\n  rentExemptReserve: bigint | null;\n  /** Optional authority to close the account */\n  closeAuthority: PublicKey | null;\n  tlvData: Buffer;\n}\n\n/** Token account state as stored by the program */\nexport enum AccountState {\n  Uninitialized = 0,\n  Initialized = 1,\n  Frozen = 2,\n}\n\n/** Token account as stored by the program */\nexport interface RawAccount {\n  mint: PublicKey;\n  owner: PublicKey;\n  amount: bigint;\n  delegateOption: 1 | 0;\n  delegate: PublicKey;\n  state: AccountState;\n  isNativeOption: 1 | 0;\n  isNative: bigint;\n  delegatedAmount: bigint;\n  closeAuthorityOption: 1 | 0;\n  closeAuthority: PublicKey;\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const MEMO_PROGRAM_ID: PublicKey = new PublicKey(\n  \"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\"\n);\n\n/** Address of the SPL Associated Token Account program */\nexport const ASSOCIATED_TOKEN_PROGRAM_ID: PublicKey = new PublicKey(\n  \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n);\n\nexport const TOKEN_PROGRAM_ID = new PublicKey(\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\");\nexport const TOKEN_2022_PROGRAM_ID = new PublicKey(\"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb\");\n","/** Base class for errors */\nexport abstract class TokenError extends Error {\n  constructor(message?: string) {\n    super(message);\n  }\n}\n\n/** Thrown if an account is not found at the expected address */\nexport class TokenAccountNotFoundError extends TokenError {\n  name = \"TokenAccountNotFoundError\";\n}\n\n/** Thrown if a program state account is not a valid Account */\nexport class TokenInvalidAccountError extends TokenError {\n  name = \"TokenInvalidAccountError\";\n}\n\n/** Thrown if a program state account is not owned by the expected token program */\nexport class TokenInvalidAccountOwnerError extends TokenError {\n  name = \"TokenInvalidAccountOwnerError\";\n}\n\n/** Thrown if the byte length of an program state account doesn't match the expected size */\nexport class TokenInvalidAccountSizeError extends TokenError {\n  name = \"TokenInvalidAccountSizeError\";\n}\n\n/** Thrown if the mint of a token account doesn't match the expected mint */\nexport class TokenInvalidMintError extends TokenError {\n  name = \"TokenInvalidMintError\";\n}\n\n/** Thrown if the owner of a token account doesn't match the expected owner */\nexport class TokenInvalidOwnerError extends TokenError {\n  name = \"TokenInvalidOwnerError\";\n}\n\n/** Thrown if the owner of a token account is a PDA (Program Derived Address) */\nexport class TokenOwnerOffCurveError extends TokenError {\n  name = \"TokenOwnerOffCurveError\";\n}\n\n/** Thrown if an instruction's program is invalid */\nexport class TokenInvalidInstructionProgramError extends TokenError {\n  name = \"TokenInvalidInstructionProgramError\";\n}\n\n/** Thrown if an instruction's keys are invalid */\nexport class TokenInvalidInstructionKeysError extends TokenError {\n  name = \"TokenInvalidInstructionKeysError\";\n}\n\n/** Thrown if an instruction's data is invalid */\nexport class TokenInvalidInstructionDataError extends TokenError {\n  name = \"TokenInvalidInstructionDataError\";\n}\n\n/** Thrown if an instruction's type is invalid */\nexport class TokenInvalidInstructionTypeError extends TokenError {\n  name = \"TokenInvalidInstructionTypeError\";\n}\n\n/** Thrown if the program does not support the desired instruction */\nexport class TokenUnsupportedInstructionError extends TokenError {\n  name = \"TokenUnsupportedInstructionError\";\n}\n","import { struct, u8 } from \"@solana/buffer-layout\";\nimport { bool, publicKey } from \"@solana/buffer-layout-utils\";\n\nimport { Multisig } from \"../types\";\n\n/** Multisig as stored by the program */\nexport type RawMultisig = Omit<Multisig, \"address\">;\n\n/** Buffer layout for de/serializing a multisig */\nexport const MultisigLayout = struct<RawMultisig>([\n  u8(\"m\"),\n  u8(\"n\"),\n  bool(\"isInitialized\"),\n  publicKey(\"signer1\"),\n  publicKey(\"signer2\"),\n  publicKey(\"signer3\"),\n  publicKey(\"signer4\"),\n  publicKey(\"signer5\"),\n  publicKey(\"signer6\"),\n  publicKey(\"signer7\"),\n  publicKey(\"signer8\"),\n  publicKey(\"signer9\"),\n  publicKey(\"signer10\"),\n  publicKey(\"signer11\"),\n]);\n\n/** Byte length of a multisig */\nexport const MULTISIG_SIZE = MultisigLayout.span;\n","import { Buffer } from \"buffer\";\n\nimport { struct, u32, u8 } from \"@solana/buffer-layout\";\nimport { publicKey, u64 } from \"@solana/buffer-layout-utils\";\nimport { AccountInfo, Commitment, Connection, PublicKey } from \"@solana/web3.js\";\n\nimport { TOKEN_PROGRAM_ID } from \"../constants\";\nimport {\n  TokenAccountNotFoundError,\n  TokenInvalidAccountError,\n  TokenInvalidAccountOwnerError,\n  TokenInvalidAccountSizeError,\n} from \"../errors\";\nimport { Account, AccountState, RawAccount } from \"../types\";\n\nimport { MULTISIG_SIZE } from \"./multisig.utils\";\n\nexport enum SplAccountType {\n  Uninitialized,\n  Mint,\n  Account,\n}\n\nexport const ACCOUNT_TYPE_SIZE = 1;\n\n/** Buffer layout for de/serializing a token account */\nexport const AccountLayout = struct<RawAccount>([\n  publicKey(\"mint\"),\n  publicKey(\"owner\"),\n  u64(\"amount\"),\n  u32(\"delegateOption\"),\n  publicKey(\"delegate\"),\n  u8(\"state\"),\n  u32(\"isNativeOption\"),\n  u64(\"isNative\"),\n  u64(\"delegatedAmount\"),\n  u32(\"closeAuthorityOption\"),\n  publicKey(\"closeAuthority\"),\n]);\n\n/** Byte length of a token account */\nexport const ACCOUNT_SIZE = AccountLayout.span;\n\nexport const NATIVE_MINT = new PublicKey(\"So11111111111111111111111111111111111111112\");\n\n/**\n * Retrieve information about a token account\n *\n * @param connection Connection to use\n * @param address    Token account\n * @param commitment Desired level of commitment for querying the state\n * @param programId  SPL Token program account\n *\n * @return Token account information\n */\nexport async function getAccount(\n  connection: Connection,\n  address: PublicKey,\n  commitment?: Commitment,\n  programId = TOKEN_PROGRAM_ID\n): Promise<Account> {\n  const info = await connection.getAccountInfo(address, commitment);\n  return unpackAccount(address, info, programId);\n}\n\n/**\n * Retrieve information about multiple token accounts in a single RPC call\n *\n * @param connection Connection to use\n * @param addresses  Token accounts\n * @param commitment Desired level of commitment for querying the state\n * @param programId  SPL Token program account\n *\n * @return Token account information\n */\nexport async function getMultipleAccounts(\n  connection: Connection,\n  addresses: PublicKey[],\n  commitment?: Commitment,\n  programId = TOKEN_PROGRAM_ID\n): Promise<Account[]> {\n  const infos = await connection.getMultipleAccountsInfo(addresses, commitment);\n  return addresses.map((address, i) => unpackAccount(address, infos[i], programId));\n}\n\n/** Get the minimum lamport balance for a base token account to be rent exempt\n *\n * @param connection Connection to use\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptAccount(\n  connection: Connection,\n  commitment?: Commitment\n): Promise<number> {\n  return await getMinimumBalanceForRentExemptAccountWithExtensions(connection, [], commitment);\n}\n\nexport enum ExtensionType {\n  Uninitialized,\n  TransferFeeConfig,\n  TransferFeeAmount,\n  MintCloseAuthority,\n  ConfidentialTransferMint,\n  ConfidentialTransferAccount,\n  DefaultAccountState,\n  ImmutableOwner,\n  MemoTransfer,\n  NonTransferable,\n  InterestBearingMint,\n}\n\nexport function getAccountLen(extensionTypes: ExtensionType[]): number {\n  return getLen(extensionTypes, ACCOUNT_SIZE);\n}\n\nexport const TYPE_SIZE = 2;\nexport const LENGTH_SIZE = 2;\n\nfunction getLen(extensionTypes: ExtensionType[], baseSize: number): number {\n  if (extensionTypes.length === 0) {\n    return baseSize;\n  } else {\n    const accountLength = ACCOUNT_SIZE + ACCOUNT_TYPE_SIZE;\n    if (accountLength === MULTISIG_SIZE) {\n      return accountLength + TYPE_SIZE;\n    } else {\n      return accountLength;\n    }\n  }\n}\n\n/** Get the minimum lamport balance for a rent-exempt token account with extensions\n *\n * @param connection Connection to use\n * @param extensions\n * @param commitment Desired level of commitment for querying the state\n *\n * @return Amount of lamports required\n */\nexport async function getMinimumBalanceForRentExemptAccountWithExtensions(\n  connection: Connection,\n  extensions: ExtensionType[],\n  commitment?: Commitment\n): Promise<number> {\n  const accountLen = getAccountLen(extensions);\n  return await connection.getMinimumBalanceForRentExemption(accountLen, commitment);\n}\n\n/**\n * Unpack a token account\n *\n * @param address   Token account\n * @param info      Token account data\n * @param programId SPL Token program account\n *\n * @return Unpacked token account\n */\nexport function unpackAccount(\n  address: PublicKey,\n  info: AccountInfo<Buffer> | null,\n  programId = TOKEN_PROGRAM_ID\n): Account {\n  if (!info) throw new TokenAccountNotFoundError();\n  if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n  if (info.data.length < ACCOUNT_SIZE) throw new TokenInvalidAccountSizeError();\n\n  const rawAccount = AccountLayout.decode(info.data.slice(0, ACCOUNT_SIZE));\n  let tlvData = Buffer.alloc(0);\n  if (info.data.length > ACCOUNT_SIZE) {\n    if (info.data.length === MULTISIG_SIZE) throw new TokenInvalidAccountSizeError();\n    if (info.data[ACCOUNT_SIZE] != SplAccountType.Account) throw new TokenInvalidAccountError();\n    tlvData = info.data.slice(ACCOUNT_SIZE + ACCOUNT_TYPE_SIZE);\n  }\n\n  return {\n    address,\n    mint: rawAccount.mint,\n    owner: rawAccount.owner,\n    amount: rawAccount.amount,\n    delegate: rawAccount.delegateOption ? rawAccount.delegate : null,\n    delegatedAmount: rawAccount.delegatedAmount,\n    isInitialized: rawAccount.state !== AccountState.Uninitialized,\n    isFrozen: rawAccount.state === AccountState.Frozen,\n    isNative: !!rawAccount.isNativeOption,\n    rentExemptReserve: rawAccount.isNativeOption ? rawAccount.isNative : null,\n    closeAuthority: rawAccount.closeAuthorityOption ? rawAccount.closeAuthority : null,\n    tlvData,\n  };\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from \"../constants\";\nimport { TokenOwnerOffCurveError } from \"../errors\";\n\n/**\n * Get the address of the associated token account for a given mint and owner\n *\n * @param mint                     Token mint account\n * @param owner                    Owner of the new account\n * @param allowOwnerOffCurve       Allow the owner account to be a PDA (Program Derived Address)\n * @param programId                SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Address of the associated token account\n */\nexport function getAssociatedTokenAddressSync(\n  mint: PublicKey,\n  owner: PublicKey,\n  allowOwnerOffCurve = false,\n  programId = TOKEN_PROGRAM_ID,\n  associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): PublicKey {\n  if (!allowOwnerOffCurve && !PublicKey.isOnCurve(owner.toBuffer()))\n    throw new TokenOwnerOffCurveError();\n\n  const [address] = PublicKey.findProgramAddressSync(\n    [owner.toBuffer(), programId.toBuffer(), mint.toBuffer()],\n    associatedTokenProgramId\n  );\n\n  return address;\n}\n","import { AccountMeta, PublicKey, Signer } from \"@solana/web3.js\";\n\n/** @internal */\nexport function addSigners(\n  keys: AccountMeta[],\n  ownerOrAuthority: PublicKey,\n  multiSigners: Signer[]\n): AccountMeta[] {\n  if (multiSigners.length) {\n    keys.push({ pubkey: ownerOrAuthority, isSigner: false, isWritable: false });\n    for (const signer of multiSigners) {\n      keys.push({\n        pubkey: signer.publicKey,\n        isSigner: true,\n        isWritable: false,\n      });\n    }\n  } else {\n    keys.push({ pubkey: ownerOrAuthority, isSigner: true, isWritable: false });\n  }\n  return keys;\n}\n","import { struct, u32, u8 } from \"@solana/buffer-layout\";\nimport { bool, publicKey, u64 } from \"@solana/buffer-layout-utils\";\nimport { Commitment, Connection, PublicKey } from \"@solana/web3.js\";\n\nimport { TOKEN_PROGRAM_ID } from \"../constants\";\nimport {\n  TokenAccountNotFoundError,\n  TokenInvalidAccountOwnerError,\n  TokenInvalidAccountSizeError,\n} from \"../errors\";\nimport { Mint, RawMint } from \"../types\";\n\n/** Buffer layout for de/serializing a mint */\nexport const MintLayout = struct<RawMint>([\n  u32(\"mintAuthorityOption\"),\n  publicKey(\"mintAuthority\"),\n  u64(\"supply\"),\n  u8(\"decimals\"),\n  bool(\"isInitialized\"),\n  u32(\"freezeAuthorityOption\"),\n  publicKey(\"freezeAuthority\"),\n]);\n\n/** Byte length of a mint */\nexport const MINT_SIZE = MintLayout.span;\n\n/**\n * Retrieve information about a mint\n *\n * @param connection Connection to use\n * @param address    Mint account\n * @param commitment Desired level of commitment for querying the state\n * @param programId  SPL Token program account\n *\n * @return Mint information\n */\nexport async function getMint(\n  connection: Connection,\n  address: PublicKey,\n  commitment?: Commitment,\n  programId = TOKEN_PROGRAM_ID\n): Promise<Mint> {\n  const info = await connection.getAccountInfo(address, commitment);\n  if (!info) throw new TokenAccountNotFoundError();\n  if (!info.owner.equals(programId)) throw new TokenInvalidAccountOwnerError();\n  if (info.data.length != MINT_SIZE) throw new TokenInvalidAccountSizeError();\n\n  const rawMint = MintLayout.decode(info.data);\n\n  return {\n    address,\n    mintAuthority: rawMint.mintAuthorityOption ? rawMint.mintAuthority : null,\n    supply: rawMint.supply,\n    decimals: rawMint.decimals,\n    isInitialized: rawMint.isInitialized,\n    freezeAuthority: rawMint.freezeAuthorityOption ? rawMint.freezeAuthority : null,\n  };\n}\n","import { Buffer } from \"buffer\";\n\nimport { struct, u8 } from \"@solana/buffer-layout\";\nimport { u64 } from \"@solana/buffer-layout-utils\";\nimport {\n  PublicKey,\n  Signer,\n  SystemProgram,\n  SYSVAR_RENT_PUBKEY,\n  TransactionInstruction,\n} from \"@solana/web3.js\";\n\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, MEMO_PROGRAM_ID, TOKEN_PROGRAM_ID } from \"./constants\";\nimport { addSigners } from \"./utils/instruction.utils\";\n\n/**\n * Creates and returns an instruction which validates a string of UTF-8\n * encoded characters and verifies that any accounts provided are signers of\n * the transaction.  The program also logs the memo, as well as any verified\n * signer addresses, to the transaction log, so that anyone can easily observe\n * memos and know they were approved by zero or more addresses by inspecting\n * the transaction log from a trusted provider.\n *\n * Public keys passed in via the signerPubkeys will identify Signers which\n * must subsequently sign the Transaction including the returned\n * TransactionInstruction in order for the transaction to be valid.\n *\n * @param memo The UTF-8 encoded memo string to validate\n * @param signerPubkeys An array of public keys which must sign the\n *        Transaction including the returned TransactionInstruction in order\n *        for the transaction to be valid and the memo verification to\n *        succeed.  null is allowed if there are no signers for the memo\n *        verification.\n **/\nexport function createMemoInstruction(\n  memo: string,\n  signerPubkeys?: Array<PublicKey>\n): TransactionInstruction {\n  const keys =\n    signerPubkeys == null\n      ? []\n      : signerPubkeys.map(function (key) {\n          return { pubkey: key, isSigner: true, isWritable: false };\n        });\n\n  return new TransactionInstruction({\n    keys: keys,\n    programId: MEMO_PROGRAM_ID,\n    data: Buffer.from(memo, \"utf8\"),\n  });\n}\n\n/** Instructions defined by the program */\nexport enum TokenInstruction {\n  Approve = 4,\n  InitializeAccount = 1,\n  TransferChecked = 12,\n  CloseAccount = 9,\n  SyncNative = 17,\n}\n\n/** TODO: docs */\nexport interface ApproveInstructionData {\n  instruction: TokenInstruction.Approve;\n  amount: bigint;\n}\n\nexport const approveInstructionData = struct<ApproveInstructionData>([\n  u8(\"instruction\"),\n  u64(\"amount\"),\n]);\n\n/**\n * Construct an Approve instruction\n *\n * @param account      Account to set the delegate for\n * @param delegate     Account authorized to transfer tokens from the account\n * @param owner        Owner of the account\n * @param amount       Maximum number of tokens the delegate may transfer\n * @param multiSigners Signing accounts if `owner` is a multisig\n * @param programId    SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createApproveInstruction(\n  account: PublicKey,\n  delegate: PublicKey,\n  owner: PublicKey,\n  amount: number | bigint,\n  multiSigners: Signer[] = [],\n  programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n  const keys = addSigners(\n    [\n      { pubkey: account, isSigner: false, isWritable: true },\n      { pubkey: delegate, isSigner: false, isWritable: false },\n    ],\n    owner,\n    multiSigners\n  );\n\n  const data = Buffer.alloc(approveInstructionData.span);\n  approveInstructionData.encode(\n    {\n      instruction: TokenInstruction.Approve,\n      amount: BigInt(amount),\n    },\n    data\n  );\n\n  return new TransactionInstruction({ keys, programId, data });\n}\n\n/** TODO: docs */\nexport interface InitializeAccountInstructionData {\n  instruction: TokenInstruction.InitializeAccount;\n}\n\nexport const initializeAccountInstructionData = struct<InitializeAccountInstructionData>([\n  u8(\"instruction\"),\n]);\n\n/**\n * Construct an InitializeAccount instruction\n *\n * @param account   New token account\n * @param mint      Mint account\n * @param owner     Owner of the new account\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createInitializeAccountInstruction(\n  account: PublicKey,\n  mint: PublicKey,\n  owner: PublicKey,\n  programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n  const keys = [\n    { pubkey: account, isSigner: false, isWritable: true },\n    { pubkey: mint, isSigner: false, isWritable: false },\n    { pubkey: owner, isSigner: false, isWritable: false },\n    { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n  ];\n\n  const data = Buffer.alloc(initializeAccountInstructionData.span);\n  initializeAccountInstructionData.encode(\n    { instruction: TokenInstruction.InitializeAccount },\n    data\n  );\n\n  return new TransactionInstruction({ keys, programId, data });\n}\n\n/**\n * Construct an AssociatedTokenAccount instruction\n *\n * @param payer                    Payer of the initialization fees\n * @param associatedToken          New associated token account\n * @param owner                    Owner of the new account\n * @param mint                     Token mint account\n * @param programId                SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createAssociatedTokenAccountInstruction(\n  payer: PublicKey,\n  associatedToken: PublicKey,\n  owner: PublicKey,\n  mint: PublicKey,\n  programId = TOKEN_PROGRAM_ID,\n  associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n  const keys = [\n    { pubkey: payer, isSigner: true, isWritable: true },\n    { pubkey: associatedToken, isSigner: false, isWritable: true },\n    { pubkey: owner, isSigner: false, isWritable: false },\n    { pubkey: mint, isSigner: false, isWritable: false },\n    { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n    { pubkey: programId, isSigner: false, isWritable: false },\n    { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: associatedTokenProgramId,\n    data: Buffer.alloc(0),\n  });\n}\n\n/**\n * Construct a CreateAssociatedTokenAccountIdempotent instruction\n *\n * @param payer                    Payer of the initialization fees\n * @param associatedToken          New associated token account\n * @param owner                    Owner of the new account\n * @param mint                     Token mint account\n * @param programId                SPL Token program account\n * @param associatedTokenProgramId SPL Associated Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createAssociatedTokenAccountIdempotentInstruction(\n  payer: PublicKey,\n  associatedToken: PublicKey,\n  owner: PublicKey,\n  mint: PublicKey,\n  programId = TOKEN_PROGRAM_ID,\n  associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n  return buildAssociatedTokenAccountInstruction(\n    payer,\n    associatedToken,\n    owner,\n    mint,\n    Buffer.from([1]),\n    programId,\n    associatedTokenProgramId\n  );\n}\n\n/** TODO: docs */\nexport interface SyncNativeInstructionData {\n  instruction: TokenInstruction.SyncNative;\n}\n\n/** TODO: docs */\nexport const syncNativeInstructionData = struct<SyncNativeInstructionData>([u8(\"instruction\")]);\n\n/**\n * Construct a SyncNative instruction\n *\n * @param account   Native account to sync lamports from\n * @param programId SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createSyncNativeInstruction(\n  account: PublicKey,\n  programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n  const keys = [{ pubkey: account, isSigner: false, isWritable: true }];\n\n  const data = Buffer.alloc(syncNativeInstructionData.span);\n  syncNativeInstructionData.encode({ instruction: TokenInstruction.SyncNative }, data);\n\n  return new TransactionInstruction({ keys, programId, data });\n}\n\n/** TODO: docs */\nexport interface CloseAccountInstructionData {\n  instruction: TokenInstruction.CloseAccount;\n}\n\n/** TODO: docs */\nexport const closeAccountInstructionData = struct<CloseAccountInstructionData>([u8(\"instruction\")]);\n\n/**\n * Construct a CloseAccount instruction\n *\n * @param account      Account to close\n * @param destination  Account to receive the remaining balance of the closed account\n * @param authority    Account close authority\n * @param multiSigners Signing accounts if `authority` is a multisig\n * @param programId    SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createCloseAccountInstruction(\n  account: PublicKey,\n  destination: PublicKey,\n  authority: PublicKey,\n  multiSigners: Signer[] = [],\n  programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n  const keys = addSigners(\n    [\n      { pubkey: account, isSigner: false, isWritable: true },\n      { pubkey: destination, isSigner: false, isWritable: true },\n    ],\n    authority,\n    multiSigners\n  );\n\n  const data = Buffer.alloc(closeAccountInstructionData.span);\n  closeAccountInstructionData.encode({ instruction: TokenInstruction.CloseAccount }, data);\n\n  return new TransactionInstruction({ keys, programId, data });\n}\n\nfunction buildAssociatedTokenAccountInstruction(\n  payer: PublicKey,\n  associatedToken: PublicKey,\n  owner: PublicKey,\n  mint: PublicKey,\n  instructionData: Buffer,\n  programId = TOKEN_PROGRAM_ID,\n  associatedTokenProgramId = ASSOCIATED_TOKEN_PROGRAM_ID\n): TransactionInstruction {\n  const keys = [\n    { pubkey: payer, isSigner: true, isWritable: true },\n    { pubkey: associatedToken, isSigner: false, isWritable: true },\n    { pubkey: owner, isSigner: false, isWritable: false },\n    { pubkey: mint, isSigner: false, isWritable: false },\n    { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n    { pubkey: programId, isSigner: false, isWritable: false },\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: associatedTokenProgramId,\n    data: instructionData,\n  });\n}\n\n/** TODO: docs */\nexport interface TransferCheckedInstructionData {\n  instruction: TokenInstruction.TransferChecked;\n  amount: bigint;\n  decimals: number;\n}\n\n/** TODO: docs */\nexport const transferCheckedInstructionData = struct<TransferCheckedInstructionData>([\n  u8(\"instruction\"),\n  u64(\"amount\"),\n  u8(\"decimals\"),\n]);\n\n/**\n * Construct a TransferChecked instruction\n *\n * @param source       Source account\n * @param mint         Mint account\n * @param destination  Destination account\n * @param owner        Owner of the source account\n * @param amount       Number of tokens to transfer\n * @param decimals     Number of decimals in transfer amount\n * @param multiSigners Signing accounts if `owner` is a multisig\n * @param programId    SPL Token program account\n *\n * @return Instruction to add to a transaction\n */\nexport function createTransferCheckedInstruction(\n  source: PublicKey,\n  mint: PublicKey,\n  destination: PublicKey,\n  owner: PublicKey,\n  amount: number | bigint,\n  decimals: number,\n  multiSigners: Signer[] = [],\n  programId = TOKEN_PROGRAM_ID\n): TransactionInstruction {\n  const keys = addSigners(\n    [\n      { pubkey: source, isSigner: false, isWritable: true },\n      { pubkey: mint, isSigner: false, isWritable: false },\n      { pubkey: destination, isSigner: false, isWritable: true },\n    ],\n    owner,\n    multiSigners\n  );\n\n  const data = Buffer.alloc(transferCheckedInstructionData.span);\n  transferCheckedInstructionData.encode(\n    {\n      instruction: TokenInstruction.TransferChecked,\n      amount: BigInt(amount),\n      decimals,\n    },\n    data\n  );\n\n  return new TransactionInstruction({ keys, programId, data });\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const JUPITER_V6_PROGRAM: PublicKey = new PublicKey(\n  \"JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4\"\n);\nexport const SINGLE_POOL_PROGRAM_ID: PublicKey = new PublicKey(\n  \"SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE\"\n);\nexport const STAKE_PROGRAM_ID: PublicKey = new PublicKey(\n  \"Stake11111111111111111111111111111111111111\"\n);\nexport const MPL_METADATA_PROGRAM_ID: PublicKey = new PublicKey(\n  \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n);\nexport const SYSTEM_PROGRAM_ID: PublicKey = new PublicKey(\"11111111111111111111111111111111\");\nexport const SYSVAR_RENT_ID: PublicKey = new PublicKey(\n  \"SysvarRent111111111111111111111111111111111\"\n);\nexport const SYSVAR_CLOCK_ID: PublicKey = new PublicKey(\n  \"SysvarC1ock11111111111111111111111111111111\"\n);\nexport const SYSVAR_STAKE_HISTORY_ID: PublicKey = new PublicKey(\n  \"SysvarStakeHistory1111111111111111111111111\"\n);\nexport const STAKE_CONFIG_ID: PublicKey = new PublicKey(\n  \"StakeConfig11111111111111111111111111111111\"\n);\n","export const HOURS_PER_YEAR = 365.25 * 24;\n\nexport const MAX_U64 = BigInt(\"18446744073709551615\").toString();\n","import { PublicKey } from \"@solana/web3.js\";\n\n// token mints\nexport const WSOL_MINT = new PublicKey(\"So11111111111111111111111111111111111111112\");\nexport const LST_MINT = new PublicKey(\"LSTxxxnJzKDFSLr4dUkPcmCf5VyryEqzPLz5j4bpxFp\");\nexport const USDC_MINT = new PublicKey(\"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\");\nexport const USDT_MINT = new PublicKey(\"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\");\n\nexport const USDC_DECIMALS = 6;\n","import {\n  Connection,\n  LAMPORTS_PER_SOL,\n  PublicKey,\n  STAKE_CONFIG_ID,\n  SYSVAR_CLOCK_PUBKEY,\n  SystemProgram,\n  StakeProgram,\n  Transaction,\n  TransactionInstruction,\n  SYSVAR_RENT_PUBKEY,\n} from \"@solana/web3.js\";\nimport BigNumber from \"bignumber.js\";\nimport { BN } from \"bn.js\";\n\nimport { TOKEN_PROGRAM_ID } from \"../spl\";\n\nimport {\n  MPL_METADATA_PROGRAM_ID,\n  SINGLE_POOL_PROGRAM_ID,\n  STAKE_PROGRAM_ID,\n  SYSTEM_PROGRAM_ID,\n  SYSVAR_CLOCK_ID,\n  SYSVAR_RENT_ID,\n  SYSVAR_STAKE_HISTORY_ID,\n} from \"~/constants\";\n\ninterface AccountMeta {\n  pubkey: PublicKey;\n  isSigner: boolean;\n  isWritable: boolean;\n}\n\n// Instruction type enum\nenum SinglePoolInstructionType {\n  InitializePool = 0,\n  ReplenishPool,\n  DepositStake,\n  WithdrawStake,\n  CreateTokenMetadata,\n  UpdateTokenMetadata,\n  InitializeOnRamp,\n}\n\nconst SinglePoolInstruction = {\n  initializePool: (voteAccount: PublicKey): TransactionInstruction => {\n    const pool = findPoolAddress(voteAccount);\n    const stake = findPoolStakeAddress(pool);\n    const mint = findPoolMintAddress(pool);\n    const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n    const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n    return createTransactionInstruction(\n      SINGLE_POOL_PROGRAM_ID,\n      [\n        { pubkey: voteAccount, isSigner: false, isWritable: false },\n        { pubkey: pool, isSigner: false, isWritable: true },\n        { pubkey: stake, isSigner: false, isWritable: true },\n        { pubkey: mint, isSigner: false, isWritable: true },\n        { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n        { pubkey: mintAuthority, isSigner: false, isWritable: false },\n        { pubkey: SYSVAR_RENT_ID, isSigner: false, isWritable: false },\n        { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n        { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n        { pubkey: STAKE_CONFIG_ID, isSigner: false, isWritable: false },\n        { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n        { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n        { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n      ],\n      Buffer.from([SinglePoolInstructionType.InitializePool])\n    );\n  },\n\n  initializeOnRamp: (pool: PublicKey): TransactionInstruction => {\n    const onRamp = findPoolOnRampAddress(pool);\n    const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n\n    return createTransactionInstruction(\n      SINGLE_POOL_PROGRAM_ID,\n      [\n        { pubkey: pool, isSigner: false, isWritable: false },\n        { pubkey: onRamp, isSigner: false, isWritable: true },\n        { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n        { pubkey: SYSVAR_RENT_ID, isSigner: false, isWritable: false },\n        { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n        { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n      ],\n      Buffer.from([SinglePoolInstructionType.InitializeOnRamp])\n    );\n  },\n\n  depositStake: async (\n    pool: PublicKey,\n    userStakeAccount: PublicKey,\n    userTokenAccount: PublicKey,\n    userLamportAccount: PublicKey\n  ): Promise<TransactionInstruction> => {\n    const stake = findPoolStakeAddress(pool);\n    const onRamp = findPoolOnRampAddress(pool);\n    const mint = findPoolMintAddress(pool);\n    const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n    const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n    return createTransactionInstruction(\n      SINGLE_POOL_PROGRAM_ID,\n      [\n        { pubkey: pool, isSigner: false, isWritable: false },\n        { pubkey: stake, isSigner: false, isWritable: true },\n        { pubkey: onRamp, isSigner: false, isWritable: false },\n        { pubkey: mint, isSigner: false, isWritable: true },\n        { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n        { pubkey: mintAuthority, isSigner: false, isWritable: false },\n        { pubkey: userStakeAccount, isSigner: false, isWritable: true },\n        { pubkey: userTokenAccount, isSigner: false, isWritable: true },\n        { pubkey: userLamportAccount, isSigner: false, isWritable: true },\n        { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n        { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n        { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n        { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n      ],\n      Buffer.from([SinglePoolInstructionType.DepositStake])\n    );\n  },\n\n  withdrawStake: async (\n    pool: PublicKey,\n    userStakeAccount: PublicKey,\n    userStakeAuthority: PublicKey,\n    userTokenAccount: PublicKey,\n    tokenAmount: BigNumber\n  ): Promise<TransactionInstruction> => {\n    const stake = findPoolStakeAddress(pool);\n    const onRamp = findPoolOnRampAddress(pool);\n    const mint = findPoolMintAddress(pool);\n    const stakeAuthority = findPoolStakeAuthorityAddress(pool);\n    const mintAuthority = findPoolMintAuthorityAddress(pool);\n\n    // Try using BigInt for more precise conversion\n    const rawAmount = BigInt(tokenAmount.multipliedBy(1e9).toString());\n\n    const data = Buffer.concat([\n      Buffer.from([SinglePoolInstructionType.WithdrawStake]),\n      userStakeAuthority.toBuffer(),\n      Buffer.from(new BN(rawAmount.toString()).toArray(\"le\", 8)),\n    ]);\n\n    return createTransactionInstruction(\n      SINGLE_POOL_PROGRAM_ID,\n      [\n        { pubkey: pool, isSigner: false, isWritable: false },\n        { pubkey: stake, isSigner: false, isWritable: true },\n        { pubkey: onRamp, isSigner: false, isWritable: false },\n        { pubkey: mint, isSigner: false, isWritable: true },\n        { pubkey: stakeAuthority, isSigner: false, isWritable: false },\n        { pubkey: mintAuthority, isSigner: false, isWritable: false },\n        { pubkey: userStakeAccount, isSigner: false, isWritable: true },\n        { pubkey: userTokenAccount, isSigner: false, isWritable: true },\n        { pubkey: SYSVAR_CLOCK_ID, isSigner: false, isWritable: false },\n        { pubkey: TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },\n        { pubkey: STAKE_PROGRAM_ID, isSigner: false, isWritable: false },\n      ],\n      data\n    );\n  },\n\n  createTokenMetadata: async (\n    pool: PublicKey,\n    payer: PublicKey\n  ): Promise<TransactionInstruction> => {\n    const mint = findPoolMintAddress(pool);\n    const [mintAuthority, mplAuthority, mplMetadata] = await Promise.all([\n      findPoolMintAuthorityAddress(pool),\n      findPoolMplAuthorityAddress(pool),\n      findMplMetadataAddress(mint),\n    ]);\n\n    return createTransactionInstruction(\n      SINGLE_POOL_PROGRAM_ID,\n      [\n        { pubkey: pool, isSigner: false, isWritable: false },\n        { pubkey: mint, isSigner: false, isWritable: false },\n        { pubkey: mintAuthority, isSigner: false, isWritable: false },\n        { pubkey: mplAuthority, isSigner: false, isWritable: false },\n        { pubkey: payer, isSigner: true, isWritable: true },\n        { pubkey: mplMetadata, isSigner: false, isWritable: true },\n        { pubkey: MPL_METADATA_PROGRAM_ID, isSigner: false, isWritable: false },\n        { pubkey: SYSTEM_PROGRAM_ID, isSigner: false, isWritable: false },\n      ],\n      Buffer.from([SinglePoolInstructionType.CreateTokenMetadata])\n    );\n  },\n\n  updateTokenMetadata: async (\n    voteAccount: PublicKey,\n    authorizedWithdrawer: PublicKey,\n    tokenName: string,\n    tokenSymbol: string,\n    tokenUri: string = \"\"\n  ): Promise<TransactionInstruction> => {\n    if (tokenName.length > 32) {\n      throw new Error(\"maximum token name length is 32 characters\");\n    }\n    if (tokenSymbol.length > 10) {\n      throw new Error(\"maximum token symbol length is 10 characters\");\n    }\n    if (tokenUri.length > 200) {\n      throw new Error(\"maximum token uri length is 200 characters\");\n    }\n\n    const pool = findPoolAddress(voteAccount);\n    const [mint, mplAuthority] = await Promise.all([\n      findPoolMintAddress(pool),\n      findPoolMplAuthorityAddress(pool),\n    ]);\n    const mplMetadata = await findMplMetadataAddress(mint);\n\n    const data = Buffer.concat([\n      Buffer.from([SinglePoolInstructionType.UpdateTokenMetadata]),\n      Buffer.from(new Uint32Array([tokenName.length]).buffer),\n      Buffer.from(tokenName),\n      Buffer.from(new Uint32Array([tokenSymbol.length]).buffer),\n      Buffer.from(tokenSymbol),\n      Buffer.from(new Uint32Array([tokenUri.length]).buffer),\n      Buffer.from(tokenUri),\n    ]);\n\n    return createTransactionInstruction(\n      SINGLE_POOL_PROGRAM_ID,\n      [\n        { pubkey: voteAccount, isSigner: false, isWritable: false },\n        { pubkey: pool, isSigner: false, isWritable: false },\n        { pubkey: mplAuthority, isSigner: false, isWritable: false },\n        { pubkey: authorizedWithdrawer, isSigner: true, isWritable: false },\n        { pubkey: mplMetadata, isSigner: false, isWritable: true },\n        { pubkey: MPL_METADATA_PROGRAM_ID, isSigner: false, isWritable: false },\n      ],\n      data\n    );\n  },\n};\n\nconst createTransactionInstruction = (\n  programId: PublicKey,\n  keys: AccountMeta[],\n  data: Buffer\n): TransactionInstruction => {\n  return {\n    programId,\n    keys,\n    data,\n  };\n};\n\nconst findPda = (\n  baseAddress: PublicKey,\n  prefix: string,\n  programId: PublicKey = SINGLE_POOL_PROGRAM_ID\n): PublicKey => {\n  const [pda] = PublicKey.findProgramAddressSync(\n    [Buffer.from(prefix), baseAddress.toBuffer()],\n    programId\n  );\n  return pda;\n};\n\nconst findPoolMintAddressByVoteAccount = (voteAccountAddress: PublicKey): PublicKey =>\n  findPda(findPoolAddress(voteAccountAddress), \"mint\");\nconst findPoolAddress = (voteAccountAddress: PublicKey): PublicKey =>\n  findPda(voteAccountAddress, \"pool\");\nconst findPoolMintAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"mint\");\nconst findPoolStakeAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"stake\");\nconst findPoolStakeAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n  findPda(poolAddress, \"stake_authority\");\nconst findPoolMintAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n  findPda(poolAddress, \"mint_authority\");\nconst findPoolMplAuthorityAddress = (poolAddress: PublicKey): PublicKey =>\n  findPda(poolAddress, \"mpl_authority\");\nconst findPoolOnRampAddress = (poolAddress: PublicKey): PublicKey => findPda(poolAddress, \"onramp\");\n\nconst findMplMetadataAddress = async (poolMintAddress: PublicKey): Promise<PublicKey> => {\n  const [pda] = PublicKey.findProgramAddressSync(\n    [Buffer.from(\"metadata\"), MPL_METADATA_PROGRAM_ID.toBuffer(), poolMintAddress.toBuffer()],\n    MPL_METADATA_PROGRAM_ID\n  );\n  return pda;\n};\n\nconst SINGLE_POOL_ACCOUNT_SIZE = BigInt(33);\nconst STAKE_ACCOUNT_SIZE = BigInt(200);\nconst MINT_SIZE = BigInt(82);\n\nasync function initializeStakedPoolTx(\n  connection: Connection,\n  payer: PublicKey,\n  voteAccountAddress: PublicKey\n) {\n  const instructions = await initializeStakedPoolIxs(connection, payer, voteAccountAddress);\n  const tx = new Transaction().add(...instructions);\n  return tx;\n}\n\nasync function initializeStakedPoolIxs(\n  connection: Connection,\n  payer: PublicKey,\n  voteAccountAddress: PublicKey\n) {\n  const poolAddress = findPoolAddress(voteAccountAddress);\n\n  const stakeAddress = findPoolStakeAddress(poolAddress);\n  const mintAddress = findPoolMintAddress(poolAddress);\n  const onRampAddress = findPoolOnRampAddress(poolAddress);\n\n  // get min rent\n  const [poolRent, stakeRent, mintRent, minimumDelegationObj] = await Promise.all([\n    connection.getMinimumBalanceForRentExemption(Number(SINGLE_POOL_ACCOUNT_SIZE), \"confirmed\"),\n    connection.getMinimumBalanceForRentExemption(Number(STAKE_ACCOUNT_SIZE), \"confirmed\"),\n    connection.getMinimumBalanceForRentExemption(Number(MINT_SIZE), \"confirmed\"),\n    connection.getStakeMinimumDelegation(),\n  ]);\n\n  const minimumDelegation = minimumDelegationObj.value;\n\n  const instructions: TransactionInstruction[] = [];\n\n  // instructions\n  instructions.push(\n    SystemProgram.transfer({ fromPubkey: payer, toPubkey: poolAddress, lamports: poolRent })\n  );\n  instructions.push(\n    SystemProgram.transfer({\n      fromPubkey: payer,\n      toPubkey: stakeAddress,\n      lamports: stakeRent + minimumDelegation + LAMPORTS_PER_SOL * 1,\n    })\n  );\n  instructions.push(\n    SystemProgram.transfer({ fromPubkey: payer, toPubkey: onRampAddress, lamports: stakeRent })\n  );\n  instructions.push(\n    SystemProgram.transfer({ fromPubkey: payer, toPubkey: mintAddress, lamports: mintRent })\n  );\n\n  instructions.push(SinglePoolInstruction.initializePool(voteAccountAddress));\n  instructions.push(SinglePoolInstruction.initializeOnRamp(poolAddress));\n  instructions.push(await SinglePoolInstruction.createTokenMetadata(poolAddress, payer));\n\n  return instructions;\n}\n\nconst createAccountIx = (\n  from: PublicKey,\n  newAccount: PublicKey,\n  lamports: number,\n  space: number,\n  programAddress: PublicKey\n) => {\n  const data = Buffer.concat([\n    Buffer.from([0]), // Assuming the first byte is an instruction type or similar\n    Buffer.from(new BN(lamports).toArray(\"le\", 8)),\n    Buffer.from(new BN(space).toArray(\"le\", 8)),\n    programAddress.toBuffer(),\n  ]);\n\n  const accounts = [\n    { pubkey: from, isSigner: true, isWritable: true },\n    { pubkey: newAccount, isSigner: true, isWritable: true },\n  ];\n\n  return createTransactionInstruction(SYSTEM_PROGRAM_ID, accounts, data);\n};\n\nconst createPoolOnrampIx = (voteAccount: PublicKey): TransactionInstruction => {\n  const poolAccount = findPoolAddress(voteAccount);\n  const onRampAccount = findPoolOnRampAddress(poolAccount);\n  const poolStakeAuthority = findPoolStakeAuthorityAddress(poolAccount);\n\n  const keys = [\n    { pubkey: poolAccount, isSigner: false, isWritable: false },\n    { pubkey: onRampAccount, isSigner: false, isWritable: true },\n    { pubkey: poolStakeAuthority, isSigner: false, isWritable: false },\n    { pubkey: SYSVAR_RENT_PUBKEY, isSigner: false, isWritable: false },\n    { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n    { pubkey: StakeProgram.programId, isSigner: false, isWritable: false },\n  ];\n\n  // TODO don't hard code the instruction index? (or why not, it's not gna change is it?)\n  const data = Buffer.from(Uint8Array.of(6));\n\n  return new TransactionInstruction({\n    keys,\n    programId: SINGLE_POOL_PROGRAM_ID,\n    data,\n  });\n};\n\nconst replenishPoolIx = (voteAccount: PublicKey): TransactionInstruction => {\n  const poolAccount = findPoolAddress(voteAccount);\n  const stakePool = findPoolStakeAddress(poolAccount);\n  const onRampPool = findPoolOnRampAddress(poolAccount);\n  const authority = findPoolStakeAuthorityAddress(poolAccount);\n\n  const keys = [\n    { pubkey: voteAccount, isSigner: false, isWritable: false },\n    { pubkey: poolAccount, isSigner: false, isWritable: false },\n    { pubkey: stakePool, isSigner: false, isWritable: true },\n    { pubkey: onRampPool, isSigner: false, isWritable: true },\n    { pubkey: authority, isSigner: false, isWritable: false },\n    { pubkey: SYSVAR_CLOCK_PUBKEY, isSigner: false, isWritable: false },\n    { pubkey: SYSVAR_STAKE_HISTORY_ID, isSigner: false, isWritable: false },\n    { pubkey: STAKE_CONFIG_ID, isSigner: false, isWritable: false },\n    { pubkey: StakeProgram.programId, isSigner: false, isWritable: false },\n  ];\n\n  // TODO don't hard code the instruction index? (or why not, it's not gna change is it?)\n  const data = Buffer.from(Uint8Array.of(1));\n\n  return createTransactionInstruction(SINGLE_POOL_PROGRAM_ID, keys, data);\n};\n\nexport {\n  SinglePoolInstruction,\n  initializeStakedPoolIxs,\n  initializeStakedPoolTx,\n  findPoolAddress,\n  findPoolMintAddress,\n  findPoolStakeAddress,\n  findPoolStakeAuthorityAddress,\n  findPoolMintAuthorityAddress,\n  findPoolMplAuthorityAddress,\n  findMplMetadataAddress,\n  findPoolOnRampAddress,\n  findPoolMintAddressByVoteAccount,\n  createAccountIx,\n  createPoolOnrampIx,\n  replenishPoolIx,\n};\n","import { Buffer } from \"buffer\";\n\nimport { PublicKey } from \"@solana/web3.js\";\n\n/**\n * Parsed content of an on-chain StakeAccount\n *\n * Copied from https://github.com/solana-developers/solana-rpc-get-stake-activation/blob/main/web3js-1.0/src/stake.ts\n * */\nexport type StakeAccount = {\n  discriminant: bigint;\n  meta: {\n    rentExemptReserve: bigint;\n    authorized: {\n      staker: PublicKey;\n      withdrawer: PublicKey;\n    };\n    lockup: {\n      unixTimestamp: bigint;\n      epoch: bigint;\n      custodian: PublicKey;\n    };\n  };\n  stake: {\n    delegation: {\n      voterPubkey: PublicKey;\n      stake: bigint;\n      activationEpoch: bigint;\n      deactivationEpoch: bigint;\n    };\n    creditsObserved: bigint;\n  };\n};\n\n/**\n * Decode a StakeAccount from parsed account data.\n *\n * Copied from https://github.com/solana-developers/solana-rpc-get-stake-activation/blob/main/web3js-1.0/src/stake.ts\n * */\nexport const getStakeAccount = function (data: Buffer): StakeAccount {\n  let offset = 0;\n\n  // Discriminant (4 bytes)\n  const discriminant = data.readBigUInt64LE(offset);\n  offset += 4;\n\n  // Meta\n  const rentExemptReserve = data.readBigUInt64LE(offset);\n  offset += 8;\n\n  // Authorized staker and withdrawer (2 public keys)\n  const staker = new PublicKey(data.subarray(offset, offset + 32));\n  offset += 32;\n  const withdrawer = new PublicKey(data.subarray(offset, offset + 32));\n  offset += 32;\n\n  // Lockup: unixTimestamp, epoch, custodian\n  const unixTimestamp = data.readBigUInt64LE(offset);\n  offset += 8;\n  const epoch = data.readBigUInt64LE(offset);\n  offset += 8;\n  const custodian = new PublicKey(data.subarray(offset, offset + 32));\n  offset += 32;\n\n  // Stake: Delegation\n  const voterPubkey = new PublicKey(data.subarray(offset, offset + 32));\n  offset += 32;\n  const stake = data.readBigUInt64LE(offset);\n  offset += 8;\n  const activationEpoch = data.readBigUInt64LE(offset);\n  offset += 8;\n  const deactivationEpoch = data.readBigUInt64LE(offset);\n  offset += 8;\n\n  // Credits observed\n  const creditsObserved = data.readBigUInt64LE(offset);\n\n  // Return the parsed StakeAccount object\n  return {\n    discriminant,\n    meta: {\n      rentExemptReserve,\n      authorized: {\n        staker,\n        withdrawer,\n      },\n      lockup: {\n        unixTimestamp,\n        epoch,\n        custodian,\n      },\n    },\n    stake: {\n      delegation: {\n        voterPubkey,\n        stake,\n        activationEpoch,\n        deactivationEpoch,\n      },\n      creditsObserved,\n    },\n  };\n};\n","{\n  \"address\": \"SBondMDrcV3K4kxZR1HNVT7osZxAHVHgYXL5Ze1oMUv\",\n  \"metadata\": {\n    \"name\": \"sb_on_demand\",\n    \"version\": \"0.1.0\",\n    \"spec\": \"0.1.0\",\n    \"description\": \"Created with Anchor\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"guardian_quote_verify\",\n      \"discriminator\": [168, 36, 93, 156, 157, 150, 148, 45],\n      \"accounts\": [\n        { \"name\": \"guardian\", \"writable\": true },\n        { \"name\": \"oracle\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n        { \"name\": \"guardian_queue\", \"writable\": true, \"relations\": [\"state\"] },\n        { \"name\": \"state\" },\n        {\n          \"name\": \"recent_slothashes\",\n          \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"GuardianQuoteVerifyParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"guardian_register\",\n      \"discriminator\": [159, 76, 53, 117, 219, 29, 116, 135],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"writable\": true },\n        { \"name\": \"state\" },\n        { \"name\": \"guardian_queue\", \"relations\": [\"state\"] },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"GuardianRegisterParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"guardian_unregister\",\n      \"discriminator\": [215, 19, 61, 120, 155, 224, 120, 60],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"writable\": true },\n        { \"name\": \"state\" },\n        { \"name\": \"guardian_queue\", \"writable\": true, \"relations\": [\"state\"] },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"GuardianUnregisterParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"oracle_heartbeat\",\n      \"discriminator\": [10, 175, 217, 130, 111, 35, 117, 54],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"writable\": true },\n        {\n          \"name\": \"oracle_stats\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n              },\n              { \"kind\": \"account\", \"path\": \"oracle\" }\n            ]\n          }\n        },\n        { \"name\": \"oracle_signer\", \"signer\": true },\n        {\n          \"name\": \"queue\",\n          \"writable\": true,\n          \"relations\": [\"oracle\", \"gc_node\"]\n        },\n        { \"name\": \"gc_node\", \"writable\": true },\n        { \"name\": \"program_state\", \"writable\": true },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"native_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        },\n        { \"name\": \"queue_escrow\", \"writable\": true },\n        { \"name\": \"stake_program\" },\n        { \"name\": \"delegation_pool\" },\n        { \"name\": \"delegation_group\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"OracleHeartbeatParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"oracle_heartbeat_v2\",\n      \"discriminator\": [122, 231, 66, 32, 226, 62, 144, 103],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"writable\": true },\n        {\n          \"name\": \"oracle_stats\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n              },\n              { \"kind\": \"account\", \"path\": \"oracle\" }\n            ]\n          }\n        },\n        { \"name\": \"oracle_signer\", \"signer\": true },\n        {\n          \"name\": \"queue\",\n          \"writable\": true,\n          \"relations\": [\"oracle\", \"gc_node\"]\n        },\n        { \"name\": \"gc_node\", \"writable\": true },\n        { \"name\": \"program_state\", \"writable\": true }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"OracleHeartbeatV2Params\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"oracle_init\",\n      \"discriminator\": [21, 158, 66, 65, 60, 221, 148, 61],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"oracle_stats\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n              },\n              { \"kind\": \"account\", \"path\": \"oracle\" }\n            ]\n          }\n        },\n        { \"name\": \"program_state\", \"writable\": true },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        { \"name\": \"lut_signer\" },\n        { \"name\": \"lut\", \"writable\": true },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"OracleInitParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"oracle_init_svm\",\n      \"discriminator\": [106, 20, 36, 117, 166, 175, 131, 83],\n      \"accounts\": [\n        {\n          \"name\": \"oracle\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [79, 114, 97, 99, 108, 101] },\n              { \"kind\": \"arg\", \"path\": \"params.queue\" },\n              { \"kind\": \"arg\", \"path\": \"params.source_oracle_key\" }\n            ]\n          }\n        },\n        {\n          \"name\": \"oracle_stats\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [79, 114, 97, 99, 108, 101, 83, 116, 97, 116, 115]\n              },\n              { \"kind\": \"account\", \"path\": \"oracle\" }\n            ]\n          }\n        },\n        { \"name\": \"program_state\", \"writable\": true },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        { \"name\": \"lut_signer\" },\n        { \"name\": \"lut\", \"writable\": true },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        },\n        { \"name\": \"stake_program\" },\n        { \"name\": \"stake_pool\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"OracleInitSVMParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"oracle_reset_lut\",\n      \"discriminator\": [147, 244, 108, 198, 152, 219, 0, 22],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        { \"name\": \"program_state\" },\n        { \"name\": \"lut_signer\" },\n        { \"name\": \"lut\", \"writable\": true },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"OracleResetLutParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"oracle_set_configs\",\n      \"discriminator\": [129, 111, 223, 4, 191, 188, 70, 180],\n      \"accounts\": [\n        { \"name\": \"oracle\" },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"OracleSetConfigsParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"oracle_set_operator\",\n      \"discriminator\": [210, 232, 155, 124, 69, 176, 242, 133],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n        { \"name\": \"operator\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"OracleSetOperatorParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"oracle_sync_lut\",\n      \"discriminator\": [138, 99, 12, 59, 18, 170, 171, 45],\n      \"accounts\": [\n        { \"name\": \"oracle\" },\n        { \"name\": \"queue\", \"relations\": [\"oracle\"] },\n        { \"name\": \"ncn\" },\n        { \"name\": \"vault\" },\n        { \"name\": \"state\" },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"oracle\"] },\n        { \"name\": \"operator\", \"relations\": [\"oracle\"] },\n        { \"name\": \"ncn_operator_state\" },\n        { \"name\": \"operator_vault_ticket\" },\n        { \"name\": \"vault_operator_delegation\" },\n        { \"name\": \"lut_signer\" },\n        { \"name\": \"lut\", \"writable\": true },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        },\n        { \"name\": \"payer\", \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"OracleSyncLutParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"permission_set\",\n      \"discriminator\": [211, 122, 185, 120, 129, 182, 55, 103],\n      \"accounts\": [\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"granter\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"PermissionSetParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"pull_feed_close\",\n      \"discriminator\": [19, 134, 50, 142, 177, 215, 196, 83],\n      \"accounts\": [\n        { \"name\": \"pull_feed\", \"writable\": true },\n        { \"name\": \"reward_escrow\", \"writable\": true },\n        { \"name\": \"lut\", \"writable\": true },\n        { \"name\": \"lut_signer\" },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        { \"name\": \"state\" },\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true,\n          \"relations\": [\"pull_feed\"]\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"PullFeedCloseParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"pull_feed_init\",\n      \"discriminator\": [198, 130, 53, 198, 235, 61, 143, 40],\n      \"accounts\": [\n        { \"name\": \"pull_feed\", \"writable\": true, \"signer\": true },\n        { \"name\": \"queue\" },\n        { \"name\": \"authority\" },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        { \"name\": \"program_state\" },\n        {\n          \"name\": \"reward_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"account\", \"path\": \"pull_feed\" },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n                  235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n                  245, 133, 126, 255, 0, 169\n                ]\n              },\n              { \"kind\": \"account\", \"path\": \"wrapped_sol_mint\" }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"wrapped_sol_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        },\n        { \"name\": \"lut_signer\" },\n        { \"name\": \"lut\", \"writable\": true },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"PullFeedInitParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"pull_feed_set_configs\",\n      \"discriminator\": [217, 45, 11, 246, 64, 26, 82, 168],\n      \"accounts\": [\n        { \"name\": \"pull_feed\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"pull_feed\"] }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"PullFeedSetConfigsParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"pull_feed_submit_response\",\n      \"discriminator\": [150, 22, 215, 166, 143, 93, 48, 137],\n      \"accounts\": [\n        { \"name\": \"feed\", \"writable\": true },\n        { \"name\": \"queue\", \"relations\": [\"feed\"] },\n        { \"name\": \"program_state\" },\n        {\n          \"name\": \"recent_slothashes\",\n          \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n        },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        { \"name\": \"reward_vault\", \"writable\": true },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"token_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"pull_feed_submit_response_consensus\",\n      \"discriminator\": [239, 124, 39, 184, 147, 222, 16, 248],\n      \"accounts\": [\n        { \"name\": \"queue\" },\n        { \"name\": \"program_state\" },\n        {\n          \"name\": \"recent_slothashes\",\n          \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n        },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        { \"name\": \"reward_vault\", \"writable\": true },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"token_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        },\n        {\n          \"name\": \"ix_sysvar\",\n          \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": { \"name\": \"PullFeedSubmitResponseConsensusParams\" }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"pull_feed_submit_response_consensus_light\",\n      \"discriminator\": [178, 179, 88, 144, 175, 130, 157, 87],\n      \"accounts\": [\n        { \"name\": \"queue\" },\n        { \"name\": \"program_state\" },\n        {\n          \"name\": \"recent_slothashes\",\n          \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n        },\n        {\n          \"name\": \"ix_sysvar\",\n          \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": { \"name\": \"PullFeedSubmitResponseConsensusLightParams\" }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"pull_feed_submit_response_many\",\n      \"discriminator\": [47, 156, 45, 25, 200, 71, 37, 215],\n      \"accounts\": [\n        { \"name\": \"queue\" },\n        { \"name\": \"program_state\" },\n        {\n          \"name\": \"recent_slothashes\",\n          \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n        },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        { \"name\": \"reward_vault\", \"writable\": true },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"token_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseManyParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"pull_feed_submit_response_svm\",\n      \"discriminator\": [123, 7, 190, 12, 220, 230, 198, 148],\n      \"accounts\": [\n        { \"name\": \"feed\", \"writable\": true },\n        {\n          \"name\": \"queue\",\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [81, 117, 101, 117, 101] },\n              { \"kind\": \"arg\", \"path\": \"params.source_queue_key\" }\n            ]\n          },\n          \"relations\": [\"feed\"]\n        },\n        { \"name\": \"program_state\" },\n        {\n          \"name\": \"recent_slothashes\",\n          \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n        },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        { \"name\": \"reward_vault\", \"writable\": true },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"token_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"PullFeedSubmitResponseSVMParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_add_mr_enclave\",\n      \"discriminator\": [199, 255, 81, 50, 60, 133, 171, 138],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"program_authority\" },\n        { \"name\": \"state\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueAddMrEnclaveParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_allow_subsidies\",\n      \"discriminator\": [94, 203, 82, 157, 188, 138, 202, 108],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] },\n        { \"name\": \"state\", \"writable\": true }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueAllowSubsidiesParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_garbage_collect\",\n      \"discriminator\": [187, 208, 104, 247, 16, 91, 96, 98],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"oracle\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"state\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueGarbageCollectParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_init\",\n      \"discriminator\": [144, 18, 99, 145, 133, 27, 207, 13],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"queue_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"account\", \"path\": \"queue\" },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n                  235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n                  245, 133, 126, 255, 0, 169\n                ]\n              },\n              { \"kind\": \"account\", \"path\": \"native_mint\" }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        { \"name\": \"authority\" },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"native_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        },\n        { \"name\": \"program_state\" },\n        { \"name\": \"lut_signer\", \"writable\": true },\n        { \"name\": \"lut\", \"writable\": true },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueInitParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_init_svm\",\n      \"discriminator\": [175, 94, 119, 151, 45, 144, 173, 235],\n      \"accounts\": [\n        {\n          \"name\": \"queue\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"const\", \"value\": [81, 117, 101, 117, 101] },\n              { \"kind\": \"arg\", \"path\": \"params.source_queue_key\" }\n            ]\n          }\n        },\n        {\n          \"name\": \"queue_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"account\", \"path\": \"queue\" },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n                  235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n                  245, 133, 126, 255, 0, 169\n                ]\n              },\n              { \"kind\": \"account\", \"path\": \"native_mint\" }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        { \"name\": \"authority\" },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"native_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        },\n        { \"name\": \"program_state\" },\n        { \"name\": \"lut_signer\", \"writable\": true },\n        { \"name\": \"lut\", \"writable\": true },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueInitSVMParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_override_svm\",\n      \"discriminator\": [43, 103, 15, 35, 89, 14, 244, 165],\n      \"accounts\": [\n        { \"name\": \"oracle\", \"writable\": true },\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"state\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueOverrideSVMParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_pay_subsidy\",\n      \"discriminator\": [85, 84, 51, 251, 144, 57, 105, 200],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"program_state\" },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        { \"name\": \"vault\" },\n        {\n          \"name\": \"reward_vault\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"account\", \"path\": \"vault\" },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n                  235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n                  245, 133, 126, 255, 0, 169\n                ]\n              },\n              { \"kind\": \"account\", \"path\": \"switch_mint\" }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"subsidy_vault\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"account\", \"path\": \"program_state\" },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n                  235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n                  245, 133, 126, 255, 0, 169\n                ]\n              },\n              { \"kind\": \"account\", \"path\": \"switch_mint\" }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"wsol_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        },\n        { \"name\": \"switch_mint\" },\n        { \"name\": \"vault_config\" },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueuePaySubsidyParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_remove_mr_enclave\",\n      \"discriminator\": [3, 64, 135, 33, 190, 133, 68, 252],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"program_authority\" },\n        { \"name\": \"state\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueRemoveMrEnclaveParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_reset_vault\",\n      \"discriminator\": [232, 255, 48, 111, 240, 168, 253, 40],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"state\" },\n        { \"name\": \"ncn\", \"relations\": [\"queue\"] },\n        { \"name\": \"vault\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueResetVaultParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_set_configs\",\n      \"discriminator\": [54, 183, 243, 199, 49, 103, 142, 48],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"state\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueSetConfigsParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_set_ncn\",\n      \"discriminator\": [232, 223, 179, 12, 20, 136, 181, 219],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"state\" },\n        { \"name\": \"ncn\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueSetNcnParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_set_vault\",\n      \"discriminator\": [48, 47, 102, 99, 241, 249, 196, 246],\n      \"accounts\": [\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"state\" },\n        { \"name\": \"ncn\", \"relations\": [\"queue\"] },\n        { \"name\": \"vault\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"QueueSetVaultParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"randomness_commit\",\n      \"discriminator\": [52, 170, 152, 201, 179, 133, 242, 141],\n      \"accounts\": [\n        { \"name\": \"randomness\", \"writable\": true },\n        { \"name\": \"queue\", \"relations\": [\"randomness\", \"oracle\"] },\n        { \"name\": \"oracle\", \"writable\": true },\n        {\n          \"name\": \"recent_slothashes\",\n          \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n        },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"randomness\"] }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"RandomnessCommitParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"randomness_init\",\n      \"discriminator\": [9, 9, 204, 33, 50, 116, 113, 15],\n      \"accounts\": [\n        { \"name\": \"randomness\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"reward_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              { \"kind\": \"account\", \"path\": \"randomness\" },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  6, 221, 246, 225, 215, 101, 161, 147, 217, 203, 225, 70, 206,\n                  235, 121, 172, 28, 180, 133, 237, 95, 91, 55, 145, 58, 140,\n                  245, 133, 126, 255, 0, 169\n                ]\n              },\n              { \"kind\": \"account\", \"path\": \"wrapped_sol_mint\" }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        { \"name\": \"authority\", \"signer\": true },\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"wrapped_sol_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        },\n        { \"name\": \"program_state\" },\n        { \"name\": \"lut_signer\" },\n        { \"name\": \"lut\", \"writable\": true },\n        {\n          \"name\": \"address_lookup_table_program\",\n          \"address\": \"AddressLookupTab1e1111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"RandomnessInitParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"randomness_reveal\",\n      \"discriminator\": [197, 181, 187, 10, 30, 58, 20, 73],\n      \"accounts\": [\n        { \"name\": \"randomness\", \"writable\": true },\n        { \"name\": \"oracle\", \"relations\": [\"randomness\"] },\n        { \"name\": \"queue\", \"relations\": [\"oracle\"] },\n        {\n          \"name\": \"stats\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  79, 114, 97, 99, 108, 101, 82, 97, 110, 100, 111, 109, 110,\n                  101, 115, 115, 83, 116, 97, 116, 115\n                ]\n              },\n              { \"kind\": \"account\", \"path\": \"oracle\" }\n            ]\n          }\n        },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"randomness\"] },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"recent_slothashes\",\n          \"address\": \"SysvarS1otHashes111111111111111111111111111\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        { \"name\": \"reward_escrow\", \"writable\": true },\n        {\n          \"name\": \"token_program\",\n          \"address\": \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"\n        },\n        {\n          \"name\": \"wrapped_sol_mint\",\n          \"address\": \"So11111111111111111111111111111111111111112\"\n        },\n        { \"name\": \"program_state\" }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"RandomnessRevealParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"state_init\",\n      \"discriminator\": [103, 241, 106, 190, 217, 153, 87, 105],\n      \"accounts\": [\n        {\n          \"name\": \"state\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [{ \"kind\": \"const\", \"value\": [83, 84, 65, 84, 69] }]\n          }\n        },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"StateInitParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"state_set_configs\",\n      \"discriminator\": [40, 98, 76, 37, 206, 9, 47, 144],\n      \"accounts\": [\n        { \"name\": \"state\", \"writable\": true },\n        { \"name\": \"authority\", \"signer\": true, \"relations\": [\"state\"] },\n        { \"name\": \"queue\", \"writable\": true },\n        { \"name\": \"payer\", \"writable\": true, \"signer\": true },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"StateSetConfigsParams\" } }\n        }\n      ]\n    },\n    {\n      \"name\": \"test_update_oracle_stats\",\n      \"discriminator\": [175, 48, 162, 252, 154, 197, 149, 187],\n      \"accounts\": [\n        {\n          \"name\": \"oracle_stats\",\n          \"docs\": [\"The OracleStats account to update.\"],\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": { \"defined\": { \"name\": \"TestUpdateOracleStatsParams\" } }\n        }\n      ]\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"OracleAccountData\",\n      \"discriminator\": [128, 30, 16, 241, 170, 73, 55, 54]\n    },\n    {\n      \"name\": \"OracleStatsAccountData\",\n      \"discriminator\": [180, 157, 178, 234, 240, 27, 152, 179]\n    },\n    {\n      \"name\": \"PullFeedAccountData\",\n      \"discriminator\": [196, 27, 108, 196, 10, 215, 219, 40]\n    },\n    {\n      \"name\": \"QueueAccountData\",\n      \"discriminator\": [217, 194, 55, 127, 184, 83, 138, 1]\n    },\n    {\n      \"name\": \"RandomnessAccountData\",\n      \"discriminator\": [10, 66, 229, 135, 220, 239, 217, 114]\n    },\n    { \"name\": \"State\", \"discriminator\": [216, 146, 107, 94, 104, 75, 182, 177] }\n  ],\n  \"events\": [\n    {\n      \"name\": \"CostWhitelistEvent\",\n      \"discriminator\": [56, 107, 191, 127, 116, 6, 138, 149]\n    },\n    {\n      \"name\": \"GarbageCollectionEvent\",\n      \"discriminator\": [232, 235, 2, 188, 8, 143, 145, 237]\n    },\n    {\n      \"name\": \"GuardianQuoteVerifyEvent\",\n      \"discriminator\": [31, 37, 39, 6, 214, 186, 33, 115]\n    },\n    {\n      \"name\": \"OracleHeartbeatEvent\",\n      \"discriminator\": [52, 29, 166, 2, 94, 7, 188, 13]\n    },\n    {\n      \"name\": \"OracleInitEvent\",\n      \"discriminator\": [89, 193, 219, 200, 1, 83, 167, 24]\n    },\n    {\n      \"name\": \"OracleQuoteOverrideEvent\",\n      \"discriminator\": [78, 204, 191, 210, 164, 196, 244, 65]\n    },\n    {\n      \"name\": \"OracleQuoteRotateEvent\",\n      \"discriminator\": [26, 189, 196, 192, 225, 127, 26, 228]\n    },\n    {\n      \"name\": \"OracleQuoteVerifyRequestEvent\",\n      \"discriminator\": [203, 209, 79, 0, 20, 71, 226, 202]\n    },\n    {\n      \"name\": \"PermissionSetEvent\",\n      \"discriminator\": [148, 86, 123, 0, 102, 20, 119, 206]\n    },\n    {\n      \"name\": \"PullFeedErrorValueEvent\",\n      \"discriminator\": [225, 80, 192, 95, 14, 12, 83, 192]\n    },\n    {\n      \"name\": \"PullFeedValueEvents\",\n      \"discriminator\": [86, 7, 231, 28, 122, 161, 117, 69]\n    },\n    {\n      \"name\": \"QueueAddMrEnclaveEvent\",\n      \"discriminator\": [170, 186, 175, 38, 216, 51, 69, 175]\n    },\n    {\n      \"name\": \"QueueInitEvent\",\n      \"discriminator\": [44, 137, 99, 227, 107, 8, 30, 105]\n    },\n    {\n      \"name\": \"QueueRemoveMrEnclaveEvent\",\n      \"discriminator\": [4, 105, 196, 60, 84, 122, 203, 196]\n    },\n    {\n      \"name\": \"RandomnessCommitEvent\",\n      \"discriminator\": [88, 60, 172, 90, 112, 10, 206, 147]\n    }\n  ],\n  \"errors\": [\n    { \"code\": 6000, \"name\": \"GenericError\" },\n    { \"code\": 6001, \"name\": \"InvalidQuote\" },\n    { \"code\": 6002, \"name\": \"InsufficientQueue\" },\n    { \"code\": 6003, \"name\": \"QueueFull\" },\n    { \"code\": 6004, \"name\": \"InvalidEnclaveSigner\" },\n    { \"code\": 6005, \"name\": \"InvalidSigner\" },\n    { \"code\": 6006, \"name\": \"MrEnclaveAlreadyExists\" },\n    { \"code\": 6007, \"name\": \"MrEnclaveAtCapacity\" },\n    { \"code\": 6008, \"name\": \"MrEnclaveDoesntExist\" },\n    { \"code\": 6009, \"name\": \"PermissionDenied\" },\n    { \"code\": 6010, \"name\": \"InvalidQueue\" },\n    { \"code\": 6011, \"name\": \"IncorrectMrEnclave\" },\n    { \"code\": 6012, \"name\": \"InvalidAuthority\" },\n    { \"code\": 6013, \"name\": \"InvalidMrEnclave\" },\n    { \"code\": 6014, \"name\": \"InvalidTimestamp\" },\n    { \"code\": 6015, \"name\": \"InvalidOracleIdx\" },\n    { \"code\": 6016, \"name\": \"InvalidSecpSignature\" },\n    { \"code\": 6017, \"name\": \"InvalidGuardianQueue\" },\n    { \"code\": 6018, \"name\": \"InvalidIndex\" },\n    { \"code\": 6019, \"name\": \"InvalidOracleQueue\" },\n    { \"code\": 6020, \"name\": \"InvalidPermission\" },\n    { \"code\": 6021, \"name\": \"InvalidePermissionedAccount\" },\n    { \"code\": 6022, \"name\": \"InvalidEpochRotate\" },\n    { \"code\": 6023, \"name\": \"InvalidEpochFinalize\" },\n    { \"code\": 6024, \"name\": \"InvalidEscrow\" },\n    { \"code\": 6025, \"name\": \"IllegalOracle\" },\n    { \"code\": 6026, \"name\": \"IllegalExecuteAttempt\" },\n    { \"code\": 6027, \"name\": \"IllegalFeedValue\" },\n    { \"code\": 6028, \"name\": \"InvalidOracleFeedStats\" },\n    { \"code\": 6029, \"name\": \"InvalidStateAuthority\" },\n    { \"code\": 6030, \"name\": \"NotEnoughSamples\" },\n    { \"code\": 6031, \"name\": \"OracleIsVerified\" },\n    { \"code\": 6032, \"name\": \"QueueIsEmpty\" },\n    { \"code\": 6033, \"name\": \"SecpRecoverFailure\" },\n    { \"code\": 6034, \"name\": \"StaleSample\" },\n    { \"code\": 6035, \"name\": \"SwitchboardRandomnessTooOld\" },\n    { \"code\": 6036, \"name\": \"EpochIdMismatch\" },\n    { \"code\": 6037, \"name\": \"GuardianAlreadyVoted\" },\n    { \"code\": 6038, \"name\": \"RandomnessNotRequested\" },\n    { \"code\": 6039, \"name\": \"InvalidSlotNumber\" },\n    { \"code\": 6040, \"name\": \"RandomnessOracleKeyExpired\" },\n    { \"code\": 6041, \"name\": \"InvalidAdvisory\" },\n    { \"code\": 6042, \"name\": \"InvalidOracleStats\" },\n    { \"code\": 6043, \"name\": \"InvalidStakeProgram\" },\n    { \"code\": 6044, \"name\": \"InvalidStakePool\" },\n    { \"code\": 6045, \"name\": \"InvalidDelegationPool\" },\n    { \"code\": 6046, \"name\": \"UnparsableAccount\" },\n    { \"code\": 6047, \"name\": \"InvalidInstruction\" },\n    { \"code\": 6048, \"name\": \"OracleAlreadyVerified\" },\n    { \"code\": 6049, \"name\": \"GuardianNotVerified\" },\n    { \"code\": 6050, \"name\": \"InvalidConstraint\" },\n    { \"code\": 6051, \"name\": \"InvalidDelegationGroup\" },\n    { \"code\": 6052, \"name\": \"OracleKeyNotFound\" },\n    { \"code\": 6053, \"name\": \"GuardianReregisterAttempt\" },\n    { \"code\": 6054, \"name\": \"InvalidManySubmissionCount\" },\n    { \"code\": 6055, \"name\": \"MissingSecpIx\" },\n    { \"code\": 6056, \"name\": \"ChecksumMismatch\" },\n    { \"code\": 6057, \"name\": \"InvalidSubmissionFeedsCount\" },\n    { \"code\": 6058, \"name\": \"InvalidSecpSignatureOraclesCount\" },\n    { \"code\": 6059, \"name\": \"InvalidEthAddress\" },\n    { \"code\": 6060, \"name\": \"NoLutKeysAdded\" },\n    { \"code\": 6061, \"name\": \"InvalidVaultOperatorDelegation\" },\n    { \"code\": 6062, \"name\": \"InvalidVaultTokenAccount\" },\n    { \"code\": 6063, \"name\": \"InvalidRemainingAccounts\" },\n    { \"code\": 6064, \"name\": \"SubsidiesNotAllowed\" },\n    { \"code\": 6065, \"name\": \"MissingVod\" },\n    { \"code\": 6066, \"name\": \"InvalidVodEpoch\" },\n    { \"code\": 6067, \"name\": \"InvalidOracleSubsidyWallet\" },\n    { \"code\": 6068, \"name\": \"InvalidOperator\" },\n    { \"code\": 6069, \"name\": \"Max128SampleValue\" },\n    { \"code\": 6070, \"name\": \"RewardAlreadyPaid\" }\n  ],\n  \"types\": [\n    {\n      \"name\": \"CompactResult\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"std_dev\",\n            \"docs\": [\n              \"The standard deviation of the submissions needed for quorom size\"\n            ],\n            \"type\": \"f32\"\n          },\n          {\n            \"name\": \"mean\",\n            \"docs\": [\"The mean of the submissions needed for quorom size\"],\n            \"type\": \"f32\"\n          },\n          {\n            \"name\": \"slot\",\n            \"docs\": [\"The slot at which this value was signed.\"],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CostWhitelistEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"feeds\", \"type\": { \"vec\": \"pubkey\" } },\n          { \"name\": \"oracles\", \"type\": { \"vec\": \"pubkey\" } },\n          { \"name\": \"values\", \"type\": { \"vec\": { \"vec\": \"i128\" } } },\n          { \"name\": \"reward\", \"type\": \"u32\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"CurrentResult\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"value\",\n            \"docs\": [\n              \"The median value of the submissions needed for quorom size\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"std_dev\",\n            \"docs\": [\n              \"The standard deviation of the submissions needed for quorom size\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"mean\",\n            \"docs\": [\"The mean of the submissions needed for quorom size\"],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"range\",\n            \"docs\": [\"The range of the submissions needed for quorom size\"],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"min_value\",\n            \"docs\": [\n              \"The minimum value of the submissions needed for quorom size\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"max_value\",\n            \"docs\": [\n              \"The maximum value of the submissions needed for quorom size\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"num_samples\",\n            \"docs\": [\"The number of samples used to calculate this result\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"submission_idx\",\n            \"docs\": [\n              \"The index of the submission that was used to calculate this result\"\n            ],\n            \"type\": \"u8\"\n          },\n          { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 6] } },\n          {\n            \"name\": \"slot\",\n            \"docs\": [\"The slot at which this value was signed.\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_slot\",\n            \"docs\": [\n              \"The slot at which the first considered submission was made\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_slot\",\n            \"docs\": [\n              \"The slot at which the last considered submission was made\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"GarbageCollectionEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"oracle\", \"type\": \"pubkey\" },\n          { \"name\": \"queue\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"GuardianQuoteVerifyEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"quote\", \"type\": \"pubkey\" },\n          { \"name\": \"queue\", \"type\": \"pubkey\" },\n          { \"name\": \"oracle\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"GuardianQuoteVerifyParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"timestamp\", \"type\": \"i64\" },\n          { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"_reserved1\", \"type\": \"u32\" },\n          { \"name\": \"ed25519_key\", \"type\": \"pubkey\" },\n          { \"name\": \"secp256k1_key\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"slot\", \"type\": \"u64\" },\n          { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"recovery_id\", \"type\": \"u8\" },\n          { \"name\": \"advisories\", \"type\": { \"vec\": \"u32\" } }\n        ]\n      }\n    },\n    {\n      \"name\": \"GuardianRegisterParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [] }\n    },\n    {\n      \"name\": \"GuardianUnregisterParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [] }\n    },\n    {\n      \"name\": \"MegaSlotInfo\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"reserved1\", \"type\": \"u64\" },\n          { \"name\": \"slot_end\", \"type\": \"u64\" },\n          { \"name\": \"perf_goal\", \"type\": \"i64\" },\n          { \"name\": \"current_signature_count\", \"type\": \"i64\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"MultiSubmission\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } },\n          { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"recovery_id\", \"type\": \"u8\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleAccountData\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"enclave\",\n            \"docs\": [\"Represents the state of the quote verifiers enclave.\"],\n            \"type\": { \"defined\": { \"name\": \"Quote\" } }\n          },\n          {\n            \"name\": \"authority\",\n            \"docs\": [\n              \"The authority of the EnclaveAccount which is permitted to make account changes.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"queue\",\n            \"docs\": [\n              \"Queue used for attestation to verify a MRENCLAVE measurement.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"created_at\",\n            \"docs\": [\"The unix timestamp when the quote was created.\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_heartbeat\",\n            \"docs\": [\"The last time the quote heartbeated on-chain.\"],\n            \"type\": \"i64\"\n          },\n          { \"name\": \"secp_authority\", \"type\": { \"array\": [\"u8\", 64] } },\n          {\n            \"name\": \"gateway_uri\",\n            \"docs\": [\"URI location of the verifier's gateway.\"],\n            \"type\": { \"array\": [\"u8\", 64] }\n          },\n          { \"name\": \"permissions\", \"type\": \"u64\" },\n          {\n            \"name\": \"is_on_queue\",\n            \"docs\": [\n              \"Whether the quote is located on the AttestationQueues buffer.\"\n            ],\n            \"type\": \"u8\"\n          },\n          { \"name\": \"_padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n          { \"name\": \"lut_slot\", \"type\": \"u64\" },\n          { \"name\": \"last_reward_epoch\", \"type\": \"u64\" },\n          { \"name\": \"operator\", \"type\": \"pubkey\" },\n          { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 16] } },\n          { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 1024] } }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleEpochInfo\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"id\", \"type\": \"u64\" },\n          { \"name\": \"reserved1\", \"type\": \"u64\" },\n          { \"name\": \"_reserved\", \"type\": \"u64\" },\n          { \"name\": \"slash_score\", \"type\": \"u64\" },\n          { \"name\": \"reward_score\", \"type\": \"u64\" },\n          { \"name\": \"stake_score\", \"type\": \"u64\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleHeartbeatEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"oracle\", \"type\": \"pubkey\" },\n          { \"name\": \"queue\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleHeartbeatParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"gateway_uri\",\n            \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleHeartbeatV2Params\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"gateway_uri\",\n            \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleInitEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"oracle\", \"type\": \"pubkey\" }]\n      }\n    },\n    {\n      \"name\": \"OracleInitParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"recent_slot\", \"type\": \"u64\" },\n          { \"name\": \"authority\", \"type\": \"pubkey\" },\n          { \"name\": \"queue\", \"type\": \"pubkey\" },\n          {\n            \"name\": \"secp_authority\",\n            \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleInitSVMParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"recent_slot\", \"type\": \"u64\" },\n          { \"name\": \"authority\", \"type\": \"pubkey\" },\n          { \"name\": \"queue\", \"type\": \"pubkey\" },\n          {\n            \"name\": \"secp_authority\",\n            \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n          },\n          { \"name\": \"source_oracle_key\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleQuoteOverrideEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"oracle\", \"type\": \"pubkey\" },\n          { \"name\": \"queue\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleQuoteRotateEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"oracle\", \"type\": \"pubkey\" }]\n      }\n    },\n    {\n      \"name\": \"OracleQuoteVerifyRequestEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"quote\", \"type\": \"pubkey\" },\n          { \"name\": \"oracle\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleResetLutParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"recent_slot\", \"type\": \"u64\" }]\n      }\n    },\n    {\n      \"name\": \"OracleSetConfigsParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"new_authority\", \"type\": { \"option\": \"pubkey\" } },\n          {\n            \"name\": \"new_secp_authority\",\n            \"type\": { \"option\": { \"array\": [\"u8\", 64] } }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleSetOperatorParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [] }\n    },\n    {\n      \"name\": \"OracleStatsAccountData\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"owner\", \"type\": \"pubkey\" },\n          { \"name\": \"oracle\", \"type\": \"pubkey\" },\n          {\n            \"name\": \"finalized_epoch\",\n            \"docs\": [\n              \"The last epoch that has completed. cleared after registered with the\",\n              \"staking program.\"\n            ],\n            \"type\": { \"defined\": { \"name\": \"OracleEpochInfo\" } }\n          },\n          {\n            \"name\": \"current_epoch\",\n            \"docs\": [\n              \"The current epoch info being used by the oracle. for stake. Will moved\",\n              \"to finalized_epoch as soon as the epoch is over.\"\n            ],\n            \"type\": { \"defined\": { \"name\": \"OracleEpochInfo\" } }\n          },\n          {\n            \"name\": \"mega_slot_info\",\n            \"type\": { \"defined\": { \"name\": \"MegaSlotInfo\" } }\n          },\n          { \"name\": \"last_transfer_slot\", \"type\": \"u64\" },\n          { \"name\": \"bump\", \"type\": \"u8\" },\n          { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n          {\n            \"name\": \"_ebuf\",\n            \"docs\": [\"Reserved.\"],\n            \"type\": { \"array\": [\"u8\", 1024] }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleSubmission\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"oracle\",\n            \"docs\": [\"The public key of the oracle that submitted this value.\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"slot\",\n            \"docs\": [\"The slot at which this value was signed.\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"landed_at\",\n            \"docs\": [\"The slot at which this value was landed on chain.\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"value\",\n            \"docs\": [\"The value that was submitted.\"],\n            \"type\": \"i128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleSyncLutParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [] }\n    },\n    {\n      \"name\": \"PermissionSetEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"permission\", \"type\": \"pubkey\" }]\n      }\n    },\n    {\n      \"name\": \"PermissionSetParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"permission\", \"type\": \"u8\" },\n          { \"name\": \"enable\", \"type\": \"bool\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedAccountData\",\n      \"docs\": [\"A representation of the data in a pull feed account.\"],\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"submissions\",\n            \"docs\": [\"The oracle submissions for this feed.\"],\n            \"type\": {\n              \"array\": [{ \"defined\": { \"name\": \"OracleSubmission\" } }, 32]\n            }\n          },\n          {\n            \"name\": \"authority\",\n            \"docs\": [\n              \"The public key of the authority that can update the feed hash that\",\n              \"this account will use for registering updates.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"queue\",\n            \"docs\": [\n              \"The public key of the queue which oracles must be bound to in order to\",\n              \"submit data to this feed.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"feed_hash\",\n            \"docs\": [\n              \"SHA-256 hash of the job schema oracles will execute to produce data\",\n              \"for this feed.\"\n            ],\n            \"type\": { \"array\": [\"u8\", 32] }\n          },\n          {\n            \"name\": \"initialized_at\",\n            \"docs\": [\"The slot at which this account was initialized.\"],\n            \"type\": \"i64\"\n          },\n          { \"name\": \"permissions\", \"type\": \"u64\" },\n          { \"name\": \"max_variance\", \"type\": \"u64\" },\n          { \"name\": \"min_responses\", \"type\": \"u32\" },\n          { \"name\": \"name\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 1] } },\n          { \"name\": \"permit_write_by_authority\", \"type\": \"u8\" },\n          { \"name\": \"historical_result_idx\", \"type\": \"u8\" },\n          { \"name\": \"min_sample_size\", \"type\": \"u8\" },\n          { \"name\": \"last_update_timestamp\", \"type\": \"i64\" },\n          { \"name\": \"lut_slot\", \"type\": \"u64\" },\n          { \"name\": \"_reserved1\", \"type\": { \"array\": [\"u8\", 32] } },\n          {\n            \"name\": \"result\",\n            \"type\": { \"defined\": { \"name\": \"CurrentResult\" } }\n          },\n          { \"name\": \"max_staleness\", \"type\": \"u32\" },\n          { \"name\": \"padding2\", \"type\": { \"array\": [\"u8\", 12] } },\n          {\n            \"name\": \"historical_results\",\n            \"type\": {\n              \"array\": [{ \"defined\": { \"name\": \"CompactResult\" } }, 32]\n            }\n          },\n          { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 8] } },\n          { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 24] } },\n          { \"name\": \"submission_timestamps\", \"type\": { \"array\": [\"i64\", 32] } }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedCloseParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [] }\n    },\n    {\n      \"name\": \"PullFeedErrorValueEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"feed\", \"type\": \"pubkey\" },\n          { \"name\": \"oracle\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedInitParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"feed_hash\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"max_variance\", \"type\": \"u64\" },\n          { \"name\": \"min_responses\", \"type\": \"u32\" },\n          { \"name\": \"name\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"recent_slot\", \"type\": \"u64\" },\n          { \"name\": \"ipfs_hash\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"min_sample_size\", \"type\": \"u8\" },\n          { \"name\": \"max_staleness\", \"type\": \"u32\" },\n          { \"name\": \"permit_write_by_authority\", \"type\": { \"option\": \"bool\" } }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedSetConfigsParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"feed_hash\",\n            \"type\": { \"option\": { \"array\": [\"u8\", 32] } }\n          },\n          { \"name\": \"authority\", \"type\": { \"option\": \"pubkey\" } },\n          { \"name\": \"max_variance\", \"type\": { \"option\": \"u64\" } },\n          { \"name\": \"min_responses\", \"type\": { \"option\": \"u32\" } },\n          { \"name\": \"name\", \"type\": { \"option\": { \"array\": [\"u8\", 32] } } },\n          {\n            \"name\": \"ipfs_hash\",\n            \"type\": { \"option\": { \"array\": [\"u8\", 32] } }\n          },\n          { \"name\": \"min_sample_size\", \"type\": { \"option\": \"u8\" } },\n          { \"name\": \"max_staleness\", \"type\": { \"option\": \"u32\" } },\n          { \"name\": \"permit_write_by_authority\", \"type\": { \"option\": \"bool\" } }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedSubmitResponseConsensusLightParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"slot\", \"type\": \"u64\" },\n          { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedSubmitResponseConsensusParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"slot\", \"type\": \"u64\" },\n          { \"name\": \"values\", \"type\": { \"vec\": \"i128\" } }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedSubmitResponseManyParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"slot\", \"type\": \"u64\" },\n          {\n            \"name\": \"submissions\",\n            \"type\": { \"vec\": { \"defined\": { \"name\": \"MultiSubmission\" } } }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedSubmitResponseParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"slot\", \"type\": \"u64\" },\n          {\n            \"name\": \"submissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_action::Submission\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedSubmitResponseSVMParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"slot\", \"type\": \"u64\" },\n          {\n            \"name\": \"submissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_svm_action::Submission\"\n                }\n              }\n            }\n          },\n          { \"name\": \"source_queue_key\", \"type\": \"pubkey\" },\n          { \"name\": \"queue_bump\", \"type\": \"u8\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"PullFeedValueEvents\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"feeds\", \"type\": { \"vec\": \"pubkey\" } },\n          { \"name\": \"oracles\", \"type\": { \"vec\": \"pubkey\" } },\n          { \"name\": \"values\", \"type\": { \"vec\": { \"vec\": \"i128\" } } },\n          { \"name\": \"reward\", \"type\": \"u32\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"QueueAccountData\",\n      \"docs\": [\n        \"An Queue represents a round-robin queue of oracle oracles who attest on-chain\",\n        \"whether a Switchboard Function was executed within an enclave against an expected set of\",\n        \"enclave measurements.\",\n        \"\",\n        \"For an oracle to join the queue, the oracle must first submit their enclave quote on-chain and\",\n        \"wait for an existing oracle to attest their quote. If the oracle's quote matches an expected\",\n        \"measurement within the queues mr_enclaves config, it is granted permissions and will start\",\n        \"being assigned update requests.\"\n      ],\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority\",\n            \"docs\": [\n              \"The address of the authority which is permitted to add/remove allowed enclave measurements.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mr_enclaves\",\n            \"docs\": [\"Allowed enclave measurements.\"],\n            \"type\": { \"array\": [{ \"array\": [\"u8\", 32] }, 32] }\n          },\n          {\n            \"name\": \"oracle_keys\",\n            \"docs\": [\n              \"The addresses of the quote oracles who have a valid\",\n              \"verification status and have heartbeated on-chain recently.\"\n            ],\n            \"type\": { \"array\": [\"pubkey\", 128] }\n          },\n          {\n            \"name\": \"max_quote_verification_age\",\n            \"docs\": [\n              \"The maximum allowable time until a EnclaveAccount needs to be re-verified on-chain.\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_heartbeat\",\n            \"docs\": [\n              \"The unix timestamp when the last quote oracle heartbeated on-chain.\"\n            ],\n            \"type\": \"i64\"\n          },\n          { \"name\": \"node_timeout\", \"type\": \"i64\" },\n          {\n            \"name\": \"oracle_min_stake\",\n            \"docs\": [\n              \"The minimum number of lamports a quote oracle needs to lock-up in order to heartbeat and verify other quotes.\"\n            ],\n            \"type\": \"u64\"\n          },\n          { \"name\": \"allow_authority_override_after\", \"type\": \"i64\" },\n          {\n            \"name\": \"mr_enclaves_len\",\n            \"docs\": [\"The number of allowed enclave measurements.\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"oracle_keys_len\",\n            \"docs\": [\n              \"The length of valid quote oracles for the given attestation queue.\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"reward\",\n            \"docs\": [\n              \"The reward paid to quote oracles for attesting on-chain.\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"curr_idx\",\n            \"docs\": [\n              \"Incrementer used to track the current quote oracle permitted to run any available functions.\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"gc_idx\",\n            \"docs\": [\n              \"Incrementer used to garbage collect and remove stale quote oracles.\"\n            ],\n            \"type\": \"u32\"\n          },\n          { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"u8\" },\n          { \"name\": \"require_authority_verify_permission\", \"type\": \"u8\" },\n          { \"name\": \"require_usage_permissions\", \"type\": \"u8\" },\n          { \"name\": \"signer_bump\", \"type\": \"u8\" },\n          { \"name\": \"mint\", \"type\": \"pubkey\" },\n          { \"name\": \"lut_slot\", \"type\": \"u64\" },\n          { \"name\": \"allow_subsidies\", \"type\": \"u8\" },\n          { \"name\": \"_ebuf6\", \"type\": { \"array\": [\"u8\", 15] } },\n          { \"name\": \"ncn\", \"type\": \"pubkey\" },\n          { \"name\": \"_resrved\", \"type\": \"u64\" },\n          {\n            \"name\": \"vaults\",\n            \"type\": { \"array\": [{ \"defined\": { \"name\": \"VaultInfo\" } }, 4] }\n          },\n          { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 256] } },\n          { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 512] } }\n        ]\n      }\n    },\n    {\n      \"name\": \"QueueAddMrEnclaveEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"queue\", \"type\": \"pubkey\" },\n          { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }\n        ]\n      }\n    },\n    {\n      \"name\": \"QueueAddMrEnclaveParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }]\n      }\n    },\n    {\n      \"name\": \"QueueAllowSubsidiesParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"allow_subsidies\", \"type\": \"u8\" }]\n      }\n    },\n    {\n      \"name\": \"QueueGarbageCollectParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [{ \"name\": \"idx\", \"type\": \"u32\" }] }\n    },\n    {\n      \"name\": \"QueueInitEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"queue\", \"type\": \"pubkey\" }]\n      }\n    },\n    {\n      \"name\": \"QueueInitParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"allow_authority_override_after\", \"type\": \"u32\" },\n          { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"bool\" },\n          { \"name\": \"require_usage_permissions\", \"type\": \"bool\" },\n          { \"name\": \"max_quote_verification_age\", \"type\": \"u32\" },\n          { \"name\": \"reward\", \"type\": \"u32\" },\n          { \"name\": \"node_timeout\", \"type\": \"u32\" },\n          { \"name\": \"recent_slot\", \"type\": \"u64\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"QueueInitSVMParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"allow_authority_override_after\", \"type\": \"u32\" },\n          { \"name\": \"require_authority_heartbeat_permission\", \"type\": \"bool\" },\n          { \"name\": \"require_usage_permissions\", \"type\": \"bool\" },\n          { \"name\": \"max_quote_verification_age\", \"type\": \"u32\" },\n          { \"name\": \"reward\", \"type\": \"u32\" },\n          { \"name\": \"node_timeout\", \"type\": \"u32\" },\n          { \"name\": \"recent_slot\", \"type\": \"u64\" },\n          { \"name\": \"source_queue_key\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"QueueOverrideSVMParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"secp256k1_signer\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"max_quote_verification_age\", \"type\": \"i64\" },\n          { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"slot\", \"type\": \"u64\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"QueuePaySubsidyParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [] }\n    },\n    {\n      \"name\": \"QueueRemoveMrEnclaveEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"queue\", \"type\": \"pubkey\" },\n          { \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }\n        ]\n      }\n    },\n    {\n      \"name\": \"QueueRemoveMrEnclaveParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"mr_enclave\", \"type\": { \"array\": [\"u8\", 32] } }]\n      }\n    },\n    {\n      \"name\": \"QueueResetVaultParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [] }\n    },\n    {\n      \"name\": \"QueueSetConfigsParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"authority\", \"type\": { \"option\": \"pubkey\" } },\n          { \"name\": \"reward\", \"type\": { \"option\": \"u32\" } },\n          { \"name\": \"node_timeout\", \"type\": { \"option\": \"i64\" } }\n        ]\n      }\n    },\n    { \"name\": \"QueueSetNcnParams\", \"type\": { \"kind\": \"struct\", \"fields\": [] } },\n    {\n      \"name\": \"QueueSetVaultParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"enable\", \"type\": \"bool\" }]\n      }\n    },\n    {\n      \"name\": \"Quote\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"enclave_signer\",\n            \"docs\": [\"The address of the signer generated within an enclave.\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mr_enclave\",\n            \"docs\": [\n              \"The quotes MRENCLAVE measurement dictating the contents of the secure enclave.\"\n            ],\n            \"type\": { \"array\": [\"u8\", 32] }\n          },\n          {\n            \"name\": \"verification_status\",\n            \"docs\": [\"The VerificationStatus of the quote.\"],\n            \"type\": \"u8\"\n          },\n          { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 7] } },\n          {\n            \"name\": \"verification_timestamp\",\n            \"docs\": [\"The unix timestamp when the quote was last verified.\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"valid_until\",\n            \"docs\": [\n              \"The unix timestamp when the quotes verification status expires.\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"quote_registry\",\n            \"docs\": [\n              \"The off-chain registry where the verifiers quote can be located.\"\n            ],\n            \"type\": { \"array\": [\"u8\", 32] }\n          },\n          {\n            \"name\": \"registry_key\",\n            \"docs\": [\n              \"Key to lookup the buffer data on IPFS or an alternative decentralized storage solution.\"\n            ],\n            \"type\": { \"array\": [\"u8\", 64] }\n          },\n          {\n            \"name\": \"secp256k1_signer\",\n            \"docs\": [\n              \"The secp256k1 public key of the enclave signer. Derived from the enclave_signer.\"\n            ],\n            \"type\": { \"array\": [\"u8\", 64] }\n          },\n          { \"name\": \"last_ed25519_signer\", \"type\": \"pubkey\" },\n          { \"name\": \"last_secp256k1_signer\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"last_rotate_slot\", \"type\": \"u64\" },\n          { \"name\": \"guardian_approvers\", \"type\": { \"array\": [\"pubkey\", 64] } },\n          { \"name\": \"guardian_approvers_len\", \"type\": \"u8\" },\n          { \"name\": \"padding2\", \"type\": { \"array\": [\"u8\", 7] } },\n          { \"name\": \"staging_ed25519_signer\", \"type\": \"pubkey\" },\n          {\n            \"name\": \"staging_secp256k1_signer\",\n            \"type\": { \"array\": [\"u8\", 64] }\n          },\n          { \"name\": \"eth_signer\", \"type\": { \"array\": [\"u8\", 20] } },\n          {\n            \"name\": \"_ebuf4\",\n            \"docs\": [\"Reserved.\"],\n            \"type\": { \"array\": [\"u8\", 12] }\n          },\n          { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 128] } },\n          { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 256] } },\n          { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 512] } }\n        ]\n      }\n    },\n    {\n      \"name\": \"RandomnessAccountData\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"authority\", \"type\": \"pubkey\" },\n          { \"name\": \"queue\", \"type\": \"pubkey\" },\n          { \"name\": \"seed_slothash\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"seed_slot\", \"type\": \"u64\" },\n          { \"name\": \"oracle\", \"type\": \"pubkey\" },\n          { \"name\": \"reveal_slot\", \"type\": \"u64\" },\n          { \"name\": \"value\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"lut_slot\", \"type\": \"u64\" },\n          { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 24] } },\n          { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"_ebuf1\", \"type\": { \"array\": [\"u8\", 128] } },\n          {\n            \"name\": \"active_secp256k1_signer\",\n            \"type\": { \"array\": [\"u8\", 64] }\n          },\n          { \"name\": \"active_secp256k1_expiration\", \"type\": \"i64\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"RandomnessCommitEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"randomness_account\", \"type\": \"pubkey\" },\n          { \"name\": \"oracle\", \"type\": \"pubkey\" },\n          { \"name\": \"slot\", \"type\": \"u64\" },\n          { \"name\": \"slothash\", \"type\": { \"array\": [\"u8\", 32] } }\n        ]\n      }\n    },\n    {\n      \"name\": \"RandomnessCommitParams\",\n      \"type\": { \"kind\": \"struct\", \"fields\": [] }\n    },\n    {\n      \"name\": \"RandomnessInitParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"recent_slot\", \"type\": \"u64\" }]\n      }\n    },\n    {\n      \"name\": \"RandomnessRevealParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"recovery_id\", \"type\": \"u8\" },\n          { \"name\": \"value\", \"type\": { \"array\": [\"u8\", 32] } }\n        ]\n      }\n    },\n    {\n      \"name\": \"State\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"bump\", \"type\": \"u8\" },\n          { \"name\": \"test_only_disable_mr_enclave_check\", \"type\": \"u8\" },\n          { \"name\": \"enable_staking\", \"type\": \"u8\" },\n          { \"name\": \"padding1\", \"type\": { \"array\": [\"u8\", 5] } },\n          { \"name\": \"authority\", \"type\": \"pubkey\" },\n          { \"name\": \"guardian_queue\", \"type\": \"pubkey\" },\n          { \"name\": \"reserved1\", \"type\": \"u64\" },\n          { \"name\": \"epoch_length\", \"type\": \"u64\" },\n          { \"name\": \"reserved2\", \"type\": { \"array\": [\"u8\", 136] } },\n          { \"name\": \"switch_mint\", \"type\": \"pubkey\" },\n          { \"name\": \"sgx_advisories\", \"type\": { \"array\": [\"u16\", 32] } },\n          { \"name\": \"advisories_len\", \"type\": \"u8\" },\n          { \"name\": \"padding2\", \"type\": \"u8\" },\n          { \"name\": \"flat_reward_cut_percentage\", \"type\": \"u8\" },\n          { \"name\": \"enable_slashing\", \"type\": \"u8\" },\n          { \"name\": \"padding3\", \"type\": \"u32\" },\n          { \"name\": \"lut_slot\", \"type\": \"u64\" },\n          { \"name\": \"base_reward\", \"type\": \"u32\" },\n          { \"name\": \"padding4\", \"type\": { \"array\": [\"u8\", 4] } },\n          { \"name\": \"subsidy_amount\", \"type\": \"u64\" },\n          { \"name\": \"_ebuf6\", \"type\": { \"array\": [\"u8\", 16] } },\n          { \"name\": \"_ebuf5\", \"type\": { \"array\": [\"u8\", 32] } },\n          { \"name\": \"_ebuf4\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"_ebuf3\", \"type\": { \"array\": [\"u8\", 128] } },\n          { \"name\": \"_ebuf2\", \"type\": { \"array\": [\"u8\", 512] } },\n          {\n            \"name\": \"cost_whitelist\",\n            \"docs\": [\"Cost whitelist by authority\"],\n            \"type\": { \"array\": [\"pubkey\", 32] }\n          }\n        ]\n      }\n    },\n    { \"name\": \"StateInitParams\", \"type\": { \"kind\": \"struct\", \"fields\": [] } },\n    {\n      \"name\": \"StateSetConfigsParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"new_authority\", \"type\": \"pubkey\" },\n          { \"name\": \"test_only_disable_mr_enclave_check\", \"type\": \"u8\" },\n          { \"name\": \"add_advisory\", \"type\": \"u16\" },\n          { \"name\": \"rm_advisory\", \"type\": \"u16\" },\n          { \"name\": \"switch_mint\", \"type\": \"pubkey\" },\n          { \"name\": \"subsidy_amount\", \"type\": \"u64\" },\n          { \"name\": \"base_reward\", \"type\": \"u32\" },\n          { \"name\": \"add_cost_wl\", \"type\": \"pubkey\" },\n          { \"name\": \"rm_cost_wl\", \"type\": \"pubkey\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"TestUpdateOracleStatsParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [{ \"name\": \"new_reward_score\", \"type\": \"u64\" }]\n      }\n    },\n    {\n      \"name\": \"VaultInfo\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": { \"kind\": \"c\" },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"vault_key\", \"type\": \"pubkey\" },\n          { \"name\": \"last_reward_epoch\", \"type\": \"u64\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_action::Submission\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"value\", \"type\": \"i128\" },\n          { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"recovery_id\", \"type\": \"u8\" },\n          { \"name\": \"offset\", \"type\": \"u8\" }\n        ]\n      }\n    },\n    {\n      \"name\": \"sb_on_demand::actions::pull_feed::pull_feed_submit_response_svm_action::Submission\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          { \"name\": \"value\", \"type\": \"i128\" },\n          { \"name\": \"signature\", \"type\": { \"array\": [\"u8\", 64] } },\n          { \"name\": \"recovery_id\", \"type\": \"u8\" }\n        ]\n      }\n    }\n  ]\n}\n","import { BorshCoder, Idl, Program, Provider } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport SWB_ONDEMAND_IDL from \"./idl.json\";\n\nexport const SWITCHBOARD_ONDEMANDE_PRICE_PRECISION = 18;\n\nexport interface CurrentResult {\n  value: BN;\n  std_dev: BN;\n  mean: BN;\n  range: BN;\n  min_value: BN;\n  max_vaalue: BN;\n  slot: BN;\n  min_slot: BN;\n  max_slot: BN;\n}\n\nexport interface OracleSubmission {\n  oracle: PublicKey;\n  slot: BN;\n  value: BN;\n}\n\nexport interface PullFeedAccountData {\n  submissions: OracleSubmission[];\n  authority: PublicKey;\n  queue: PublicKey;\n  feed_hash: Buffer;\n  initialized_at: BN;\n  permissions: BN;\n  max_variance: BN;\n  min_responses: number;\n  name: Buffer;\n  sample_size: number;\n  last_update_timestamp: BN;\n  lut_slot: BN;\n  result: CurrentResult;\n  max_staleness: number;\n  min_sample_size: number;\n}\n\nexport type CrossbarSimulatePayload = FeedResponse[];\n\nexport interface FeedResponse {\n  feedHash: string;\n  results: number[];\n}\n\nexport const switchboardAccountCoder = new BorshCoder(SWB_ONDEMAND_IDL as unknown as Idl);\nexport function getSwitchboardProgram(provider: Provider): Program {\n  return new Program(SWB_ONDEMAND_IDL as unknown as Idl, provider);\n}\n\nexport function decodeSwitchboardPullFeedData(data: Buffer): PullFeedAccountData {\n  const pullFeedDAta = switchboardAccountCoder.accounts.decode(\"PullFeedAccountData\", data);\n  return pullFeedDAta;\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport BigNumber from \"bignumber.js\";\n\nexport const SCOPE_PROGRAM_ID = new PublicKey(\"HFn8GnPADiny6XqUoWE8uRPPxb29ikn4yTuPa9MF2fWJ\");\n\n// sha256(\"account:OraclePrices\")[..8]\nexport const SCOPE_ORACLE_PRICES_DISCRIMINATOR = Buffer.from([89, 128, 118, 221, 6, 72, 180, 146]);\n\nexport const SCOPE_MAX_ENTRIES = 512;\n\n// OraclePrices layout: 8 (discriminator) + 32 (oracle_mappings) + 512 * 56 (DatedPrice entries)\nconst ENTRIES_OFFSET = 40;\nconst DATED_PRICE_SIZE = 56;\nexport const SCOPE_ORACLE_PRICES_SIZE = ENTRIES_OFFSET + SCOPE_MAX_ENTRIES * DATED_PRICE_SIZE;\n\nexport interface ScopeDatedPrice {\n  /** Decimal price, i.e. `value / 10^exp` */\n  price: BigNumber;\n  lastUpdatedSlot: number;\n  unixTimestamp: number;\n}\n\n/**\n * Decodes one `DatedPrice` entry out of a Scope `OraclePrices` account.\n * DatedPrice layout: price.value u64, price.exp u64, last_updated_slot u64, unix_timestamp u64,\n * generic_data [u8; 24].\n */\nexport function decodeScopePriceAtIndex(data: Buffer, entryIndex: number): ScopeDatedPrice {\n  if (data.length !== SCOPE_ORACLE_PRICES_SIZE) {\n    throw new Error(`Invalid Scope OraclePrices account size: ${data.length}`);\n  }\n  if (!data.subarray(0, 8).equals(SCOPE_ORACLE_PRICES_DISCRIMINATOR)) {\n    throw new Error(\"Invalid Scope OraclePrices discriminator\");\n  }\n  if (entryIndex < 0 || entryIndex >= SCOPE_MAX_ENTRIES) {\n    throw new Error(`Scope entry index out of range: ${entryIndex}`);\n  }\n\n  const offset = ENTRIES_OFFSET + entryIndex * DATED_PRICE_SIZE;\n  const value = data.readBigUInt64LE(offset);\n  const exp = data.readBigUInt64LE(offset + 8);\n  const lastUpdatedSlot = data.readBigUInt64LE(offset + 16);\n  const unixTimestamp = data.readBigUInt64LE(offset + 24);\n\n  // Same bound as the program's MAX_EXP_10_I80F48\n  if (exp >= 24n) {\n    throw new Error(`Scope entry exponent out of bounds: ${exp}`);\n  }\n\n  const price = new BigNumber(value.toString()).shiftedBy(-Number(exp));\n\n  return {\n    price,\n    lastUpdatedSlot: Number(lastUpdatedSlot),\n    unixTimestamp: Number(unixTimestamp),\n  };\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport BigNumber from \"bignumber.js\";\n\nexport const MARINADE_PROGRAM_ID = new PublicKey(\"MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD\");\n\n// sha256(\"account:State\")[..8]\nexport const MARINADE_STATE_DISCRIMINATOR = Buffer.from([216, 146, 107, 94, 104, 75, 182, 177]);\n\n// Absolute byte offsets in Marinade's State account, including the 8-byte Anchor discriminator.\n// These are the fields used by Marinade's `total_virtual_staked_lamports` calculation and by the\n// marginfi program's canonical mSOL/SOL multiplier.\nconst DELAYED_UNSTAKE_COOLING_DOWN_OFFSET = 226;\nconst TOTAL_ACTIVE_BALANCE_OFFSET = 376;\nconst AVAILABLE_RESERVE_BALANCE_OFFSET = 496;\nconst MSOL_SUPPLY_OFFSET = 504;\nconst CIRCULATING_TICKET_BALANCE_OFFSET = 528;\nconst EMERGENCY_COOLING_DOWN_OFFSET = 568;\nexport const MARINADE_STATE_MIN_SIZE = EMERGENCY_COOLING_DOWN_OFFSET + 8;\nconst U64_MAX = (1n << 64n) - 1n;\n\n// Same sanity ceiling as the program's MAX_LST_SOL_RATE\nconst MAX_MSOL_SOL_RATE = 3;\n\nexport interface MarinadeState {\n  /** mSOL/SOL exchange rate */\n  msolPrice: BigNumber;\n}\n\nexport function decodeMarinadeState(data: Buffer): MarinadeState {\n  if (data.length < MARINADE_STATE_MIN_SIZE) {\n    throw new Error(`Invalid Marinade State account size: ${data.length}`);\n  }\n  if (!data.subarray(0, 8).equals(MARINADE_STATE_DISCRIMINATOR)) {\n    throw new Error(\"Invalid Marinade State discriminator\");\n  }\n\n  const delayedUnstakeCoolingDown = data.readBigUInt64LE(DELAYED_UNSTAKE_COOLING_DOWN_OFFSET);\n  const totalActiveBalance = data.readBigUInt64LE(TOTAL_ACTIVE_BALANCE_OFFSET);\n  const availableReserveBalance = data.readBigUInt64LE(AVAILABLE_RESERVE_BALANCE_OFFSET);\n  const msolSupply = data.readBigUInt64LE(MSOL_SUPPLY_OFFSET);\n  const circulatingTicketBalance = data.readBigUInt64LE(CIRCULATING_TICKET_BALANCE_OFFSET);\n  const emergencyCoolingDown = data.readBigUInt64LE(EMERGENCY_COOLING_DOWN_OFFSET);\n\n  if (msolSupply === 0n) {\n    throw new Error(\"Marinade State has zero mSOL supply\");\n  }\n\n  const underControl =\n    totalActiveBalance + delayedUnstakeCoolingDown + emergencyCoolingDown + availableReserveBalance;\n  if (underControl > U64_MAX) {\n    throw new Error(\"Marinade virtual staked balance overflow\");\n  }\n\n  // Marinade uses saturating subtraction for outstanding delayed-unstake tickets.\n  const totalVirtualStakedLamports =\n    underControl > circulatingTicketBalance ? underControl - circulatingTicketBalance : 0n;\n  const msolPrice = new BigNumber(totalVirtualStakedLamports.toString()).div(msolSupply.toString());\n\n  if (!msolPrice.gt(0) || msolPrice.gte(MAX_MSOL_SOL_RATE)) {\n    throw new Error(`Marinade mSOL/SOL rate out of bounds: ${msolPrice.toString()}`);\n  }\n\n  return { msolPrice };\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport BigNumber from \"bignumber.js\";\n\nexport const SPL_STAKE_POOL_PROGRAM_ID = new PublicKey(\n  \"SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy\"\n);\nexport const SANCTUM_SPL_STAKE_POOL_PROGRAM_ID = new PublicKey(\n  \"SP12tWFxD9oJsVWNavTTBZvMbA6gkAmxtVgxdqvyvhY\"\n);\nexport const SANCTUM_SPL_MULTI_STAKE_POOL_PROGRAM_ID = new PublicKey(\n  \"SPMBzsVUuoHA4Jm6KunbsotaahvVikZs1JyTW6iJvbn\"\n);\n\n// StakePool is borsh-serialized from byte 0: account_type u8 @0, then 8 pubkeys + a bump byte,\n// then total_lamports u64 @258, pool_token_supply u64 @266, last_update_epoch u64 @274.\nconst ACCOUNT_TYPE_STAKE_POOL = 1;\nconst TOTAL_LAMPORTS_OFFSET = 258;\nconst POOL_TOKEN_SUPPLY_OFFSET = 266;\nconst LAST_UPDATE_EPOCH_OFFSET = 274;\nconst MAX_LST_SOL_RATE = 3;\n\nexport interface StakePool {\n  totalLamports: bigint;\n  poolTokenSupply: bigint;\n  lastUpdateEpoch: number;\n  /** LST/SOL exchange rate, i.e. `total_lamports / pool_token_supply` */\n  exchangeRate: BigNumber;\n}\n\nexport function decodeStakePool(data: Buffer): StakePool {\n  if (data.length < LAST_UPDATE_EPOCH_OFFSET + 8) {\n    throw new Error(`Invalid StakePool account size: ${data.length}`);\n  }\n  if (data[0] !== ACCOUNT_TYPE_STAKE_POOL) {\n    throw new Error(`Invalid StakePool account type: ${data[0]}`);\n  }\n\n  const totalLamports = data.readBigUInt64LE(TOTAL_LAMPORTS_OFFSET);\n  const poolTokenSupply = data.readBigUInt64LE(POOL_TOKEN_SUPPLY_OFFSET);\n  const lastUpdateEpoch = Number(data.readBigUInt64LE(LAST_UPDATE_EPOCH_OFFSET));\n\n  if (poolTokenSupply === 0n) {\n    throw new Error(\"StakePool has zero token supply\");\n  }\n\n  const exchangeRate = new BigNumber(totalLamports.toString()).div(\n    new BigNumber(poolTokenSupply.toString())\n  );\n\n  // Same sanity bounds as the program's MAX_LST_SOL_RATE\n  if (!exchangeRate.gt(0) || exchangeRate.gte(MAX_LST_SOL_RATE)) {\n    throw new Error(`StakePool LST/SOL rate out of bounds: ${exchangeRate.toString()}`);\n  }\n\n  return {\n    totalLamports,\n    poolTokenSupply,\n    lastUpdateEpoch,\n    exchangeRate,\n  };\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const KLEND_PROGRAM_ID = new PublicKey(\n  \"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD\"\n);\nexport const FARMS_PROGRAM_ID = new PublicKey(\n  \"FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr\"\n);\n\nconst MAIN_MARKET: PublicKey = new PublicKey(\n  \"7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF\"\n);\nconst MAIN_MARKET_LUT: PublicKey = new PublicKey(\n  \"284iwGtA9X9aLy3KsyV8uT2pXLARhYbiSi5SiM2g47M2\"\n);\n\n// Slot timing constants (matches Kamino SDK)\nexport const SLOTS_PER_SECOND = 2;\n\nexport const SLOTS_PER_MINUTE = SLOTS_PER_SECOND * 60;\n\nexport const SLOTS_PER_HOUR = SLOTS_PER_MINUTE * 60;\n\nexport const SLOTS_PER_DAY = SLOTS_PER_HOUR * 24;\n\nexport const SLOTS_PER_YEAR = SLOTS_PER_DAY * 365;\n\n// Wall-clock year used by the klend program for `TrueApr` reserves\n// (`SECONDS_PER_YEAR = 60 * 60 * 24 * 365`, no leap-year correction).\nexport const SECONDS_PER_YEAR = 31_536_000;\n\n// Default slot duration in milliseconds (matches klend-sdk >= 11)\nexport const DEFAULT_RECENT_SLOT_DURATION_MS = 350;\n\nexport const ONE_HUNDRED_PCT_IN_BPS = 10_000;\n\nconst klendConstants = {\n  MAIN_MARKET,\n  MAIN_MARKET_LUT,\n  KLEND_PROGRAM_ID,\n  FARMS_PROGRAM_ID,\n};\n\nexport default klendConstants;\n","import { Address, Program } from \"@coral-xyz/anchor\";\nimport { bool, struct } from \"@coral-xyz/borsh\";\nimport { AccountMeta, PublicKey, TransactionInstruction } from \"@solana/web3.js\";\n\nimport { KLEND_PROGRAM_ID } from \"./constants\";\nimport { KlendIdlType } from \"./idl\";\n\n/**\n * Refresh a generic Kamino reserve with a legacy Pyth oracle\n * @param program\n * @param reserve\n * @param market\n * @param oracle\n * @returns\n */\ntype MakeRefreshReserveIxParams = {\n  program: Program<KlendIdlType>;\n  reserve: PublicKey;\n  market: PublicKey;\n  pythOracle: PublicKey | null;\n  switchboardPriceOracle: PublicKey | null;\n  switchboardTwapOracle: PublicKey | null;\n  scopePrices: PublicKey | null;\n};\n\nconst DEFAULT_PUBLIC_KEY: PublicKey = new PublicKey(\"11111111111111111111111111111111\");\nconst NULL_PUBKEY: PublicKey = new PublicKey(\"nu11111111111111111111111111111111111111111\");\n\nfunction isNotNullPubkey(pubkey: PublicKey | null): boolean {\n  if (!pubkey) {\n    return false;\n  }\n  return !pubkey.equals(NULL_PUBKEY) && !pubkey.equals(DEFAULT_PUBLIC_KEY);\n}\n\nfunction optionalAccount(pubkey: PublicKey | null): PublicKey | null {\n  if (isNotNullPubkey(pubkey)) {\n    return pubkey;\n  } else {\n    return null;\n  }\n}\n\nconst makeRefreshReserveIx = ({\n  program,\n  reserve,\n  market,\n  pythOracle,\n  switchboardPriceOracle,\n  switchboardTwapOracle,\n  scopePrices,\n}: MakeRefreshReserveIxParams) => {\n  const ix = program.methods\n    .refreshReserve()\n    .accounts({\n      reserve: reserve,\n      lendingMarket: market,\n      pythOracle: optionalAccount(pythOracle),\n      switchboardPriceOracle: optionalAccount(switchboardPriceOracle),\n      switchboardTwapOracle: optionalAccount(switchboardTwapOracle),\n      scopePrices: optionalAccount(scopePrices),\n    })\n    .instruction();\n\n  return ix;\n};\n\n/**\n * Refresh a generic Kamino obligation\n * @param program\n * @param market\n * @param obligation\n * @param remaining - pack the reserves used in this obligation, in the order they appear, starting\n * with lending reserves. For example, a user lending USDC at index 0, SOL at index 1, borrowing\n * BONK at index 0, pass [USDC, SOL, BONK] reserves\n * @returns\n */\nexport const REFRESH_OBLIGATION_DISCRIMINATOR = Buffer.from([33, 132, 147, 228, 151, 192, 72, 89]);\n\nexport interface RefreshObligationAccounts {\n  lendingMarket: Address;\n  obligation: Address;\n}\n\nexport const makeRefreshObligationIx = (\n  lendingMarket: PublicKey,\n  obligation: PublicKey,\n  reserve: PublicKey\n): TransactionInstruction => {\n  const keys: AccountMeta[] = [\n    // lendingMarket: read-only, not a signer\n    { pubkey: lendingMarket, isSigner: false, isWritable: false },\n\n    // obligation: writable, not a signer (typical for state being updated)\n    { pubkey: obligation, isSigner: false, isWritable: true },\n\n    // any additional metas (e.g., oracles, reserves, payer signer, sysvars, etc.)\n    {\n      pubkey: reserve,\n      isSigner: false,\n      isWritable: false,\n    },\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: KLEND_PROGRAM_ID,\n    data: REFRESH_OBLIGATION_DISCRIMINATOR, // no extra encoding—just the 8-byte discriminator\n  });\n};\n\nconst REFRESH_BATCH_DISCRIMINATOR = Buffer.from([144, 110, 26, 103, 162, 204, 252, 147]);\n\ninterface RefreshReservesBatchArgs {\n  skipPriceUpdates: boolean;\n}\n\nexport const layout = struct<RefreshReservesBatchArgs>([bool(\"skipPriceUpdates\")]);\n\ntype ReserveRemainingAccounts = {\n  reserve: PublicKey;\n  lendingMarket: PublicKey;\n};\n\nexport function makeRefreshReservesBatchIx(\n  reserves: ReserveRemainingAccounts[],\n  programId: PublicKey = KLEND_PROGRAM_ID\n) {\n  const remainingAccounts = reserves.flatMap((reserve) => [\n    {\n      pubkey: reserve.reserve,\n      isSigner: false,\n      isWritable: true,\n    },\n    {\n      pubkey: reserve.lendingMarket,\n      isSigner: false,\n      isWritable: false,\n    },\n  ]);\n\n  const keys: Array<AccountMeta> = [...remainingAccounts];\n  const buffer = Buffer.alloc(1000);\n  const len = layout.encode(\n    {\n      skipPriceUpdates: true,\n    },\n    buffer\n  );\n  const data = Buffer.concat([REFRESH_BATCH_DISCRIMINATOR, buffer]).slice(0, 8 + len);\n  const ix = new TransactionInstruction({\n    programId,\n    keys,\n    data,\n  });\n  return ix;\n}\n\nconst klendInstructions = {\n  makeRefreshReserveIx,\n  makeRefreshObligationIx,\n  makeRefreshReservesBatchIx,\n};\n\nexport default klendInstructions;\n","import { Program } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nimport { KlendIdlType } from \"./idl\";\nimport klendInstructions from \"./instructions\";\nimport { KaminoReserve } from \"./types\";\n\ntype MakeRefreshingIxsParams = {\n  klendProgram: Program<KlendIdlType>;\n  // A \"bank\" in Kamino parlance\n  reserve: KaminoReserve;\n  reserveKey: PublicKey;\n  obligationKey: PublicKey;\n  program: Program<KlendIdlType>;\n};\n\nexport async function makeRefreshingIxs({\n  klendProgram,\n  reserve,\n  reserveKey,\n  obligationKey,\n}: MakeRefreshingIxsParams) {\n  const tokenInfo = reserve.config.tokenInfo;\n  const lendingMarket = reserve.lendingMarket;\n  const refreshReserveIx = await klendInstructions.makeRefreshReserveIx({\n    program: klendProgram,\n    reserve: reserveKey,\n    market: lendingMarket,\n    pythOracle: tokenInfo.pythConfiguration.price,\n    switchboardPriceOracle: tokenInfo.switchboardConfiguration.priceAggregator,\n    switchboardTwapOracle: tokenInfo.switchboardConfiguration.twapAggregator,\n    scopePrices: tokenInfo.scopeConfiguration.priceFeed,\n  });\n\n  const refreshObligationIx = klendInstructions.makeRefreshObligationIx(\n    lendingMarket,\n    obligationKey,\n    reserveKey\n  );\n\n  return [refreshReserveIx, refreshObligationIx];\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\n/**\n * Curated Kamino Reserve used throughout the codebase.\n *\n * Contains only the fields the SDK reads: market/farm addresses, the\n * liquidity and collateral state needed for cToken exchange rates and\n * deposit/withdraw instructions, and the config subset used for interest\n * rates and oracle refreshes.\n */\nexport interface KaminoReserve {\n  /** Lending market address */\n  lendingMarket: PublicKey;\n  farmCollateral: PublicKey;\n  /** Reserve liquidity */\n  liquidity: KaminoReserveLiquidity;\n  /** Reserve collateral */\n  collateral: KaminoReserveCollateral;\n  /** Reserve configuration values */\n  config: KaminoReserveConfig;\n}\n\nexport interface KaminoReserveLiquidity {\n  /** Reserve liquidity mint address */\n  mintPubkey: PublicKey;\n  /** Reserve liquidity supply address */\n  supplyVault: PublicKey;\n  /** Reserve liquidity mint decimals */\n  mintDecimals: BN;\n  /** Reserve liquidity available */\n  availableAmount: BN;\n  /** Reserve liquidity borrowed (scaled fraction) */\n  borrowedAmountSf: BN;\n  /** Reserve cumulative protocol fees (scaled fraction) */\n  accumulatedProtocolFeesSf: BN;\n  /** Reserve cumulative referrer fees (scaled fraction) */\n  accumulatedReferrerFeesSf: BN;\n  /** Reserve pending referrer fees, to be claimed in refresh_obligation by referrer or protocol (scaled fraction) */\n  pendingReferrerFeesSf: BN;\n}\n\nexport interface KaminoReserveCollateral {\n  /** Reserve collateral mint address */\n  mintPubkey: PublicKey;\n  /** Reserve collateral mint supply, used for exchange rate */\n  mintTotalSupply: BN;\n  /** Reserve collateral supply address */\n  supplyVault: PublicKey;\n}\n\n/**\n * Mirrors the on-chain `InterestRateBasis` (stored as a `u8` in\n * `ReserveConfig.interestRateBasis`). The klend IDL never exposes the enum,\n * only the raw byte, hence this local copy.\n */\nexport enum KaminoInterestRateBasis {\n  /**\n   * Rates are nominal \"slot-year\" APRs assuming `SLOTS_PER_SECOND`: interest\n   * accrues per slot over `SLOTS_PER_YEAR`, so the realized wall-clock rate\n   * scales with the observed slot duration.\n   */\n  Legacy = 0,\n  /**\n   * Rates are wall-clock APRs: interest accrues per second over\n   * `SECONDS_PER_YEAR`, independently of the slot rate. All reserves created\n   * by klend >= 1.25.0 use this basis.\n   */\n  TrueApr = 1,\n}\n\nexport interface KaminoReserveConfig {\n  /** Protocol take rate is the amount borrowed interest protocol receives, as a percentage */\n  protocolTakeRatePct: number;\n  /** Flat rate that goes to the host */\n  hostFixedInterestRateBps: number;\n  /**\n   * How the borrow rate curve is annualized; see {@link KaminoInterestRateBasis}.\n   * Absent on reserves serialized before this field existed — treated as `Legacy`.\n   */\n  interestRateBasis?: number;\n  /** Maximum deposit limit of liquidity in native units, u64::MAX for inf */\n  depositLimit: BN;\n  /** Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits) */\n  borrowLimit: BN;\n  /** Borrow rate curve based on utilization */\n  borrowRateCurve: KaminoBorrowRateCurve;\n  /** Oracle configurations */\n  tokenInfo: KaminoReserveTokenInfo;\n}\n\nexport interface KaminoBorrowRateCurve {\n  points: Array<KaminoBorrowRateCurvePoint>;\n}\n\nexport interface KaminoBorrowRateCurvePoint {\n  utilizationRateBps: number;\n  borrowRateBps: number;\n}\n\nexport interface KaminoReserveTokenInfo {\n  /** Scope price configuration */\n  scopeConfiguration: KaminoScopeConfiguration;\n  /** Switchboard configuration */\n  switchboardConfiguration: KaminoSwitchboardConfiguration;\n  /** Pyth configuration */\n  pythConfiguration: KaminoPythConfiguration;\n}\n\nexport interface KaminoScopeConfiguration {\n  /** Pubkey of the scope price feed (disabled if `null` or `default`) */\n  priceFeed: PublicKey;\n}\n\nexport interface KaminoSwitchboardConfiguration {\n  /** Pubkey of the base price feed (disabled if `null` or `default`) */\n  priceAggregator: PublicKey;\n  twapAggregator: PublicKey;\n}\n\nexport interface KaminoPythConfiguration {\n  /** Pubkey of the base price feed (disabled if `null` or `default`) */\n  price: PublicKey;\n}\n","import {\n  KaminoInterestRateBasis,\n  KaminoObligation,\n  KaminoObligationJSON,\n  KaminoReserve,\n  KaminoReserveJSON,\n} from \"../../types\";\n\n/**\n * Serialize a Kamino Obligation to its JSON DTO.\n *\n * The parameter is typed as the curated {@link KaminoObligation}, so a\n * freshly decoded `ObligationRaw` is accepted structurally and trimmed\n * down to the curated shape here.\n */\nexport function kaminoObligationToDto(\n  obligation: KaminoObligation\n): KaminoObligationJSON {\n  return {\n    lendingMarket: obligation.lendingMarket.toBase58(),\n    owner: obligation.owner.toBase58(),\n    deposits: obligation.deposits.map((item) => ({\n      depositReserve: item.depositReserve.toBase58(),\n      depositedAmount: item.depositedAmount.toString(),\n      marketValueSf: item.marketValueSf.toString(),\n    })),\n    borrows: obligation.borrows.map((item) => ({\n      borrowReserve: item.borrowReserve.toBase58(),\n      borrowedAmountSf: item.borrowedAmountSf.toString(),\n      marketValueSf: item.marketValueSf.toString(),\n    })),\n  };\n}\n\n/**\n * Serialize a Kamino Reserve to its JSON DTO.\n *\n * The parameter is typed as the curated {@link KaminoReserve}, so a\n * freshly decoded `ReserveRaw` is accepted structurally and trimmed\n * down to the curated shape here.\n */\nexport function kaminoReserveToDto(reserve: KaminoReserve): KaminoReserveJSON {\n  return {\n    lendingMarket: reserve.lendingMarket.toBase58(),\n    farmCollateral: reserve.farmCollateral.toBase58(),\n    liquidity: {\n      mintPubkey: reserve.liquidity.mintPubkey.toBase58(),\n      supplyVault: reserve.liquidity.supplyVault.toBase58(),\n      mintDecimals: reserve.liquidity.mintDecimals.toString(),\n      availableAmount: reserve.liquidity.availableAmount.toString(),\n      borrowedAmountSf: reserve.liquidity.borrowedAmountSf.toString(),\n      accumulatedProtocolFeesSf:\n        reserve.liquidity.accumulatedProtocolFeesSf.toString(),\n      accumulatedReferrerFeesSf:\n        reserve.liquidity.accumulatedReferrerFeesSf.toString(),\n      pendingReferrerFeesSf: reserve.liquidity.pendingReferrerFeesSf.toString(),\n    },\n    collateral: {\n      mintPubkey: reserve.collateral.mintPubkey.toBase58(),\n      mintTotalSupply: reserve.collateral.mintTotalSupply.toString(),\n      supplyVault: reserve.collateral.supplyVault.toBase58(),\n    },\n    config: {\n      protocolTakeRatePct: reserve.config.protocolTakeRatePct,\n      hostFixedInterestRateBps: reserve.config.hostFixedInterestRateBps,\n      interestRateBasis:\n        reserve.config.interestRateBasis ?? KaminoInterestRateBasis.Legacy,\n      depositLimit: reserve.config.depositLimit.toString(),\n      borrowLimit: reserve.config.borrowLimit.toString(),\n      borrowRateCurve: {\n        points: reserve.config.borrowRateCurve.points.map((item) => ({\n          utilizationRateBps: item.utilizationRateBps,\n          borrowRateBps: item.borrowRateBps,\n        })),\n      },\n      tokenInfo: {\n        scopeConfiguration: {\n          priceFeed:\n            reserve.config.tokenInfo.scopeConfiguration.priceFeed.toBase58(),\n        },\n        switchboardConfiguration: {\n          priceAggregator:\n            reserve.config.tokenInfo.switchboardConfiguration.priceAggregator.toBase58(),\n          twapAggregator:\n            reserve.config.tokenInfo.switchboardConfiguration.twapAggregator.toBase58(),\n        },\n        pythConfiguration: {\n          price: reserve.config.tokenInfo.pythConfiguration.price.toBase58(),\n        },\n      },\n    },\n  };\n}\n","{\n  \"address\": \"FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr\",\n  \"metadata\": {\n    \"name\": \"farms\",\n    \"version\": \"0.1.0\",\n    \"spec\": \"0.1.0\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"initialize_global_config\",\n      \"discriminator\": [113, 216, 122, 131, 225, 209, 22, 55],\n      \"accounts\": [\n        {\n          \"name\": \"global_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"treasury_vaults_authority\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_global_config\",\n      \"discriminator\": [164, 84, 130, 189, 111, 58, 250, 200],\n      \"accounts\": [\n        {\n          \"name\": \"global_admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mode\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"value\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_farm\",\n      \"discriminator\": [252, 28, 185, 172, 244, 74, 117, 165],\n      \"accounts\": [\n        {\n          \"name\": \"farm_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"farm_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"token_mint\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"rent\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize_farm_delegated\",\n      \"discriminator\": [250, 84, 101, 25, 51, 77, 204, 91],\n      \"accounts\": [\n        {\n          \"name\": \"farm_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_delegate\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"rent\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize_reward\",\n      \"discriminator\": [95, 135, 192, 196, 242, 129, 230, 68],\n      \"accounts\": [\n        {\n          \"name\": \"farm_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"reward_mint\"\n        },\n        {\n          \"name\": \"reward_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reward_treasury_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"treasury_vaults_authority\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"rent\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"add_rewards\",\n      \"discriminator\": [88, 186, 25, 227, 38, 137, 81, 23],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reward_mint\"\n        },\n        {\n          \"name\": \"reward_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"payer_reward_token_ata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"reward_index\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_farm_config\",\n      \"discriminator\": [214, 176, 188, 244, 203, 59, 230, 207],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mode\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"data\",\n          \"type\": \"bytes\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_user\",\n      \"discriminator\": [111, 17, 185, 250, 60, 122, 38, 254],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"owner\"\n        },\n        {\n          \"name\": \"delegatee\"\n        },\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"rent\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"transfer_ownership\",\n      \"discriminator\": [65, 177, 215, 73, 53, 45, 99, 47],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_owner\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"reward_user_once\",\n      \"discriminator\": [219, 137, 57, 22, 94, 186, 96, 114],\n      \"accounts\": [\n        {\n          \"name\": \"farm_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"reward_index\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"refresh_farm\",\n      \"discriminator\": [214, 131, 138, 183, 144, 194, 172, 42],\n      \"accounts\": [\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"stake\",\n      \"discriminator\": [206, 176, 202, 18, 200, 209, 179, 108],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_ata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_mint\"\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"set_stake_delegated\",\n      \"discriminator\": [73, 171, 184, 75, 30, 56, 198, 223],\n      \"accounts\": [\n        {\n          \"name\": \"delegate_authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"harvest_reward\",\n      \"discriminator\": [68, 200, 228, 233, 184, 32, 226, 188],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"reward_mint\"\n        },\n        {\n          \"name\": \"user_reward_ata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rewards_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rewards_treasury_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"reward_index\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"unstake\",\n      \"discriminator\": [90, 95, 107, 42, 205, 124, 50, 225],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"stake_shares_scaled\",\n          \"type\": \"u128\"\n        }\n      ]\n    },\n    {\n      \"name\": \"refresh_user_state\",\n      \"discriminator\": [1, 135, 12, 62, 243, 140, 77, 108],\n      \"accounts\": [\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"withdraw_unstaked_deposits\",\n      \"discriminator\": [36, 102, 187, 49, 220, 36, 132, 67],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"user_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_ata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"withdraw_treasury\",\n      \"discriminator\": [40, 63, 122, 158, 144, 216, 83, 96],\n      \"accounts\": [\n        {\n          \"name\": \"global_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"reward_mint\"\n        },\n        {\n          \"name\": \"reward_treasury_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"treasury_vault_authority\"\n        },\n        {\n          \"name\": \"withdraw_destination_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_to_farm_vault\",\n      \"discriminator\": [131, 166, 64, 94, 108, 213, 114, 183],\n      \"accounts\": [\n        {\n          \"name\": \"depositor\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"depositor_ata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw_from_farm_vault\",\n      \"discriminator\": [22, 82, 128, 250, 86, 79, 124, 78],\n      \"accounts\": [\n        {\n          \"name\": \"withdraw_authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"withdrawer_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw_slashed_amount\",\n      \"discriminator\": [202, 217, 67, 74, 172, 22, 140, 216],\n      \"accounts\": [\n        {\n          \"name\": \"crank\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"slashed_amount_spill_address\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_farm_admin\",\n      \"discriminator\": [20, 37, 136, 19, 122, 239, 36, 130],\n      \"accounts\": [\n        {\n          \"name\": \"pending_farm_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_global_config_admin\",\n      \"discriminator\": [184, 87, 23, 193, 156, 238, 175, 119],\n      \"accounts\": [\n        {\n          \"name\": \"pending_global_admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"withdraw_reward\",\n      \"discriminator\": [191, 187, 176, 137, 9, 25, 187, 244],\n      \"accounts\": [\n        {\n          \"name\": \"farm_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reward_mint\"\n        },\n        {\n          \"name\": \"reward_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farm_vaults_authority\"\n        },\n        {\n          \"name\": \"admin_reward_token_ata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"reward_index\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_second_delegated_authority\",\n      \"discriminator\": [127, 26, 6, 181, 203, 248, 117, 64],\n      \"accounts\": [\n        {\n          \"name\": \"global_admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"new_second_delegated_authority\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"idl_missing_types\",\n      \"discriminator\": [130, 80, 38, 153, 80, 212, 182, 253],\n      \"accounts\": [\n        {\n          \"name\": \"global_admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"global_config_option_kind\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"GlobalConfigOption\"\n            }\n          }\n        },\n        {\n          \"name\": \"farm_config_option_kind\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"FarmConfigOption\"\n            }\n          }\n        },\n        {\n          \"name\": \"time_unit\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"TimeUnit\"\n            }\n          }\n        },\n        {\n          \"name\": \"locking_mode\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"LockingMode\"\n            }\n          }\n        },\n        {\n          \"name\": \"reward_type\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"RewardType\"\n            }\n          }\n        }\n      ]\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"FarmState\",\n      \"discriminator\": [198, 102, 216, 74, 63, 66, 163, 190]\n    },\n    {\n      \"name\": \"GlobalConfig\",\n      \"discriminator\": [149, 8, 156, 202, 160, 252, 176, 217]\n    },\n    {\n      \"name\": \"UserState\",\n      \"discriminator\": [72, 177, 85, 249, 76, 167, 186, 126]\n    },\n    {\n      \"name\": \"OraclePrices\",\n      \"discriminator\": [89, 128, 118, 221, 6, 72, 180, 146]\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"StakeZero\",\n      \"msg\": \"Cannot stake 0 amount\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"UnstakeZero\",\n      \"msg\": \"Cannot unstake 0 amount\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"NothingToUnstake\",\n      \"msg\": \"Nothing to unstake\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"NoRewardToHarvest\",\n      \"msg\": \"No reward to harvest\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"NoRewardInList\",\n      \"msg\": \"Reward not present in reward list\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"RewardAlreadyInitialized\",\n      \"msg\": \"Reward already initialized\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"MaxRewardNumberReached\",\n      \"msg\": \"Max number of reward tokens reached\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"RewardDoesNotExist\",\n      \"msg\": \"Reward does not exist\"\n    },\n    {\n      \"code\": 6008,\n      \"name\": \"WrongRewardVaultAccount\",\n      \"msg\": \"Reward vault exists but the account is wrong\"\n    },\n    {\n      \"code\": 6009,\n      \"name\": \"RewardVaultMismatch\",\n      \"msg\": \"Reward vault pubkey does not match staking pool vault\"\n    },\n    {\n      \"code\": 6010,\n      \"name\": \"RewardVaultAuthorityMismatch\",\n      \"msg\": \"Reward vault authority pubkey does not match staking pool vault\"\n    },\n    {\n      \"code\": 6011,\n      \"name\": \"NothingStaked\",\n      \"msg\": \"Nothing staked, cannot collect any rewards\"\n    },\n    {\n      \"code\": 6012,\n      \"name\": \"IntegerOverflow\",\n      \"msg\": \"Integer overflow\"\n    },\n    {\n      \"code\": 6013,\n      \"name\": \"ConversionFailure\",\n      \"msg\": \"Conversion failure\"\n    },\n    {\n      \"code\": 6014,\n      \"name\": \"UnexpectedAccount\",\n      \"msg\": \"Unexpected account in instruction\"\n    },\n    {\n      \"code\": 6015,\n      \"name\": \"OperationForbidden\",\n      \"msg\": \"Operation forbidden\"\n    },\n    {\n      \"code\": 6016,\n      \"name\": \"MathOverflow\",\n      \"msg\": \"Mathematical operation with overflow\"\n    },\n    {\n      \"code\": 6017,\n      \"name\": \"MinClaimDurationNotReached\",\n      \"msg\": \"Minimum claim duration has not been reached\"\n    },\n    {\n      \"code\": 6018,\n      \"name\": \"RewardsVaultHasDelegate\",\n      \"msg\": \"Reward vault has a delegate\"\n    },\n    {\n      \"code\": 6019,\n      \"name\": \"RewardsVaultHasCloseAuthority\",\n      \"msg\": \"Reward vault has a close authority\"\n    },\n    {\n      \"code\": 6020,\n      \"name\": \"FarmVaultHasDelegate\",\n      \"msg\": \"Farm vault has a delegate\"\n    },\n    {\n      \"code\": 6021,\n      \"name\": \"FarmVaultHasCloseAuthority\",\n      \"msg\": \"Farm vault has a close authority\"\n    },\n    {\n      \"code\": 6022,\n      \"name\": \"RewardsTreasuryVaultHasDelegate\",\n      \"msg\": \"Reward vault has a delegate\"\n    },\n    {\n      \"code\": 6023,\n      \"name\": \"RewardsTreasuryVaultHasCloseAuthority\",\n      \"msg\": \"Reward vault has a close authority\"\n    },\n    {\n      \"code\": 6024,\n      \"name\": \"UserAtaRewardVaultMintMissmatch\",\n      \"msg\": \"User ata and reward vault have different mints\"\n    },\n    {\n      \"code\": 6025,\n      \"name\": \"UserAtaFarmTokenMintMissmatch\",\n      \"msg\": \"User ata and farm token have different mints\"\n    },\n    {\n      \"code\": 6026,\n      \"name\": \"TokenFarmTokenMintMissmatch\",\n      \"msg\": \"Token mint and farm token have different mints\"\n    },\n    {\n      \"code\": 6027,\n      \"name\": \"RewardAtaRewardMintMissmatch\",\n      \"msg\": \"Reward ata mint is different than reward mint\"\n    },\n    {\n      \"code\": 6028,\n      \"name\": \"RewardAtaOwnerNotPayer\",\n      \"msg\": \"Reward ata owner is different than payer\"\n    },\n    {\n      \"code\": 6029,\n      \"name\": \"InvalidGlobalConfigMode\",\n      \"msg\": \"Mode to update global_config is invalid\"\n    },\n    {\n      \"code\": 6030,\n      \"name\": \"RewardIndexOutOfRange\",\n      \"msg\": \"Reward Index is higher than number of rewards\"\n    },\n    {\n      \"code\": 6031,\n      \"name\": \"NothingToWithdraw\",\n      \"msg\": \"No tokens available to withdraw\"\n    },\n    {\n      \"code\": 6032,\n      \"name\": \"UserDelegatedFarmNonDelegatedMissmatch\",\n      \"msg\": \"user, user_ref, authority and payer must match for non-delegated farm\"\n    },\n    {\n      \"code\": 6033,\n      \"name\": \"AuthorityFarmDelegateMissmatch\",\n      \"msg\": \"Authority must match farm delegate authority\"\n    },\n    {\n      \"code\": 6034,\n      \"name\": \"FarmNotDelegated\",\n      \"msg\": \"Farm not delegated, can not set stake\"\n    },\n    {\n      \"code\": 6035,\n      \"name\": \"FarmDelegated\",\n      \"msg\": \"Operation not allowed for delegated farm\"\n    },\n    {\n      \"code\": 6036,\n      \"name\": \"UnstakeNotElapsed\",\n      \"msg\": \"Unstake lockup period is not elapsed. Deposit is locked until end of unstake period\"\n    },\n    {\n      \"code\": 6037,\n      \"name\": \"PendingWithdrawalNotWithdrawnYet\",\n      \"msg\": \"Pending withdrawal already exist and not withdrawn yet\"\n    },\n    {\n      \"code\": 6038,\n      \"name\": \"DepositZero\",\n      \"msg\": \"Cannot deposit zero amount directly to farm vault\"\n    },\n    {\n      \"code\": 6039,\n      \"name\": \"InvalidConfigValue\",\n      \"msg\": \"Invalid config value\"\n    },\n    {\n      \"code\": 6040,\n      \"name\": \"InvalidPenaltyPercentage\",\n      \"msg\": \"Invalid penalty percentage\"\n    },\n    {\n      \"code\": 6041,\n      \"name\": \"EarlyWithdrawalNotAllowed\",\n      \"msg\": \"Early withdrawal not allowed\"\n    },\n    {\n      \"code\": 6042,\n      \"name\": \"InvalidLockingTimestamps\",\n      \"msg\": \"Invalid locking timestamps\"\n    },\n    {\n      \"code\": 6043,\n      \"name\": \"InvalidRpsCurvePoint\",\n      \"msg\": \"Invalid reward rate curve point\"\n    },\n    {\n      \"code\": 6044,\n      \"name\": \"InvalidTimestamp\",\n      \"msg\": \"Invalid timestamp\"\n    },\n    {\n      \"code\": 6045,\n      \"name\": \"DepositCapReached\",\n      \"msg\": \"Deposit cap reached\"\n    },\n    {\n      \"code\": 6046,\n      \"name\": \"MissingScopePrices\",\n      \"msg\": \"Missing Scope Prices\"\n    },\n    {\n      \"code\": 6047,\n      \"name\": \"ScopeOraclePriceTooOld\",\n      \"msg\": \"Scope Oracle Price Too Old\"\n    },\n    {\n      \"code\": 6048,\n      \"name\": \"InvalidOracleConfig\",\n      \"msg\": \"Invalid Oracle Config\"\n    },\n    {\n      \"code\": 6049,\n      \"name\": \"CouldNotDeserializeScope\",\n      \"msg\": \"Could not deserialize scope\"\n    },\n    {\n      \"code\": 6050,\n      \"name\": \"RewardAtaOwnerNotAdmin\",\n      \"msg\": \"Reward ata owner is different than farm admin\"\n    },\n    {\n      \"code\": 6051,\n      \"name\": \"WithdrawRewardZeroAvailable\",\n      \"msg\": \"Cannot withdraw reward as available amount is zero\"\n    },\n    {\n      \"code\": 6052,\n      \"name\": \"RewardScheduleCurveSet\",\n      \"msg\": \"Cannot withdraw reward as reward schedule is set\"\n    },\n    {\n      \"code\": 6053,\n      \"name\": \"UnsupportedTokenExtension\",\n      \"msg\": \"Cannot initialize farm while having a mint with token22 and requested extensions\"\n    },\n    {\n      \"code\": 6054,\n      \"name\": \"InvalidFarmConfigUpdateAuthority\",\n      \"msg\": \"Invalid authority for updating farm config\"\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"FarmConfigOption\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"UpdateRewardRps\"\n          },\n          {\n            \"name\": \"UpdateRewardMinClaimDuration\"\n          },\n          {\n            \"name\": \"WithdrawAuthority\"\n          },\n          {\n            \"name\": \"DepositWarmupPeriod\"\n          },\n          {\n            \"name\": \"WithdrawCooldownPeriod\"\n          },\n          {\n            \"name\": \"RewardType\"\n          },\n          {\n            \"name\": \"RpsDecimals\"\n          },\n          {\n            \"name\": \"LockingMode\"\n          },\n          {\n            \"name\": \"LockingStartTimestamp\"\n          },\n          {\n            \"name\": \"LockingDuration\"\n          },\n          {\n            \"name\": \"LockingEarlyWithdrawalPenaltyBps\"\n          },\n          {\n            \"name\": \"DepositCapAmount\"\n          },\n          {\n            \"name\": \"SlashedAmountSpillAddress\"\n          },\n          {\n            \"name\": \"ScopePricesAccount\"\n          },\n          {\n            \"name\": \"ScopeOraclePriceId\"\n          },\n          {\n            \"name\": \"ScopeOracleMaxAge\"\n          },\n          {\n            \"name\": \"UpdateRewardScheduleCurvePoints\"\n          },\n          {\n            \"name\": \"UpdatePendingFarmAdmin\"\n          },\n          {\n            \"name\": \"UpdateStrategyId\"\n          },\n          {\n            \"name\": \"UpdateDelegatedRpsAdmin\"\n          },\n          {\n            \"name\": \"UpdateVaultId\"\n          },\n          {\n            \"name\": \"UpdateExtraDelegatedAuthority\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"GlobalConfigOption\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"SetPendingGlobalAdmin\"\n          },\n          {\n            \"name\": \"SetTreasuryFeeBps\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LockingMode\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"None\"\n          },\n          {\n            \"name\": \"Continuous\"\n          },\n          {\n            \"name\": \"WithExpiry\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"RewardInfo\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"TokenInfo\"\n              }\n            }\n          },\n          {\n            \"name\": \"rewards_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"rewards_available\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"reward_schedule_curve\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"RewardScheduleCurve\"\n              }\n            }\n          },\n          {\n            \"name\": \"min_claim_duration_seconds\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_issuance_ts\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"rewards_issued_unclaimed\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"rewards_issued_cumulative\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"reward_per_share_scaled\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"placeholder0\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"reward_type\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"rewards_per_second_decimals\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding0\",\n            \"type\": {\n              \"array\": [\"u8\", 6]\n            }\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\"u64\", 20]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"RewardPerTimeUnitPoint\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts_start\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"reward_per_time_unit\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"RewardScheduleCurve\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"points\",\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"RewardPerTimeUnitPoint\"\n                  }\n                },\n                20\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"RewardType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Proportional\"\n          },\n          {\n            \"name\": \"Constant\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TimeUnit\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Seconds\"\n          },\n          {\n            \"name\": \"Slots\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TokenInfo\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"decimals\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"token_program\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u64\", 6]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DatedPrice\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"price\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Price\"\n              }\n            }\n          },\n          {\n            \"name\": \"last_updated_slot\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"reserved\",\n            \"type\": {\n              \"array\": [\"u64\", 2]\n            }\n          },\n          {\n            \"name\": \"reserved2\",\n            \"type\": {\n              \"array\": [\"u16\", 3]\n            }\n          },\n          {\n            \"name\": \"index\",\n            \"type\": \"u16\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Price\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"value\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"exp\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FarmState\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"farm_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"global_config\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"TokenInfo\"\n              }\n            }\n          },\n          {\n            \"name\": \"reward_infos\",\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"RewardInfo\"\n                  }\n                },\n                10\n              ]\n            }\n          },\n          {\n            \"name\": \"num_reward_tokens\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"num_users\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_staked_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"farm_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"farm_vaults_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"farm_vaults_authority_bump\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"delegate_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"time_unit\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"is_farm_frozen\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"is_farm_delegated\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding0\",\n            \"type\": {\n              \"array\": [\"u8\", 5]\n            }\n          },\n          {\n            \"name\": \"withdraw_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"deposit_warmup_period\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"withdrawal_cooldown_period\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"total_active_stake_scaled\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_pending_stake_scaled\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_pending_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"slashed_amount_current\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"slashed_amount_cumulative\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"slashed_amount_spill_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"locking_mode\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"locking_start_timestamp\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"locking_duration\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"locking_early_withdrawal_penalty_bps\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deposit_cap_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"scope_prices\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"scope_oracle_price_id\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"scope_oracle_max_age\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pending_farm_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"strategy_id\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"delegated_rps_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_id\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"second_delegated_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u64\", 74]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"GlobalConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"global_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"treasury_fee_bps\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"treasury_vaults_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"treasury_vaults_authority_bump\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pending_global_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\"u128\", 126]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserState\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_id\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"farm_state\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"is_farm_delegated\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding0\",\n            \"type\": {\n              \"array\": [\"u8\", 7]\n            }\n          },\n          {\n            \"name\": \"rewards_tally_scaled\",\n            \"type\": {\n              \"array\": [\"u128\", 10]\n            }\n          },\n          {\n            \"name\": \"rewards_issued_unclaimed\",\n            \"type\": {\n              \"array\": [\"u64\", 10]\n            }\n          },\n          {\n            \"name\": \"last_claim_ts\",\n            \"type\": {\n              \"array\": [\"u64\", 10]\n            }\n          },\n          {\n            \"name\": \"active_stake_scaled\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"pending_deposit_stake_scaled\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"pending_deposit_stake_ts\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pending_withdrawal_unstake_scaled\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"pending_withdrawal_unstake_ts\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"delegatee\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"last_stake_ts\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\"u64\", 50]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OraclePrices\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"oracle_mappings\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"prices\",\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"DatedPrice\"\n                  }\n                },\n                512\n              ]\n            }\n          }\n        ]\n      }\n    }\n  ]\n}\n","{\n  \"address\": \"KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD\",\n  \"metadata\": {\n    \"name\": \"kamino_lending\",\n    \"version\": \"1.11.0\",\n    \"spec\": \"0.1.0\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"init_lending_market\",\n      \"discriminator\": [\n        34,\n        162,\n        116,\n        14,\n        101,\n        137,\n        94,\n        239\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"lending_market_owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"rent\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"quote_currency\",\n          \"type\": {\n            \"array\": [\n              \"u8\",\n              32\n            ]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_lending_market\",\n      \"discriminator\": [\n        209,\n        157,\n        53,\n        210,\n        97,\n        180,\n        31,\n        45\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"lending_market_owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mode\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"value\",\n          \"type\": {\n            \"array\": [\n              \"u8\",\n              72\n            ]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_lending_market_owner\",\n      \"discriminator\": [\n        118,\n        224,\n        10,\n        62,\n        196,\n        230,\n        184,\n        89\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"lending_market_owner_cached\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"init_reserve\",\n      \"discriminator\": [\n        138,\n        245,\n        71,\n        225,\n        153,\n        4,\n        3,\n        43\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"lending_market_owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_liquidity_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"fee_receiver\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_collateral_mint\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_collateral_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"initial_liquidity_source\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"liquidity_token_program\"\n        },\n        {\n          \"name\": \"collateral_token_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"init_farms_for_reserve\",\n      \"discriminator\": [\n        218,\n        6,\n        62,\n        233,\n        1,\n        33,\n        232,\n        82\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"lending_market_owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farms_program\"\n        },\n        {\n          \"name\": \"farms_global_config\"\n        },\n        {\n          \"name\": \"farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"farms_vault_authority\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mode\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_reserve_config\",\n      \"discriminator\": [\n        61,\n        148,\n        100,\n        70,\n        143,\n        107,\n        17,\n        13\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mode\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"UpdateConfigMode\"\n            }\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"type\": \"bytes\"\n        },\n        {\n          \"name\": \"skip_config_integrity_validation\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"redeem_fees\",\n      \"discriminator\": [\n        215,\n        39,\n        180,\n        41,\n        173,\n        46,\n        248,\n        220\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_liquidity_fee_receiver\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_supply_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"withdraw_protocol_fee\",\n      \"discriminator\": [\n        158,\n        201,\n        158,\n        189,\n        33,\n        93,\n        162,\n        103\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"reserve\"\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"fee_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"fee_collector_ata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"socialize_loss\",\n      \"discriminator\": [\n        245,\n        75,\n        91,\n        0,\n        236,\n        97,\n        19,\n        3\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"risk_council\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"socialize_loss_v2\",\n      \"discriminator\": [\n        238,\n        95,\n        98,\n        220,\n        187,\n        40,\n        204,\n        154\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"socialize_loss_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"risk_council\",\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"mark_obligation_for_deleveraging\",\n      \"discriminator\": [\n        164,\n        35,\n        182,\n        19,\n        0,\n        116,\n        243,\n        127\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"risk_council\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"autodeleverage_target_ltv_pct\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"refresh_reserve\",\n      \"discriminator\": [\n        2,\n        218,\n        138,\n        235,\n        79,\n        201,\n        25,\n        102\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"pyth_oracle\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"switchboard_price_oracle\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"switchboard_twap_oracle\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"scope_prices\",\n          \"optional\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"refresh_reserves_batch\",\n      \"discriminator\": [\n        144,\n        110,\n        26,\n        103,\n        162,\n        204,\n        252,\n        147\n      ],\n      \"accounts\": [],\n      \"args\": [\n        {\n          \"name\": \"skip_price_updates\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_reserve_liquidity\",\n      \"discriminator\": [\n        169,\n        201,\n        30,\n        126,\n        6,\n        205,\n        102,\n        68\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_liquidity_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_collateral_mint\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_source_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_destination_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"collateral_token_program\"\n        },\n        {\n          \"name\": \"liquidity_token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"redeem_reserve_collateral\",\n      \"discriminator\": [\n        234,\n        117,\n        181,\n        125,\n        185,\n        142,\n        220,\n        29\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_collateral_mint\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_source_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_destination_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"collateral_token_program\"\n        },\n        {\n          \"name\": \"liquidity_token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"init_obligation\",\n      \"discriminator\": [\n        251,\n        10,\n        231,\n        76,\n        27,\n        11,\n        159,\n        96\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"obligation_owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"fee_payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"seed1_account\"\n        },\n        {\n          \"name\": \"seed2_account\"\n        },\n        {\n          \"name\": \"owner_user_metadata\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"args\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"InitObligationArgs\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"init_obligation_farms_for_reserve\",\n      \"discriminator\": [\n        136,\n        63,\n        15,\n        186,\n        211,\n        152,\n        168,\n        164\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"owner\"\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_farm_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"obligation_farm\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"farms_program\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mode\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"refresh_obligation_farms_for_reserve\",\n      \"discriminator\": [\n        140,\n        144,\n        253,\n        21,\n        10,\n        74,\n        248,\n        3\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"crank\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"base_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation\"\n            },\n            {\n              \"name\": \"lending_market_authority\"\n            },\n            {\n              \"name\": \"reserve\"\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mode\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"refresh_obligation\",\n      \"discriminator\": [\n        33,\n        132,\n        147,\n        228,\n        151,\n        192,\n        72,\n        89\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"deposit_obligation_collateral\",\n      \"discriminator\": [\n        108,\n        209,\n        4,\n        72,\n        21,\n        22,\n        118,\n        133\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"deposit_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_destination_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_source_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_obligation_collateral_v2\",\n      \"discriminator\": [\n        137,\n        145,\n        151,\n        94,\n        167,\n        113,\n        4,\n        145\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"deposit_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"deposit_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_destination_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_source_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw_obligation_collateral\",\n      \"discriminator\": [\n        37,\n        116,\n        205,\n        103,\n        243,\n        192,\n        92,\n        198\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"withdraw_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_source_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_destination_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw_obligation_collateral_v2\",\n      \"discriminator\": [\n        202,\n        249,\n        117,\n        114,\n        231,\n        192,\n        47,\n        138\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"withdraw_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"lending_market_authority\"\n            },\n            {\n              \"name\": \"withdraw_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_source_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_destination_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"borrow_obligation_liquidity\",\n      \"discriminator\": [\n        121,\n        127,\n        18,\n        204,\n        73,\n        245,\n        225,\n        65\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"borrow_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"borrow_reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_source_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"borrow_reserve_liquidity_fee_receiver\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_destination_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"referrer_token_state\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"borrow_obligation_liquidity_v2\",\n      \"discriminator\": [\n        161,\n        128,\n        143,\n        245,\n        171,\n        199,\n        194,\n        6\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"borrow_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"lending_market_authority\"\n            },\n            {\n              \"name\": \"borrow_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"borrow_reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"reserve_source_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"borrow_reserve_liquidity_fee_receiver\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_destination_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"referrer_token_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"repay_obligation_liquidity\",\n      \"discriminator\": [\n        145,\n        178,\n        13,\n        225,\n        76,\n        240,\n        147,\n        72\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"repay_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_destination_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_source_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"repay_obligation_liquidity_v2\",\n      \"discriminator\": [\n        116,\n        174,\n        213,\n        76,\n        180,\n        53,\n        210,\n        144\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"repay_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"repay_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"reserve_destination_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_source_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"repay_and_withdraw_and_redeem\",\n      \"discriminator\": [\n        2,\n        54,\n        152,\n        3,\n        148,\n        96,\n        109,\n        218\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"repay_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"repay_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"reserve_destination_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_source_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"withdraw_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"writable\": true,\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"lending_market_authority\"\n            },\n            {\n              \"name\": \"withdraw_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"reserve_source_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_collateral_mint\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_supply\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_destination_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"placeholder_user_destination_collateral\",\n              \"optional\": true\n            },\n            {\n              \"name\": \"collateral_token_program\"\n            },\n            {\n              \"name\": \"liquidity_token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"collateral_farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"debt_farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"repay_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"withdraw_collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_and_withdraw\",\n      \"discriminator\": [\n        141,\n        153,\n        39,\n        15,\n        64,\n        61,\n        88,\n        84\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"deposit_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"writable\": true,\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"lending_market_authority\"\n            },\n            {\n              \"name\": \"reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"reserve_liquidity_supply\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_collateral_mint\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_destination_deposit_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_source_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"placeholder_user_destination_collateral\",\n              \"optional\": true\n            },\n            {\n              \"name\": \"collateral_token_program\"\n            },\n            {\n              \"name\": \"liquidity_token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"withdraw_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"writable\": true,\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"lending_market_authority\"\n            },\n            {\n              \"name\": \"withdraw_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"reserve_source_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_collateral_mint\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_supply\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_destination_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"placeholder_user_destination_collateral\",\n              \"optional\": true\n            },\n            {\n              \"name\": \"collateral_token_program\"\n            },\n            {\n              \"name\": \"liquidity_token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"deposit_farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"withdraw_farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"withdraw_collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_reserve_liquidity_and_obligation_collateral\",\n      \"discriminator\": [\n        129,\n        199,\n        4,\n        2,\n        222,\n        39,\n        26,\n        46\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_liquidity_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_collateral_mint\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_destination_deposit_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_source_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"placeholder_user_destination_collateral\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"collateral_token_program\"\n        },\n        {\n          \"name\": \"liquidity_token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_reserve_liquidity_and_obligation_collateral_v2\",\n      \"discriminator\": [\n        216,\n        224,\n        191,\n        27,\n        204,\n        151,\n        102,\n        175\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"deposit_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"writable\": true,\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"lending_market_authority\"\n            },\n            {\n              \"name\": \"reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"reserve_liquidity_supply\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_collateral_mint\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_destination_deposit_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_source_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"placeholder_user_destination_collateral\",\n              \"optional\": true\n            },\n            {\n              \"name\": \"collateral_token_program\"\n            },\n            {\n              \"name\": \"liquidity_token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw_obligation_collateral_and_redeem_reserve_collateral\",\n      \"discriminator\": [\n        75,\n        93,\n        93,\n        220,\n        34,\n        150,\n        218,\n        196\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"withdraw_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_source_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_collateral_mint\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_destination_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"placeholder_user_destination_collateral\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"collateral_token_program\"\n        },\n        {\n          \"name\": \"liquidity_token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw_obligation_collateral_and_redeem_reserve_collateral_v2\",\n      \"discriminator\": [\n        235,\n        52,\n        119,\n        152,\n        149,\n        197,\n        20,\n        7\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"withdraw_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"owner\",\n              \"writable\": true,\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"lending_market_authority\"\n            },\n            {\n              \"name\": \"withdraw_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"reserve_source_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_collateral_mint\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"reserve_liquidity_supply\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_destination_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"placeholder_user_destination_collateral\",\n              \"optional\": true\n            },\n            {\n              \"name\": \"collateral_token_program\"\n            },\n            {\n              \"name\": \"liquidity_token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"collateral_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_obligation_and_redeem_reserve_collateral\",\n      \"discriminator\": [\n        177,\n        71,\n        154,\n        188,\n        226,\n        133,\n        74,\n        55\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"liquidator\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"repay_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"repay_reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"repay_reserve_liquidity_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"withdraw_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"withdraw_reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"withdraw_reserve_collateral_mint\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"withdraw_reserve_collateral_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"withdraw_reserve_liquidity_supply\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"withdraw_reserve_liquidity_fee_receiver\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_source_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_destination_collateral\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_destination_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"collateral_token_program\"\n        },\n        {\n          \"name\": \"repay_liquidity_token_program\"\n        },\n        {\n          \"name\": \"withdraw_liquidity_token_program\"\n        },\n        {\n          \"name\": \"instruction_sysvar_account\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_acceptable_received_liquidity_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"max_allowed_ltv_override_percent\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_obligation_and_redeem_reserve_collateral_v2\",\n      \"discriminator\": [\n        162,\n        161,\n        35,\n        143,\n        30,\n        187,\n        185,\n        103\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"liquidation_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"liquidator\",\n              \"signer\": true\n            },\n            {\n              \"name\": \"obligation\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"lending_market\"\n            },\n            {\n              \"name\": \"lending_market_authority\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"repay_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"repay_reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"repay_reserve_liquidity_supply\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"withdraw_reserve\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"withdraw_reserve_liquidity_mint\"\n            },\n            {\n              \"name\": \"withdraw_reserve_collateral_mint\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"withdraw_reserve_collateral_supply\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"withdraw_reserve_liquidity_supply\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"withdraw_reserve_liquidity_fee_receiver\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_source_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_destination_collateral\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"user_destination_liquidity\",\n              \"writable\": true\n            },\n            {\n              \"name\": \"collateral_token_program\"\n            },\n            {\n              \"name\": \"repay_liquidity_token_program\"\n            },\n            {\n              \"name\": \"withdraw_liquidity_token_program\"\n            },\n            {\n              \"name\": \"instruction_sysvar_account\"\n            }\n          ]\n        },\n        {\n          \"name\": \"collateral_farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"debt_farms_accounts\",\n          \"accounts\": [\n            {\n              \"name\": \"obligation_farm_user_state\",\n              \"writable\": true,\n              \"optional\": true\n            },\n            {\n              \"name\": \"reserve_farm_state\",\n              \"writable\": true,\n              \"optional\": true\n            }\n          ]\n        },\n        {\n          \"name\": \"farms_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_acceptable_received_liquidity_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"max_allowed_ltv_override_percent\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"flash_repay_reserve_liquidity\",\n      \"discriminator\": [\n        185,\n        117,\n        0,\n        203,\n        96,\n        245,\n        180,\n        186\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"user_transfer_authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_destination_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_source_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_fee_receiver\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"referrer_token_state\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"referrer_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"sysvar_info\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"borrow_instruction_index\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"flash_borrow_reserve_liquidity\",\n      \"discriminator\": [\n        135,\n        231,\n        52,\n        167,\n        7,\n        52,\n        212,\n        193\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"user_transfer_authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_source_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_destination_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_fee_receiver\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"referrer_token_state\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"referrer_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"sysvar_info\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"request_elevation_group\",\n      \"discriminator\": [\n        36,\n        119,\n        251,\n        129,\n        34,\n        240,\n        7,\n        147\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"elevation_group\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"init_referrer_token_state\",\n      \"discriminator\": [\n        116,\n        45,\n        66,\n        148,\n        58,\n        13,\n        218,\n        115\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"reserve\"\n        },\n        {\n          \"name\": \"referrer\"\n        },\n        {\n          \"name\": \"referrer_token_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"init_user_metadata\",\n      \"discriminator\": [\n        117,\n        169,\n        176,\n        69,\n        197,\n        23,\n        15,\n        162\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"fee_payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"user_metadata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"referrer_user_metadata\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"user_lookup_table\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw_referrer_fees\",\n      \"discriminator\": [\n        171,\n        118,\n        121,\n        201,\n        233,\n        140,\n        23,\n        228\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"referrer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"referrer_token_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"reserve_liquidity_mint\"\n        },\n        {\n          \"name\": \"reserve_supply_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"referrer_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"lending_market_authority\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"init_referrer_state_and_short_url\",\n      \"discriminator\": [\n        165,\n        19,\n        25,\n        127,\n        100,\n        55,\n        31,\n        90\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"referrer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"referrer_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"referrer_short_url\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"referrer_user_metadata\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"short_url\",\n          \"type\": \"string\"\n        }\n      ]\n    },\n    {\n      \"name\": \"delete_referrer_state_and_short_url\",\n      \"discriminator\": [\n        153,\n        185,\n        99,\n        28,\n        228,\n        179,\n        187,\n        150\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"referrer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"referrer_state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"short_url\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"set_obligation_order\",\n      \"discriminator\": [\n        81,\n        1,\n        99,\n        156,\n        211,\n        83,\n        78,\n        46\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"obligation\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_market\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"index\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"order\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"ObligationOrder\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"init_global_config\",\n      \"discriminator\": [\n        140,\n        136,\n        214,\n        48,\n        87,\n        0,\n        120,\n        255\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"program_data\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"rent\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_global_config\",\n      \"discriminator\": [\n        164,\n        84,\n        130,\n        189,\n        111,\n        58,\n        250,\n        200\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"global_admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mode\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"UpdateGlobalConfigMode\"\n            }\n          }\n        },\n        {\n          \"name\": \"value\",\n          \"type\": \"bytes\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_global_config_admin\",\n      \"discriminator\": [\n        184,\n        87,\n        23,\n        193,\n        156,\n        238,\n        175,\n        119\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"pending_admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"idl_missing_types\",\n      \"discriminator\": [\n        130,\n        80,\n        38,\n        153,\n        80,\n        212,\n        182,\n        253\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\"\n        },\n        {\n          \"name\": \"lending_market\"\n        },\n        {\n          \"name\": \"reserve\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"reserve_farm_kind\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"ReserveFarmKind\"\n            }\n          }\n        },\n        {\n          \"name\": \"asset_tier\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"AssetTier\"\n            }\n          }\n        },\n        {\n          \"name\": \"fee_calculation\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"FeeCalculation\"\n            }\n          }\n        },\n        {\n          \"name\": \"reserve_status\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"ReserveStatus\"\n            }\n          }\n        },\n        {\n          \"name\": \"update_config_mode\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"UpdateConfigMode\"\n            }\n          }\n        },\n        {\n          \"name\": \"update_lending_market_config_value\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"UpdateLendingMarketConfigValue\"\n            }\n          }\n        },\n        {\n          \"name\": \"update_lending_market_config_mode\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"UpdateLendingMarketMode\"\n            }\n          }\n        }\n      ]\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"UserState\",\n      \"discriminator\": [\n        72,\n        177,\n        85,\n        249,\n        76,\n        167,\n        186,\n        126\n      ]\n    },\n    {\n      \"name\": \"GlobalConfig\",\n      \"discriminator\": [\n        149,\n        8,\n        156,\n        202,\n        160,\n        252,\n        176,\n        217\n      ]\n    },\n    {\n      \"name\": \"LendingMarket\",\n      \"discriminator\": [\n        246,\n        114,\n        50,\n        98,\n        72,\n        157,\n        28,\n        120\n      ]\n    },\n    {\n      \"name\": \"Obligation\",\n      \"discriminator\": [\n        168,\n        206,\n        141,\n        106,\n        88,\n        76,\n        172,\n        167\n      ]\n    },\n    {\n      \"name\": \"ReferrerState\",\n      \"discriminator\": [\n        194,\n        81,\n        217,\n        103,\n        12,\n        19,\n        12,\n        66\n      ]\n    },\n    {\n      \"name\": \"ReferrerTokenState\",\n      \"discriminator\": [\n        39,\n        15,\n        208,\n        77,\n        32,\n        195,\n        105,\n        56\n      ]\n    },\n    {\n      \"name\": \"ShortUrl\",\n      \"discriminator\": [\n        28,\n        89,\n        174,\n        25,\n        226,\n        124,\n        126,\n        212\n      ]\n    },\n    {\n      \"name\": \"UserMetadata\",\n      \"discriminator\": [\n        157,\n        214,\n        220,\n        235,\n        98,\n        135,\n        171,\n        28\n      ]\n    },\n    {\n      \"name\": \"Reserve\",\n      \"discriminator\": [\n        43,\n        242,\n        204,\n        202,\n        26,\n        247,\n        59,\n        127\n      ]\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"InvalidMarketAuthority\",\n      \"msg\": \"Market authority is invalid\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"InvalidMarketOwner\",\n      \"msg\": \"Market owner is invalid\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"InvalidAccountOwner\",\n      \"msg\": \"Input account owner is not the program address\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"InvalidAmount\",\n      \"msg\": \"Input amount is invalid\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"InvalidConfig\",\n      \"msg\": \"Input config value is invalid\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"InvalidSigner\",\n      \"msg\": \"Input account must be a signer\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"InvalidAccountInput\",\n      \"msg\": \"Invalid account input\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"MathOverflow\",\n      \"msg\": \"Math operation overflow\"\n    },\n    {\n      \"code\": 6008,\n      \"name\": \"InsufficientLiquidity\",\n      \"msg\": \"Insufficient liquidity available\"\n    },\n    {\n      \"code\": 6009,\n      \"name\": \"ReserveStale\",\n      \"msg\": \"Reserve state needs to be refreshed\"\n    },\n    {\n      \"code\": 6010,\n      \"name\": \"WithdrawTooSmall\",\n      \"msg\": \"Withdraw amount too small\"\n    },\n    {\n      \"code\": 6011,\n      \"name\": \"WithdrawTooLarge\",\n      \"msg\": \"Withdraw amount too large\"\n    },\n    {\n      \"code\": 6012,\n      \"name\": \"BorrowTooSmall\",\n      \"msg\": \"Borrow amount too small to receive liquidity after fees\"\n    },\n    {\n      \"code\": 6013,\n      \"name\": \"BorrowTooLarge\",\n      \"msg\": \"Borrow amount too large for deposited collateral\"\n    },\n    {\n      \"code\": 6014,\n      \"name\": \"RepayTooSmall\",\n      \"msg\": \"Repay amount too small to transfer liquidity\"\n    },\n    {\n      \"code\": 6015,\n      \"name\": \"LiquidationTooSmall\",\n      \"msg\": \"Liquidation amount too small to receive collateral\"\n    },\n    {\n      \"code\": 6016,\n      \"name\": \"ObligationHealthy\",\n      \"msg\": \"Cannot liquidate healthy obligations\"\n    },\n    {\n      \"code\": 6017,\n      \"name\": \"ObligationStale\",\n      \"msg\": \"Obligation state needs to be refreshed\"\n    },\n    {\n      \"code\": 6018,\n      \"name\": \"ObligationReserveLimit\",\n      \"msg\": \"Obligation reserve limit exceeded\"\n    },\n    {\n      \"code\": 6019,\n      \"name\": \"InvalidObligationOwner\",\n      \"msg\": \"Obligation owner is invalid\"\n    },\n    {\n      \"code\": 6020,\n      \"name\": \"ObligationDepositsEmpty\",\n      \"msg\": \"Obligation deposits are empty\"\n    },\n    {\n      \"code\": 6021,\n      \"name\": \"ObligationBorrowsEmpty\",\n      \"msg\": \"Obligation borrows are empty\"\n    },\n    {\n      \"code\": 6022,\n      \"name\": \"ObligationDepositsZero\",\n      \"msg\": \"Obligation deposits have zero value\"\n    },\n    {\n      \"code\": 6023,\n      \"name\": \"ObligationBorrowsZero\",\n      \"msg\": \"Obligation borrows have zero value\"\n    },\n    {\n      \"code\": 6024,\n      \"name\": \"InvalidObligationCollateral\",\n      \"msg\": \"Invalid obligation collateral\"\n    },\n    {\n      \"code\": 6025,\n      \"name\": \"InvalidObligationLiquidity\",\n      \"msg\": \"Invalid obligation liquidity\"\n    },\n    {\n      \"code\": 6026,\n      \"name\": \"ObligationCollateralEmpty\",\n      \"msg\": \"Obligation collateral is empty\"\n    },\n    {\n      \"code\": 6027,\n      \"name\": \"ObligationLiquidityEmpty\",\n      \"msg\": \"Obligation liquidity is empty\"\n    },\n    {\n      \"code\": 6028,\n      \"name\": \"NegativeInterestRate\",\n      \"msg\": \"Interest rate is negative\"\n    },\n    {\n      \"code\": 6029,\n      \"name\": \"InvalidOracleConfig\",\n      \"msg\": \"Input oracle config is invalid\"\n    },\n    {\n      \"code\": 6030,\n      \"name\": \"InsufficientProtocolFeesToRedeem\",\n      \"msg\": \"Insufficient protocol fees to claim or no liquidity available\"\n    },\n    {\n      \"code\": 6031,\n      \"name\": \"FlashBorrowCpi\",\n      \"msg\": \"No cpi flash borrows allowed\"\n    },\n    {\n      \"code\": 6032,\n      \"name\": \"NoFlashRepayFound\",\n      \"msg\": \"No corresponding repay found for flash borrow\"\n    },\n    {\n      \"code\": 6033,\n      \"name\": \"InvalidFlashRepay\",\n      \"msg\": \"Invalid repay found\"\n    },\n    {\n      \"code\": 6034,\n      \"name\": \"FlashRepayCpi\",\n      \"msg\": \"No cpi flash repays allowed\"\n    },\n    {\n      \"code\": 6035,\n      \"name\": \"MultipleFlashBorrows\",\n      \"msg\": \"Multiple flash borrows not allowed in the same transaction\"\n    },\n    {\n      \"code\": 6036,\n      \"name\": \"FlashLoansDisabled\",\n      \"msg\": \"Flash loans are disabled for this reserve\"\n    },\n    {\n      \"code\": 6037,\n      \"name\": \"SwitchboardV2Error\",\n      \"msg\": \"Switchboard error\"\n    },\n    {\n      \"code\": 6038,\n      \"name\": \"CouldNotDeserializeScope\",\n      \"msg\": \"Cannot deserialize the scope price account\"\n    },\n    {\n      \"code\": 6039,\n      \"name\": \"PriceTooOld\",\n      \"msg\": \"Price too old\"\n    },\n    {\n      \"code\": 6040,\n      \"name\": \"PriceTooDivergentFromTwap\",\n      \"msg\": \"Price too divergent from twap\"\n    },\n    {\n      \"code\": 6041,\n      \"name\": \"InvalidTwapPrice\",\n      \"msg\": \"Invalid twap price\"\n    },\n    {\n      \"code\": 6042,\n      \"name\": \"GlobalEmergencyMode\",\n      \"msg\": \"Emergency mode is enabled\"\n    },\n    {\n      \"code\": 6043,\n      \"name\": \"InvalidFlag\",\n      \"msg\": \"Invalid lending market config\"\n    },\n    {\n      \"code\": 6044,\n      \"name\": \"PriceNotValid\",\n      \"msg\": \"Price is not valid\"\n    },\n    {\n      \"code\": 6045,\n      \"name\": \"PriceIsBiggerThanHeuristic\",\n      \"msg\": \"Price is bigger than allowed by heuristic\"\n    },\n    {\n      \"code\": 6046,\n      \"name\": \"PriceIsLowerThanHeuristic\",\n      \"msg\": \"Price lower than allowed by heuristic\"\n    },\n    {\n      \"code\": 6047,\n      \"name\": \"PriceIsZero\",\n      \"msg\": \"Price is zero\"\n    },\n    {\n      \"code\": 6048,\n      \"name\": \"PriceConfidenceTooWide\",\n      \"msg\": \"Price confidence too wide\"\n    },\n    {\n      \"code\": 6049,\n      \"name\": \"IntegerOverflow\",\n      \"msg\": \"Conversion between integers failed\"\n    },\n    {\n      \"code\": 6050,\n      \"name\": \"NoFarmForReserve\",\n      \"msg\": \"This reserve does not have a farm\"\n    },\n    {\n      \"code\": 6051,\n      \"name\": \"IncorrectInstructionInPosition\",\n      \"msg\": \"Wrong instruction at expected position\"\n    },\n    {\n      \"code\": 6052,\n      \"name\": \"NoPriceFound\",\n      \"msg\": \"No price found\"\n    },\n    {\n      \"code\": 6053,\n      \"name\": \"InvalidTwapConfig\",\n      \"msg\": \"Invalid Twap configuration: Twap is enabled but one of the enabled price doesn't have a twap\"\n    },\n    {\n      \"code\": 6054,\n      \"name\": \"InvalidPythPriceAccount\",\n      \"msg\": \"Pyth price account does not match configuration\"\n    },\n    {\n      \"code\": 6055,\n      \"name\": \"InvalidSwitchboardAccount\",\n      \"msg\": \"Switchboard account(s) do not match configuration\"\n    },\n    {\n      \"code\": 6056,\n      \"name\": \"InvalidScopePriceAccount\",\n      \"msg\": \"Scope price account does not match configuration\"\n    },\n    {\n      \"code\": 6057,\n      \"name\": \"ObligationCollateralLtvZero\",\n      \"msg\": \"The obligation has one collateral with an LTV set to 0. Withdraw it before withdrawing other collaterals\"\n    },\n    {\n      \"code\": 6058,\n      \"name\": \"InvalidObligationSeedsValue\",\n      \"msg\": \"Seeds must be default pubkeys for tag 0, and mint addresses for tag 1 or 2\"\n    },\n    {\n      \"code\": 6059,\n      \"name\": \"DeprecatedInvalidObligationId\",\n      \"msg\": \"[DEPRECATED] Obligation id must be 0\"\n    },\n    {\n      \"code\": 6060,\n      \"name\": \"InvalidBorrowRateCurvePoint\",\n      \"msg\": \"Invalid borrow rate curve point\"\n    },\n    {\n      \"code\": 6061,\n      \"name\": \"InvalidUtilizationRate\",\n      \"msg\": \"Invalid utilization rate\"\n    },\n    {\n      \"code\": 6062,\n      \"name\": \"CannotSocializeObligationWithCollateral\",\n      \"msg\": \"Obligation hasn't been fully liquidated and debt cannot be socialized.\"\n    },\n    {\n      \"code\": 6063,\n      \"name\": \"ObligationEmpty\",\n      \"msg\": \"Obligation has no borrows or deposits.\"\n    },\n    {\n      \"code\": 6064,\n      \"name\": \"WithdrawalCapReached\",\n      \"msg\": \"Withdrawal cap is reached\"\n    },\n    {\n      \"code\": 6065,\n      \"name\": \"LastTimestampGreaterThanCurrent\",\n      \"msg\": \"The last interval start timestamp is greater than the current timestamp\"\n    },\n    {\n      \"code\": 6066,\n      \"name\": \"LiquidationRewardTooSmall\",\n      \"msg\": \"The reward amount is less than the minimum acceptable received liquidity\"\n    },\n    {\n      \"code\": 6067,\n      \"name\": \"IsolatedAssetTierViolation\",\n      \"msg\": \"Isolated Asset Tier Violation\"\n    },\n    {\n      \"code\": 6068,\n      \"name\": \"InconsistentElevationGroup\",\n      \"msg\": \"The obligation's elevation group and the reserve's are not the same\"\n    },\n    {\n      \"code\": 6069,\n      \"name\": \"InvalidElevationGroup\",\n      \"msg\": \"The elevation group chosen for the reserve does not exist in the lending market\"\n    },\n    {\n      \"code\": 6070,\n      \"name\": \"InvalidElevationGroupConfig\",\n      \"msg\": \"The elevation group updated has wrong parameters set\"\n    },\n    {\n      \"code\": 6071,\n      \"name\": \"UnhealthyElevationGroupLtv\",\n      \"msg\": \"The current obligation must have most or all its debt repaid before changing the elevation group\"\n    },\n    {\n      \"code\": 6072,\n      \"name\": \"ElevationGroupNewLoansDisabled\",\n      \"msg\": \"Elevation group does not accept any new loans or any new borrows/withdrawals\"\n    },\n    {\n      \"code\": 6073,\n      \"name\": \"ReserveDeprecated\",\n      \"msg\": \"Reserve was deprecated, no longer usable\"\n    },\n    {\n      \"code\": 6074,\n      \"name\": \"ReferrerAccountNotInitialized\",\n      \"msg\": \"Referrer account not initialized\"\n    },\n    {\n      \"code\": 6075,\n      \"name\": \"ReferrerAccountMintMissmatch\",\n      \"msg\": \"Referrer account mint does not match the operation reserve mint\"\n    },\n    {\n      \"code\": 6076,\n      \"name\": \"ReferrerAccountWrongAddress\",\n      \"msg\": \"Referrer account address is not a valid program address\"\n    },\n    {\n      \"code\": 6077,\n      \"name\": \"ReferrerAccountReferrerMissmatch\",\n      \"msg\": \"Referrer account referrer does not match the owner referrer\"\n    },\n    {\n      \"code\": 6078,\n      \"name\": \"ReferrerAccountMissing\",\n      \"msg\": \"Referrer account missing for obligation with referrer\"\n    },\n    {\n      \"code\": 6079,\n      \"name\": \"InsufficientReferralFeesToRedeem\",\n      \"msg\": \"Insufficient referral fees to claim or no liquidity available\"\n    },\n    {\n      \"code\": 6080,\n      \"name\": \"CpiDisabled\",\n      \"msg\": \"CPI disabled for this instruction\"\n    },\n    {\n      \"code\": 6081,\n      \"name\": \"ShortUrlNotAsciiAlphanumeric\",\n      \"msg\": \"Referrer short_url is not ascii alphanumeric\"\n    },\n    {\n      \"code\": 6082,\n      \"name\": \"ReserveObsolete\",\n      \"msg\": \"Reserve is marked as obsolete\"\n    },\n    {\n      \"code\": 6083,\n      \"name\": \"ElevationGroupAlreadyActivated\",\n      \"msg\": \"Obligation already part of the same elevation group\"\n    },\n    {\n      \"code\": 6084,\n      \"name\": \"ObligationInObsoleteReserve\",\n      \"msg\": \"Obligation has a deposit or borrow in an obsolete reserve\"\n    },\n    {\n      \"code\": 6085,\n      \"name\": \"ReferrerStateOwnerMismatch\",\n      \"msg\": \"Referrer state owner does not match the given signer\"\n    },\n    {\n      \"code\": 6086,\n      \"name\": \"UserMetadataOwnerAlreadySet\",\n      \"msg\": \"User metadata owner is already set\"\n    },\n    {\n      \"code\": 6087,\n      \"name\": \"CollateralNonLiquidatable\",\n      \"msg\": \"This collateral cannot be liquidated (LTV set to 0)\"\n    },\n    {\n      \"code\": 6088,\n      \"name\": \"BorrowingDisabled\",\n      \"msg\": \"Borrowing is disabled\"\n    },\n    {\n      \"code\": 6089,\n      \"name\": \"BorrowLimitExceeded\",\n      \"msg\": \"Cannot borrow above borrow limit\"\n    },\n    {\n      \"code\": 6090,\n      \"name\": \"DepositLimitExceeded\",\n      \"msg\": \"Cannot deposit above deposit limit\"\n    },\n    {\n      \"code\": 6091,\n      \"name\": \"BorrowingDisabledOutsideElevationGroup\",\n      \"msg\": \"Reserve does not accept any new borrows outside elevation group\"\n    },\n    {\n      \"code\": 6092,\n      \"name\": \"NetValueRemainingTooSmall\",\n      \"msg\": \"Net value remaining too small\"\n    },\n    {\n      \"code\": 6093,\n      \"name\": \"WorseLtvBlocked\",\n      \"msg\": \"Cannot get the obligation in a worse position\"\n    },\n    {\n      \"code\": 6094,\n      \"name\": \"LiabilitiesBiggerThanAssets\",\n      \"msg\": \"Cannot have more liabilities than assets in a position\"\n    },\n    {\n      \"code\": 6095,\n      \"name\": \"ReserveTokenBalanceMismatch\",\n      \"msg\": \"Reserve state and token account cannot drift\"\n    },\n    {\n      \"code\": 6096,\n      \"name\": \"ReserveVaultBalanceMismatch\",\n      \"msg\": \"Reserve token account has been unexpectedly modified\"\n    },\n    {\n      \"code\": 6097,\n      \"name\": \"ReserveAccountingMismatch\",\n      \"msg\": \"Reserve internal state accounting has been unexpectedly modified\"\n    },\n    {\n      \"code\": 6098,\n      \"name\": \"BorrowingAboveUtilizationRateDisabled\",\n      \"msg\": \"Borrowing above set utilization rate is disabled\"\n    },\n    {\n      \"code\": 6099,\n      \"name\": \"LiquidationBorrowFactorPriority\",\n      \"msg\": \"Liquidation must prioritize the debt with the highest borrow factor\"\n    },\n    {\n      \"code\": 6100,\n      \"name\": \"LiquidationLowestLiquidationLtvPriority\",\n      \"msg\": \"Liquidation must prioritize the collateral with the lowest liquidation LTV\"\n    },\n    {\n      \"code\": 6101,\n      \"name\": \"ElevationGroupBorrowLimitExceeded\",\n      \"msg\": \"Elevation group borrow limit exceeded\"\n    },\n    {\n      \"code\": 6102,\n      \"name\": \"ElevationGroupWithoutDebtReserve\",\n      \"msg\": \"The elevation group does not have a debt reserve defined\"\n    },\n    {\n      \"code\": 6103,\n      \"name\": \"ElevationGroupMaxCollateralReserveZero\",\n      \"msg\": \"The elevation group does not allow any collateral reserves\"\n    },\n    {\n      \"code\": 6104,\n      \"name\": \"ElevationGroupHasAnotherDebtReserve\",\n      \"msg\": \"In elevation group attempt to borrow from a reserve that is not the debt reserve\"\n    },\n    {\n      \"code\": 6105,\n      \"name\": \"ElevationGroupDebtReserveAsCollateral\",\n      \"msg\": \"The elevation group's debt reserve cannot be used as a collateral reserve\"\n    },\n    {\n      \"code\": 6106,\n      \"name\": \"ObligationCollateralExceedsElevationGroupLimit\",\n      \"msg\": \"Obligation have more collateral than the maximum allowed by the elevation group\"\n    },\n    {\n      \"code\": 6107,\n      \"name\": \"ObligationElevationGroupMultipleDebtReserve\",\n      \"msg\": \"Obligation is an elevation group but have more than one debt reserve\"\n    },\n    {\n      \"code\": 6108,\n      \"name\": \"UnsupportedTokenExtension\",\n      \"msg\": \"Mint has a token (2022) extension that is not supported\"\n    },\n    {\n      \"code\": 6109,\n      \"name\": \"InvalidTokenAccount\",\n      \"msg\": \"Can't have an spl token mint with a t22 account\"\n    },\n    {\n      \"code\": 6110,\n      \"name\": \"DepositDisabledOutsideElevationGroup\",\n      \"msg\": \"Can't deposit into this reserve outside elevation group\"\n    },\n    {\n      \"code\": 6111,\n      \"name\": \"CannotCalculateReferralAmountDueToSlotsMismatch\",\n      \"msg\": \"Cannot calculate referral amount due to slots mismatch\"\n    },\n    {\n      \"code\": 6112,\n      \"name\": \"ObligationOwnersMustMatch\",\n      \"msg\": \"Obligation owners must match\"\n    },\n    {\n      \"code\": 6113,\n      \"name\": \"ObligationsMustMatch\",\n      \"msg\": \"Obligations must match\"\n    },\n    {\n      \"code\": 6114,\n      \"name\": \"LendingMarketsMustMatch\",\n      \"msg\": \"Lending markets must match\"\n    },\n    {\n      \"code\": 6115,\n      \"name\": \"ObligationCurrentlyMarkedForDeleveraging\",\n      \"msg\": \"Obligation is already marked for deleveraging\"\n    },\n    {\n      \"code\": 6116,\n      \"name\": \"MaximumWithdrawValueZero\",\n      \"msg\": \"Maximum withdrawable value of this collateral is zero, LTV needs improved\"\n    },\n    {\n      \"code\": 6117,\n      \"name\": \"ZeroMaxLtvAssetsInDeposits\",\n      \"msg\": \"No max LTV 0 assets allowed in deposits for repay and withdraw\"\n    },\n    {\n      \"code\": 6118,\n      \"name\": \"LowestLtvAssetsPriority\",\n      \"msg\": \"Withdrawing must prioritize the collateral with the lowest reserve max-LTV\"\n    },\n    {\n      \"code\": 6119,\n      \"name\": \"WorseLtvThanUnhealthyLtv\",\n      \"msg\": \"Cannot get the obligation liquidatable\"\n    },\n    {\n      \"code\": 6120,\n      \"name\": \"FarmAccountsMissing\",\n      \"msg\": \"Farm accounts to refresh are missing\"\n    },\n    {\n      \"code\": 6121,\n      \"name\": \"RepayTooSmallForFullLiquidation\",\n      \"msg\": \"Repay amount is too small to satisfy the mandatory full liquidation\"\n    },\n    {\n      \"code\": 6122,\n      \"name\": \"InsufficientRepayAmount\",\n      \"msg\": \"Liquidator provided repay amount lower than required by liquidation rules\"\n    },\n    {\n      \"code\": 6123,\n      \"name\": \"OrderIndexOutOfBounds\",\n      \"msg\": \"Obligation order of the given index cannot exist\"\n    },\n    {\n      \"code\": 6124,\n      \"name\": \"InvalidOrderConfiguration\",\n      \"msg\": \"Given order configuration has wrong parameters\"\n    },\n    {\n      \"code\": 6125,\n      \"name\": \"OrderConfigurationNotSupportedByObligation\",\n      \"msg\": \"Given order configuration cannot be used with the current state of the obligation\"\n    },\n    {\n      \"code\": 6126,\n      \"name\": \"OperationNotPermittedWithCurrentObligationOrders\",\n      \"msg\": \"Single debt, single collateral obligation orders have to be cancelled before changing the deposit/borrow count\"\n    },\n    {\n      \"code\": 6127,\n      \"name\": \"OperationNotPermittedMarketImmutable\",\n      \"msg\": \"Cannot update lending market because it is set as immutable\"\n    },\n    {\n      \"code\": 6128,\n      \"name\": \"OrderCreationDisabled\",\n      \"msg\": \"Creation of new orders is disabled\"\n    },\n    {\n      \"code\": 6129,\n      \"name\": \"NoUpgradeAuthority\",\n      \"msg\": \"Cannot initialize global config because there is no upgrade authority to the program\"\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"UpdateConfigMode\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"UpdateLoanToValuePct\"\n          },\n          {\n            \"name\": \"UpdateMaxLiquidationBonusBps\"\n          },\n          {\n            \"name\": \"UpdateLiquidationThresholdPct\"\n          },\n          {\n            \"name\": \"UpdateProtocolLiquidationFee\"\n          },\n          {\n            \"name\": \"UpdateProtocolTakeRate\"\n          },\n          {\n            \"name\": \"UpdateFeesBorrowFee\"\n          },\n          {\n            \"name\": \"UpdateFeesFlashLoanFee\"\n          },\n          {\n            \"name\": \"DeprecatedUpdateFeesReferralFeeBps\"\n          },\n          {\n            \"name\": \"UpdateDepositLimit\"\n          },\n          {\n            \"name\": \"UpdateBorrowLimit\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoLowerHeuristic\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoUpperHeuristic\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoExpHeuristic\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoTwapDivergence\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoScopeTwap\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoScopeChain\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoName\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoPriceMaxAge\"\n          },\n          {\n            \"name\": \"UpdateTokenInfoTwapMaxAge\"\n          },\n          {\n            \"name\": \"UpdateScopePriceFeed\"\n          },\n          {\n            \"name\": \"UpdatePythPrice\"\n          },\n          {\n            \"name\": \"UpdateSwitchboardFeed\"\n          },\n          {\n            \"name\": \"UpdateSwitchboardTwapFeed\"\n          },\n          {\n            \"name\": \"UpdateBorrowRateCurve\"\n          },\n          {\n            \"name\": \"UpdateEntireReserveConfig\"\n          },\n          {\n            \"name\": \"UpdateDebtWithdrawalCap\"\n          },\n          {\n            \"name\": \"UpdateDepositWithdrawalCap\"\n          },\n          {\n            \"name\": \"DeprecatedUpdateDebtWithdrawalCapCurrentTotal\"\n          },\n          {\n            \"name\": \"DeprecatedUpdateDepositWithdrawalCapCurrentTotal\"\n          },\n          {\n            \"name\": \"UpdateBadDebtLiquidationBonusBps\"\n          },\n          {\n            \"name\": \"UpdateMinLiquidationBonusBps\"\n          },\n          {\n            \"name\": \"UpdateDeleveragingMarginCallPeriod\"\n          },\n          {\n            \"name\": \"UpdateBorrowFactor\"\n          },\n          {\n            \"name\": \"UpdateAssetTier\"\n          },\n          {\n            \"name\": \"UpdateElevationGroup\"\n          },\n          {\n            \"name\": \"UpdateDeleveragingThresholdDecreaseBpsPerDay\"\n          },\n          {\n            \"name\": \"DeprecatedUpdateMultiplierSideBoost\"\n          },\n          {\n            \"name\": \"DeprecatedUpdateMultiplierTagBoost\"\n          },\n          {\n            \"name\": \"UpdateReserveStatus\"\n          },\n          {\n            \"name\": \"UpdateFarmCollateral\"\n          },\n          {\n            \"name\": \"UpdateFarmDebt\"\n          },\n          {\n            \"name\": \"UpdateDisableUsageAsCollateralOutsideEmode\"\n          },\n          {\n            \"name\": \"UpdateBlockBorrowingAboveUtilizationPct\"\n          },\n          {\n            \"name\": \"UpdateBlockPriceUsage\"\n          },\n          {\n            \"name\": \"UpdateBorrowLimitOutsideElevationGroup\"\n          },\n          {\n            \"name\": \"UpdateBorrowLimitsInElevationGroupAgainstThisReserve\"\n          },\n          {\n            \"name\": \"UpdateHostFixedInterestRateBps\"\n          },\n          {\n            \"name\": \"UpdateAutodeleverageEnabled\"\n          },\n          {\n            \"name\": \"UpdateDeleveragingBonusIncreaseBpsPerDay\"\n          },\n          {\n            \"name\": \"UpdateProtocolOrderExecutionFee\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UpdateLendingMarketConfigValue\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Bool\",\n            \"fields\": [\n              \"bool\"\n            ]\n          },\n          {\n            \"name\": \"U8\",\n            \"fields\": [\n              \"u8\"\n            ]\n          },\n          {\n            \"name\": \"U8Array\",\n            \"fields\": [\n              {\n                \"array\": [\n                  \"u8\",\n                  8\n                ]\n              }\n            ]\n          },\n          {\n            \"name\": \"U16\",\n            \"fields\": [\n              \"u16\"\n            ]\n          },\n          {\n            \"name\": \"U64\",\n            \"fields\": [\n              \"u64\"\n            ]\n          },\n          {\n            \"name\": \"U128\",\n            \"fields\": [\n              \"u128\"\n            ]\n          },\n          {\n            \"name\": \"Pubkey\",\n            \"fields\": [\n              \"pubkey\"\n            ]\n          },\n          {\n            \"name\": \"ElevationGroup\",\n            \"fields\": [\n              {\n                \"defined\": {\n                  \"name\": \"ElevationGroup\"\n                }\n              }\n            ]\n          },\n          {\n            \"name\": \"Name\",\n            \"fields\": [\n              {\n                \"array\": [\n                  \"u8\",\n                  32\n                ]\n              }\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UpdateLendingMarketMode\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"UpdateOwner\"\n          },\n          {\n            \"name\": \"UpdateEmergencyMode\"\n          },\n          {\n            \"name\": \"UpdateLiquidationCloseFactor\"\n          },\n          {\n            \"name\": \"UpdateLiquidationMaxValue\"\n          },\n          {\n            \"name\": \"DeprecatedUpdateGlobalUnhealthyBorrow\"\n          },\n          {\n            \"name\": \"UpdateGlobalAllowedBorrow\"\n          },\n          {\n            \"name\": \"UpdateRiskCouncil\"\n          },\n          {\n            \"name\": \"UpdateMinFullLiquidationThreshold\"\n          },\n          {\n            \"name\": \"UpdateInsolvencyRiskLtv\"\n          },\n          {\n            \"name\": \"UpdateElevationGroup\"\n          },\n          {\n            \"name\": \"UpdateReferralFeeBps\"\n          },\n          {\n            \"name\": \"DeprecatedUpdateMultiplierPoints\"\n          },\n          {\n            \"name\": \"UpdatePriceRefreshTriggerToMaxAgePct\"\n          },\n          {\n            \"name\": \"UpdateAutodeleverageEnabled\"\n          },\n          {\n            \"name\": \"UpdateBorrowingDisabled\"\n          },\n          {\n            \"name\": \"UpdateMinNetValueObligationPostAction\"\n          },\n          {\n            \"name\": \"UpdateMinValueLtvSkipPriorityLiqCheck\"\n          },\n          {\n            \"name\": \"UpdateMinValueBfSkipPriorityLiqCheck\"\n          },\n          {\n            \"name\": \"UpdatePaddingFields\"\n          },\n          {\n            \"name\": \"UpdateName\"\n          },\n          {\n            \"name\": \"UpdateIndividualAutodeleverageMarginCallPeriodSecs\"\n          },\n          {\n            \"name\": \"UpdateInitialDepositAmount\"\n          },\n          {\n            \"name\": \"UpdateObligationOrderExecutionEnabled\"\n          },\n          {\n            \"name\": \"UpdateImmutableFlag\"\n          },\n          {\n            \"name\": \"UpdateObligationOrderCreationEnabled\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UpdateGlobalConfigMode\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"PendingAdmin\"\n          },\n          {\n            \"name\": \"FeeCollector\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LastUpdate\",\n      \"docs\": [\n        \"Last update state\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"slot\",\n            \"docs\": [\n              \"Last slot when updated\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"stale\",\n            \"docs\": [\n              \"True when marked stale, false when slot updated\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"price_status\",\n            \"docs\": [\n              \"Status of the prices used to calculate the last update\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"placeholder\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                6\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ElevationGroup\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"max_liquidation_bonus_bps\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"id\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"ltv_pct\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"liquidation_threshold_pct\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"allow_new_loans\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"max_reserves_as_collateral\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding0\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"debt_reserve\",\n            \"docs\": [\n              \"Mandatory debt reserve for this elevation group\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                4\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InitObligationArgs\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"tag\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"id\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ObligationCollateral\",\n      \"docs\": [\n        \"Obligation collateral state\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"deposit_reserve\",\n            \"docs\": [\n              \"Reserve collateral is deposited to\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"deposited_amount\",\n            \"docs\": [\n              \"Amount of collateral deposited\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"market_value_sf\",\n            \"docs\": [\n              \"Collateral market value in quote currency (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrowed_amount_against_this_collateral_in_elevation_group\",\n            \"docs\": [\n              \"Debt amount (lamport) taken against this collateral.\",\n              \"(only meaningful if this obligation is part of an elevation group, otherwise 0)\",\n              \"This is only indicative of the debt computed on the last refresh obligation.\",\n              \"If the obligation have multiple collateral this value is the same for all of them.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                9\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ObligationLiquidity\",\n      \"docs\": [\n        \"Obligation liquidity state\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"borrow_reserve\",\n            \"docs\": [\n              \"Reserve liquidity is borrowed from\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"cumulative_borrow_rate_bsf\",\n            \"docs\": [\n              \"Borrow rate used for calculating interest (big scaled fraction)\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"BigFractionBytes\"\n              }\n            }\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrowed_amount_sf\",\n            \"docs\": [\n              \"Amount of liquidity borrowed plus interest (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"market_value_sf\",\n            \"docs\": [\n              \"Liquidity market value in quote currency (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrow_factor_adjusted_market_value_sf\",\n            \"docs\": [\n              \"Risk adjusted liquidity market value in quote currency - DEBUG ONLY - use market_value instead\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrowed_amount_outside_elevation_groups\",\n            \"docs\": [\n              \"Amount of liquidity borrowed outside of an elevation group\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"padding2\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                7\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ObligationOrder\",\n      \"docs\": [\n        \"A single obligation order.\",\n        \"See [Obligation::orders].\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"condition_threshold_sf\",\n            \"docs\": [\n              \"A threshold value used by the condition (scaled [Fraction]).\",\n              \"The exact meaning depends on the specific [Self::condition_type].\",\n              \"\",\n              \"Examples:\",\n              \"- when `condition_type == 2 (UserLtvBelow)`:\",\n              \"then a value of `0.455` here means that the order is active only when the obligation's\",\n              \"user LTV is less than `0.455` (i.e. < 45.5%).\",\n              \"- when `condition_type == 3 (DebtCollPriceRatioAbove)`:\",\n              \"assuming the obligation uses BTC collateral for SOL debt, then a value of `491.3` here\",\n              \"means that the order is active only when the BTC-SOL price is greater than `491.3` (i.e.\",\n              \"> 491.3 SOL per BTC).\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"opportunity_parameter_sf\",\n            \"docs\": [\n              \"A configuration parameter used by the opportunity (scaled [Fraction]).\",\n              \"The exact meaning depends on the specific [Self::opportunity_type].\",\n              \"\",\n              \"Examples:\",\n              \"- when `opportunity_type == 0 (DeleverageSingleDebtAmount)`:\",\n              \"Assuming the obligation uses BTC collateral for SOL debt, then a value of `1_234_000_000`\",\n              \"here means that a liquidator may repay up to 1234000000 lamports (i.e. 1.234 SOL) on this\",\n              \"obligation.\",\n              \"Note: the special value of [Fraction::MAX] is *not* allowed in this case.\",\n              \"- when `opportunity_type == 1 (DeleverageAllDebtAmount)`:\",\n              \"The only allowed value in this case is [Fraction::MAX] (to emphasize that *all* debt\",\n              \"should be repaid).\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"min_execution_bonus_bps\",\n            \"docs\": [\n              \"A *minimum* additional fraction of collateral transferred to the liquidator, in bps.\",\n              \"\",\n              \"The minimum bonus is applied exactly when the [Self::condition_threshold_sf] is met, and\",\n              \"grows linearly towards the [Self::max_execution_bonus_bps].\",\n              \"\",\n              \"Example: a value of `50` here means 50bps == 0.5% bonus for an \\\"LTV > 65%\\\" order, when\",\n              \"executed precisely at the moment LTV exceeds 65%.\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"max_execution_bonus_bps\",\n            \"docs\": [\n              \"A *maximum* additional fraction of collateral transferred to the liquidator, in bps.\",\n              \"\",\n              \"The maximum bonus is applied at the relevant \\\"extreme\\\" state of the obligation, i.e.:\",\n              \"- for a stop-loss condition, it is a point at which the obligation becomes liquidatable;\",\n              \"- for a take-profit condition, it is a point at which obligation has 0% LTV.\",\n              \"\",\n              \"In non-extreme states, the actual bonus value is interpolated linearly, starting from\",\n              \"[Self::min_execution_bonus_bps] (at the point specified by the order's condition).\",\n              \"\",\n              \"Example: a value of `300` here means 300bps == 3.0% bonus for a \\\"debt/coll price > 140\\\"\",\n              \"order, when executed at a higher price = 200, at which the obligation's LTV happens to\",\n              \"be equal to its liquidation LTV.\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"condition_type\",\n            \"docs\": [\n              \"Serialized [ConditionType].\",\n              \"The entire order is void when this is zeroed (i.e. representing [ConditionType::Never]).\",\n              \"\",\n              \"Example: a value of `2` here denotes `UserLtvBelow` condition type. Of course, to\",\n              \"interpret this condition, we also need to take the [Self::condition_threshold_sf] into\",\n              \"account.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"opportunity_type\",\n            \"docs\": [\n              \"Serialized [OpportunityType].\",\n              \"\",\n              \"Example: a value of `0` here denotes `DeleverageSingleDebtAmount` opportunity. Of course, to\",\n              \"interpret this opportunity, we also need to take the [Self::opportunity_parameter_sf] into\",\n              \"account.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"docs\": [\n              \"Internal padding.\",\n              \"The fields above take up 2+2+1+1 bytes = 48 bits, which means we need 80 bits = 10 bytes to\",\n              \"align with `u128`s.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                10\n              ]\n            }\n          },\n          {\n            \"name\": \"padding2\",\n            \"docs\": [\n              \"End padding.\",\n              \"The total size of a single instance is 8*u128 = 128 bytes.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u128\",\n                5\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AssetTier\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Regular\"\n          },\n          {\n            \"name\": \"IsolatedCollateral\"\n          },\n          {\n            \"name\": \"IsolatedDebt\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"BigFractionBytes\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"value\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                4\n              ]\n            }\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                2\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FeeCalculation\",\n      \"docs\": [\n        \"Calculate fees exlusive or inclusive of an amount\"\n      ],\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Exclusive\"\n          },\n          {\n            \"name\": \"Inclusive\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReserveCollateral\",\n      \"docs\": [\n        \"Reserve collateral\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint_pubkey\",\n            \"docs\": [\n              \"Reserve collateral mint address\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_total_supply\",\n            \"docs\": [\n              \"Reserve collateral mint supply, used for exchange rate\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"supply_vault\",\n            \"docs\": [\n              \"Reserve collateral supply address\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\n                \"u128\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"padding2\",\n            \"type\": {\n              \"array\": [\n                \"u128\",\n                32\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReserveConfig\",\n      \"docs\": [\n        \"Reserve configuration values\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"status\",\n            \"docs\": [\n              \"Status of the reserve Active/Obsolete/Hidden\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"asset_tier\",\n            \"docs\": [\n              \"Asset tier -> 0 - regular (collateral & debt), 1 - isolated collateral, 2 - isolated debt\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"host_fixed_interest_rate_bps\",\n            \"docs\": [\n              \"Flat rate that goes to the host\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"reserved2\",\n            \"docs\": [\n              \"[DEPRECATED] Space that used to hold 2 fields:\",\n              \"- Boost for side (debt or collateral)\",\n              \"- Reward points multiplier per obligation type\",\n              \"Can be re-used after making sure all underlying production account data is zeroed.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                9\n              ]\n            }\n          },\n          {\n            \"name\": \"protocol_order_execution_fee_pct\",\n            \"docs\": [\n              \"Cut of the order execution bonus that the protocol receives, as a percentage\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"protocol_take_rate_pct\",\n            \"docs\": [\n              \"Protocol take rate is the amount borrowed interest protocol receives, as a percentage\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"protocol_liquidation_fee_pct\",\n            \"docs\": [\n              \"Cut of the liquidation bonus that the protocol receives, as a percentage\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"loan_to_value_pct\",\n            \"docs\": [\n              \"Target ratio of the value of borrows to deposits, as a percentage\",\n              \"0 if use as collateral is disabled\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"liquidation_threshold_pct\",\n            \"docs\": [\n              \"Loan to value ratio at which an obligation can be liquidated, as percentage\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"min_liquidation_bonus_bps\",\n            \"docs\": [\n              \"Minimum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"max_liquidation_bonus_bps\",\n            \"docs\": [\n              \"Maximum bonus a liquidator receives when repaying part of an unhealthy obligation, as bps\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"bad_debt_liquidation_bonus_bps\",\n            \"docs\": [\n              \"Bad debt liquidation bonus for an undercollateralized obligation, as bps\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"deleveraging_margin_call_period_secs\",\n            \"docs\": [\n              \"Time in seconds that must pass before redemptions are enabled after the deposit limit is\",\n              \"crossed.\",\n              \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deleveraging_threshold_decrease_bps_per_day\",\n            \"docs\": [\n              \"The rate at which the deleveraging threshold decreases, in bps per day.\",\n              \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fees\",\n            \"docs\": [\n              \"Program owner fees assessed, separate from gains due to interest accrual\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ReserveFees\"\n              }\n            }\n          },\n          {\n            \"name\": \"borrow_rate_curve\",\n            \"docs\": [\n              \"Borrow rate curve based on utilization\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"BorrowRateCurve\"\n              }\n            }\n          },\n          {\n            \"name\": \"borrow_factor_pct\",\n            \"docs\": [\n              \"Borrow factor in percentage - used for risk adjustment\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deposit_limit\",\n            \"docs\": [\n              \"Maximum deposit limit of liquidity in native units, u64::MAX for inf\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrow_limit\",\n            \"docs\": [\n              \"Maximum amount borrowed, u64::MAX for inf, 0 to disable borrows (protected deposits)\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"token_info\",\n            \"docs\": [\n              \"Token id from TokenInfos struct\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"TokenInfo\"\n              }\n            }\n          },\n          {\n            \"name\": \"deposit_withdrawal_cap\",\n            \"docs\": [\n              \"Deposit withdrawal caps - deposit & redeem\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"WithdrawalCaps\"\n              }\n            }\n          },\n          {\n            \"name\": \"debt_withdrawal_cap\",\n            \"docs\": [\n              \"Debt withdrawal caps - borrow & repay\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"WithdrawalCaps\"\n              }\n            }\n          },\n          {\n            \"name\": \"elevation_groups\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"disable_usage_as_coll_outside_emode\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"utilization_limit_block_borrowing_above_pct\",\n            \"docs\": [\n              \"Utilization (in percentage) above which borrowing is blocked. 0 to disable.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"autodeleverage_enabled\",\n            \"docs\": [\n              \"Whether this reserve should be subject to auto-deleveraging after deposit or borrow limit is\",\n              \"crossed.\",\n              \"Besides this flag, the lending market's flag also needs to be enabled (logical `AND`).\",\n              \"**NOTE:** the manual \\\"target LTV\\\" deleveraging (enabled by the risk council for individual\",\n              \"obligations) is NOT affected by this flag.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"reserved1\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                1\n              ]\n            }\n          },\n          {\n            \"name\": \"borrow_limit_outside_elevation_group\",\n            \"docs\": [\n              \"Maximum amount liquidity of this reserve borrowed outside all elevation groups\",\n              \"- u64::MAX for inf\",\n              \"- 0 to disable borrows outside elevation groups\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrow_limit_against_this_collateral_in_elevation_group\",\n            \"docs\": [\n              \"Defines the maximum amount (in lamports of elevation group debt asset)\",\n              \"that can be borrowed when this reserve is used as collateral.\",\n              \"- u64::MAX for inf\",\n              \"- 0 to disable borrows in this elevation group (expected value for the debt asset)\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"deleveraging_bonus_increase_bps_per_day\",\n            \"docs\": [\n              \"The rate at which the deleveraging-related liquidation bonus increases, in bps per day.\",\n              \"Only relevant when `autodeleverage_enabled == 1`, and must not be 0 in such case.\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReserveFarmKind\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Collateral\"\n          },\n          {\n            \"name\": \"Debt\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReserveFees\",\n      \"docs\": [\n        \"Additional fee information on a reserve\",\n        \"\",\n        \"These exist separately from interest accrual fees, and are specifically for the program owner\",\n        \"and referral fee. The fees are paid out as a percentage of liquidity token amounts during\",\n        \"repayments and liquidations.\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"borrow_fee_sf\",\n            \"docs\": [\n              \"Fee assessed on `BorrowObligationLiquidity`, as scaled fraction (60 bits fractional part)\",\n              \"Must be between `0` and `2^60`, such that `2^60 = 1`.  A few examples for\",\n              \"clarity:\",\n              \"1% = (1 << 60) / 100 = 11529215046068470\",\n              \"0.01% (1 basis point) = 115292150460685\",\n              \"0.00001% (Aave borrow fee) = 115292150461\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"flash_loan_fee_sf\",\n            \"docs\": [\n              \"Fee for flash loan, expressed as scaled fraction.\",\n              \"0.3% (Aave flash loan fee) = 0.003 * 2^60 = 3458764513820541\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"padding\",\n            \"docs\": [\n              \"Used for allignment\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                8\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReserveLiquidity\",\n      \"docs\": [\n        \"Reserve liquidity\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint_pubkey\",\n            \"docs\": [\n              \"Reserve liquidity mint address\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"supply_vault\",\n            \"docs\": [\n              \"Reserve liquidity supply address\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fee_vault\",\n            \"docs\": [\n              \"Reserve liquidity fee collection address\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"available_amount\",\n            \"docs\": [\n              \"Reserve liquidity available\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrowed_amount_sf\",\n            \"docs\": [\n              \"Reserve liquidity borrowed (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"market_price_sf\",\n            \"docs\": [\n              \"Reserve liquidity market price in quote currency (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"market_price_last_updated_ts\",\n            \"docs\": [\n              \"Unix timestamp of the market price (from the oracle)\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"mint_decimals\",\n            \"docs\": [\n              \"Reserve liquidity mint decimals\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deposit_limit_crossed_timestamp\",\n            \"docs\": [\n              \"Timestamp when the last refresh reserve detected that the liquidity amount is above the deposit cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.\",\n              \"If the threshold is not crossed, then the timestamp is set to 0\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrow_limit_crossed_timestamp\",\n            \"docs\": [\n              \"Timestamp when the last refresh reserve detected that the borrowed amount is above the borrow cap. When this threshold is crossed, then redemptions (auto-deleverage) are enabled.\",\n              \"If the threshold is not crossed, then the timestamp is set to 0\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"cumulative_borrow_rate_bsf\",\n            \"docs\": [\n              \"Reserve liquidity cumulative borrow rate (scaled fraction)\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"BigFractionBytes\"\n              }\n            }\n          },\n          {\n            \"name\": \"accumulated_protocol_fees_sf\",\n            \"docs\": [\n              \"Reserve cumulative protocol fees (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"accumulated_referrer_fees_sf\",\n            \"docs\": [\n              \"Reserve cumulative referrer fees (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"pending_referrer_fees_sf\",\n            \"docs\": [\n              \"Reserve pending referrer fees, to be claimed in refresh_obligation by referrer or protocol (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"absolute_referral_rate_sf\",\n            \"docs\": [\n              \"Reserve referrer fee absolute rate calculated at each refresh_reserve operation (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"token_program\",\n            \"docs\": [\n              \"Token program of the liquidity mint\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding2\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                51\n              ]\n            }\n          },\n          {\n            \"name\": \"padding3\",\n            \"type\": {\n              \"array\": [\n                \"u128\",\n                32\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReserveStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Active\"\n          },\n          {\n            \"name\": \"Obsolete\"\n          },\n          {\n            \"name\": \"Hidden\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawalCaps\",\n      \"docs\": [\n        \"Reserve Withdrawal Caps State\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"config_capacity\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"current_total\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_interval_start_timestamp\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"config_interval_length_seconds\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PriceHeuristic\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"lower\",\n            \"docs\": [\n              \"Lower value of acceptable price\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"upper\",\n            \"docs\": [\n              \"Upper value of acceptable price\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"exp\",\n            \"docs\": [\n              \"Number of decimals of the previously defined values\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PythConfiguration\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"price\",\n            \"docs\": [\n              \"Pubkey of the base price feed (disabled if `null` or `default`)\"\n            ],\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ScopeConfiguration\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"price_feed\",\n            \"docs\": [\n              \"Pubkey of the scope price feed (disabled if `null` or `default`)\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"price_chain\",\n            \"docs\": [\n              \"This is the scope_id price chain that results in a price for the token\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u16\",\n                4\n              ]\n            }\n          },\n          {\n            \"name\": \"twap_chain\",\n            \"docs\": [\n              \"This is the scope_id price chain for the twap\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u16\",\n                4\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SwitchboardConfiguration\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"price_aggregator\",\n            \"docs\": [\n              \"Pubkey of the base price feed (disabled if `null` or `default`)\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"twap_aggregator\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TokenInfo\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"name\",\n            \"docs\": [\n              \"UTF-8 encoded name of the token (null-terminated)\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"heuristic\",\n            \"docs\": [\n              \"Heuristics limits of acceptable price\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PriceHeuristic\"\n              }\n            }\n          },\n          {\n            \"name\": \"max_twap_divergence_bps\",\n            \"docs\": [\n              \"Max divergence between twap and price in bps\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_age_price_seconds\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_age_twap_seconds\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"scope_configuration\",\n            \"docs\": [\n              \"Scope price configuration\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ScopeConfiguration\"\n              }\n            }\n          },\n          {\n            \"name\": \"switchboard_configuration\",\n            \"docs\": [\n              \"Switchboard configuration\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SwitchboardConfiguration\"\n              }\n            }\n          },\n          {\n            \"name\": \"pyth_configuration\",\n            \"docs\": [\n              \"Pyth configuration\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PythConfiguration\"\n              }\n            }\n          },\n          {\n            \"name\": \"block_price_usage\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"reserved\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                7\n              ]\n            }\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                19\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"BorrowRateCurve\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"points\",\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"CurvePoint\"\n                  }\n                },\n                11\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CurvePoint\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"utilization_rate_bps\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"borrow_rate_bps\",\n            \"type\": \"u32\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserState\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_id\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"farm_state\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"is_farm_delegated\",\n            \"docs\": [\n              \"Indicate if this user state is part of a delegated farm\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding0\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                7\n              ]\n            }\n          },\n          {\n            \"name\": \"rewards_tally_scaled\",\n            \"docs\": [\n              \"Rewards tally used for computation of gained rewards\",\n              \"(scaled from `Decimal` representation).\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u128\",\n                10\n              ]\n            }\n          },\n          {\n            \"name\": \"rewards_issued_unclaimed\",\n            \"docs\": [\n              \"Number of reward tokens ready for claim\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                10\n              ]\n            }\n          },\n          {\n            \"name\": \"last_claim_ts\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                10\n              ]\n            }\n          },\n          {\n            \"name\": \"active_stake_scaled\",\n            \"docs\": [\n              \"User stake deposited and usable, generating rewards and fees.\",\n              \"(scaled from `Decimal` representation).\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"pending_deposit_stake_scaled\",\n            \"docs\": [\n              \"User stake deposited but not usable and not generating rewards yet.\",\n              \"(scaled from `Decimal` representation).\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"pending_deposit_stake_ts\",\n            \"docs\": [\n              \"After this timestamp, pending user stake can be moved to user stake\",\n              \"Initialized to now() + delayed user stake period\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pending_withdrawal_unstake_scaled\",\n            \"docs\": [\n              \"User deposits unstaked, pending for withdrawal, not usable and not generating rewards.\",\n              \"(scaled from `Decimal` representation).\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"pending_withdrawal_unstake_ts\",\n            \"docs\": [\n              \"After this timestamp, user can withdraw their deposit.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"User bump used for account address validation\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"delegatee\",\n            \"docs\": [\n              \"Delegatee used for initialisation - useful to check against\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"last_stake_ts\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                50\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"GlobalConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"global_admin\",\n            \"docs\": [\n              \"Global admin of the program\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"pending_admin\",\n            \"docs\": [\n              \"Pending admin must sign a specific transaction to become the global admin\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fee_collector\",\n            \"docs\": [\n              \"Fee collector is the only allowed owner of token accounts receiving protocol fees\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding\",\n            \"docs\": [\n              \"Padding to make the struct size 1024 bytes\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                928\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LendingMarket\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"version\",\n            \"docs\": [\n              \"Version of lending market\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump_seed\",\n            \"docs\": [\n              \"Bump seed for derived authority address\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lending_market_owner\",\n            \"docs\": [\n              \"Owner authority which can add new reserves\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lending_market_owner_cached\",\n            \"docs\": [\n              \"Temporary cache of the lending market owner, used in update_lending_market_owner\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"quote_currency\",\n            \"docs\": [\n              \"Currency market prices are quoted in\",\n              \"e.g. \\\"USD\\\" null padded (`*b\\\"USD\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\"`) or a SPL token mint pubkey\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"referral_fee_bps\",\n            \"docs\": [\n              \"Referral fee for the lending market, as bps out of the total protocol fee\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"emergency_mode\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"autodeleverage_enabled\",\n            \"docs\": [\n              \"Whether the obligations on this market should be subject to auto-deleveraging after deposit\",\n              \"or borrow limit is crossed.\",\n              \"Besides this flag, the particular reserve's flag also needs to be enabled (logical `AND`).\",\n              \"**NOTE:** this also affects the individual \\\"target LTV\\\" deleveraging.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"borrow_disabled\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"price_refresh_trigger_to_max_age_pct\",\n            \"docs\": [\n              \"Refresh price from oracle only if it's older than this percentage of the price max age.\",\n              \"e.g. if the max age is set to 100s and this is set to 80%, the price will be refreshed if it's older than 80s.\",\n              \"Price is always refreshed if this set to 0.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"liquidation_max_debt_close_factor_pct\",\n            \"docs\": [\n              \"Percentage of the total borrowed value in an obligation available for liquidation\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"insolvency_risk_unhealthy_ltv_pct\",\n            \"docs\": [\n              \"Minimum acceptable unhealthy LTV before max_debt_close_factor_pct becomes 100%\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"min_full_liquidation_value_threshold\",\n            \"docs\": [\n              \"Minimum liquidation value threshold triggering full liquidation for an obligation\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_liquidatable_debt_market_value_at_once\",\n            \"docs\": [\n              \"Max allowed liquidation value in one ix call\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"reserved0\",\n            \"docs\": [\n              \"[DEPRECATED] Global maximum unhealthy borrow value allowed for any obligation\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                8\n              ]\n            }\n          },\n          {\n            \"name\": \"global_allowed_borrow_value\",\n            \"docs\": [\n              \"Global maximum allowed borrow value allowed for any obligation\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"risk_council\",\n            \"docs\": [\n              \"The address of the risk council, in charge of making parameter and risk decisions on behalf of the protocol\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"reserved1\",\n            \"docs\": [\n              \"[DEPRECATED] Reward points multiplier per obligation type\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                8\n              ]\n            }\n          },\n          {\n            \"name\": \"elevation_groups\",\n            \"docs\": [\n              \"Elevation groups are used to group together reserves that have the same risk parameters and can bump the ltv and liquidation threshold\"\n            ],\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"ElevationGroup\"\n                  }\n                },\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"elevation_group_padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                90\n              ]\n            }\n          },\n          {\n            \"name\": \"min_net_value_in_obligation_sf\",\n            \"docs\": [\n              \"Min net value accepted to be found in a position after any lending action in an obligation (scaled by quote currency decimals)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"min_value_skip_liquidation_ltv_checks\",\n            \"docs\": [\n              \"Minimum value to enforce smallest ltv priority checks on the collateral reserves on liquidation\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"name\",\n            \"docs\": [\n              \"Market name, zero-padded.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"min_value_skip_liquidation_bf_checks\",\n            \"docs\": [\n              \"Minimum value to enforce highest borrow factor priority checks on the debt reserves on liquidation\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"individual_autodeleverage_margin_call_period_secs\",\n            \"docs\": [\n              \"Time (in seconds) that must pass before liquidation is allowed on an obligation that has\",\n              \"been individually marked for auto-deleveraging (by the risk council).\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_initial_deposit_amount\",\n            \"docs\": [\n              \"Minimum amount of deposit at creation of a reserve to prevent artificial inflation\",\n              \"Note: this amount cannot be recovered, the ctoken associated are never minted\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"obligation_order_execution_enabled\",\n            \"docs\": [\n              \"Whether the obligation orders should be evaluated during liquidations.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"immutable\",\n            \"docs\": [\n              \"Whether the lending market is set as immutable.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"obligation_order_creation_enabled\",\n            \"docs\": [\n              \"Whether new obligation orders can be created.\",\n              \"Note: updating or cancelling existing orders is *not* affected by this flag.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding2\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                5\n              ]\n            }\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                169\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Obligation\",\n      \"docs\": [\n        \"Lending market obligation state\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"tag\",\n            \"docs\": [\n              \"Version of the struct\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_update\",\n            \"docs\": [\n              \"Last update to collateral, liquidity, or their market values\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LastUpdate\"\n              }\n            }\n          },\n          {\n            \"name\": \"lending_market\",\n            \"docs\": [\n              \"Lending market address\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"owner\",\n            \"docs\": [\n              \"Owner authority which can borrow liquidity\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"deposits\",\n            \"docs\": [\n              \"Deposited collateral for the obligation, unique by deposit reserve address\"\n            ],\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"ObligationCollateral\"\n                  }\n                },\n                8\n              ]\n            }\n          },\n          {\n            \"name\": \"lowest_reserve_deposit_liquidation_ltv\",\n            \"docs\": [\n              \"Worst LTV for the collaterals backing the loan, represented as a percentage\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deposited_value_sf\",\n            \"docs\": [\n              \"Market value of deposits (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrows\",\n            \"docs\": [\n              \"Borrowed liquidity for the obligation, unique by borrow reserve address\"\n            ],\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"ObligationLiquidity\"\n                  }\n                },\n                5\n              ]\n            }\n          },\n          {\n            \"name\": \"borrow_factor_adjusted_debt_value_sf\",\n            \"docs\": [\n              \"Risk adjusted market value of borrows/debt (sum of price * borrowed_amount * borrow_factor) (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrowed_assets_market_value_sf\",\n            \"docs\": [\n              \"Market value of borrows - used for max_liquidatable_borrowed_amount (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"allowed_borrow_value_sf\",\n            \"docs\": [\n              \"The maximum borrow value at the weighted average loan to value ratio (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"unhealthy_borrow_value_sf\",\n            \"docs\": [\n              \"The dangerous borrow value at the weighted average liquidation threshold (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"deposits_asset_tiers\",\n            \"docs\": [\n              \"The asset tier of the deposits\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                8\n              ]\n            }\n          },\n          {\n            \"name\": \"borrows_asset_tiers\",\n            \"docs\": [\n              \"The asset tier of the borrows\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                5\n              ]\n            }\n          },\n          {\n            \"name\": \"elevation_group\",\n            \"docs\": [\n              \"The elevation group id the obligation opted into.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"num_of_obsolete_deposit_reserves\",\n            \"docs\": [\n              \"The number of obsolete reserves the obligation has a deposit in\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"has_debt\",\n            \"docs\": [\n              \"Marked = 1 if borrows array is not empty, 0 = borrows empty\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"referrer\",\n            \"docs\": [\n              \"Wallet address of the referrer\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"borrowing_disabled\",\n            \"docs\": [\n              \"Marked = 1 if borrowing disabled, 0 = borrowing enabled\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"autodeleverage_target_ltv_pct\",\n            \"docs\": [\n              \"A target LTV set by the risk council when marking this obligation for deleveraging.\",\n              \"Only effective when `deleveraging_margin_call_started_slot != 0`.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"lowest_reserve_deposit_max_ltv_pct\",\n            \"docs\": [\n              \"The lowest max LTV found amongst the collateral deposits\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"num_of_obsolete_borrow_reserves\",\n            \"docs\": [\n              \"The number of obsolete reserves the obligation has a borrow in\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"reserved\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                4\n              ]\n            }\n          },\n          {\n            \"name\": \"highest_borrow_factor_pct\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"autodeleverage_margin_call_started_timestamp\",\n            \"docs\": [\n              \"A timestamp at which the risk council most-recently marked this obligation for deleveraging.\",\n              \"Zero if not currently subject to deleveraging.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"orders\",\n            \"docs\": [\n              \"Owner-defined, liquidator-executed orders applicable to this obligation.\",\n              \"Typical use-cases would be a stop-loss and a take-profit (possibly co-existing).\"\n            ],\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"ObligationOrder\"\n                  }\n                },\n                2\n              ]\n            }\n          },\n          {\n            \"name\": \"padding3\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                93\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReferrerState\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"short_url\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReferrerTokenState\",\n      \"docs\": [\n        \"Referrer account -> each owner can have multiple accounts for specific reserves\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"referrer\",\n            \"docs\": [\n              \"Pubkey of the referrer/owner\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"docs\": [\n              \"Token mint for the account\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_unclaimed_sf\",\n            \"docs\": [\n              \"Amount that has been accumulated and not claimed yet -> available to claim (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"amount_cumulative_sf\",\n            \"docs\": [\n              \"Amount that has been accumulated in total -> both already claimed and unclaimed (scaled fraction)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"Referrer token state bump, used for address validation\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                31\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ShortUrl\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"referrer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"short_url\",\n            \"type\": \"string\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserMetadata\",\n      \"docs\": [\n        \"Referrer account -> each owner can have multiple accounts for specific reserves\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"referrer\",\n            \"docs\": [\n              \"Pubkey of the referrer/owner - pubkey::default if no referrer\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"Bump used for validation of account address\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_lookup_table\",\n            \"docs\": [\n              \"User lookup table - used to store all user accounts - atas for each reserve mint, each obligation PDA, UserMetadata itself and all referrer_token_states if there is a referrer\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"owner\",\n            \"docs\": [\n              \"User metadata account owner\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                51\n              ]\n            }\n          },\n          {\n            \"name\": \"padding2\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                64\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Reserve\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"version\",\n            \"docs\": [\n              \"Version of the reserve\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_update\",\n            \"docs\": [\n              \"Last slot when supply and rates updated\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LastUpdate\"\n              }\n            }\n          },\n          {\n            \"name\": \"lending_market\",\n            \"docs\": [\n              \"Lending market address\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"farm_collateral\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"farm_debt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"liquidity\",\n            \"docs\": [\n              \"Reserve liquidity\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ReserveLiquidity\"\n              }\n            }\n          },\n          {\n            \"name\": \"reserve_liquidity_padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                150\n              ]\n            }\n          },\n          {\n            \"name\": \"collateral\",\n            \"docs\": [\n              \"Reserve collateral\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ReserveCollateral\"\n              }\n            }\n          },\n          {\n            \"name\": \"reserve_collateral_padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                150\n              ]\n            }\n          },\n          {\n            \"name\": \"config\",\n            \"docs\": [\n              \"Reserve configuration values\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ReserveConfig\"\n              }\n            }\n          },\n          {\n            \"name\": \"config_padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                116\n              ]\n            }\n          },\n          {\n            \"name\": \"borrowed_amount_outside_elevation_group\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrowed_amounts_against_this_reserve_in_elevation_groups\",\n            \"docs\": [\n              \"Amount of token borrowed in lamport of debt asset in the given\",\n              \"elevation group when this reserve is part of the collaterals.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\n                \"u64\",\n                207\n              ]\n            }\n          }\n        ]\n      }\n    }\n  ]\n}","import { Farms } from \"./kfarms\";\nimport KFARMS_IDL_JSON from \"./kfarms.json\";\nimport { KaminoLending } from \"./klend\";\nimport KLEND_IDL_JSON from \"./klend.json\";\n\nexport const KLEND_IDL = KLEND_IDL_JSON as KaminoLending;\nexport const KFARMS_IDL = KFARMS_IDL_JSON as Farms;\nexport type KlendIdlType = KaminoLending;\nexport type KfarmsIdlType = Farms;\n","import { BorshCoder } from \"@coral-xyz/anchor\";\nimport * as borsh from \"@coral-xyz/borsh\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport { KLEND_IDL } from \"../../idl\";\nimport {\n  KaminoInterestRateBasis,\n  KaminoObligation,\n  KaminoObligationJSON,\n  KaminoReserve,\n  KaminoReserveJSON,\n  ObligationRaw,\n  ReserveRaw,\n} from \"../../types\";\n\nexport const KLEND_ACCOUNT_CODER = new BorshCoder(KLEND_IDL);\n\nconst reserveDiscriminator = Buffer.from([43, 242, 204, 202, 26, 247, 59, 127]);\n\nconst obligationDiscriminator = Buffer.from([168, 206, 141, 106, 88, 76, 172, 167]);\n\nconst obligationLayout = borsh.struct<ObligationRaw>([\n  borsh.u64(\"tag\"),\n  borsh.struct(\n    [\n      borsh.u64(\"slot\"),\n      borsh.u8(\"stale\"),\n      borsh.u8(\"priceStatus\"),\n      borsh.array(borsh.u8(), 6, \"placeholder\"),\n    ],\n    \"lastUpdate\"\n  ),\n  borsh.publicKey(\"lendingMarket\"),\n  borsh.publicKey(\"owner\"),\n  borsh.array(\n    borsh.struct([\n      borsh.publicKey(\"depositReserve\"),\n      borsh.u64(\"depositedAmount\"),\n      borsh.u128(\"marketValueSf\"),\n      borsh.u64(\"borrowedAmountAgainstThisCollateralInElevationGroup\"),\n      borsh.array(borsh.u64(), 9, \"padding\"),\n    ]),\n    8,\n    \"deposits\"\n  ),\n  borsh.u64(\"lowestReserveDepositLiquidationLtv\"),\n  borsh.u128(\"depositedValueSf\"),\n  borsh.array(\n    borsh.struct([\n      borsh.publicKey(\"borrowReserve\"),\n      borsh.struct(\n        [borsh.array(borsh.u64(), 4, \"value\"), borsh.array(borsh.u64(), 2, \"padding\")],\n        \"cumulativeBorrowRateBsf\"\n      ),\n      borsh.u64(\"padding\"),\n      borsh.u128(\"borrowedAmountSf\"),\n      borsh.u128(\"marketValueSf\"),\n      borsh.u128(\"borrowFactorAdjustedMarketValueSf\"),\n      borsh.u64(\"borrowedAmountOutsideElevationGroups\"),\n      borsh.array(borsh.u64(), 7, \"padding2\"),\n    ]),\n    5,\n    \"borrows\"\n  ),\n  borsh.u128(\"borrowFactorAdjustedDebtValueSf\"),\n  borsh.u128(\"borrowedAssetsMarketValueSf\"),\n  borsh.u128(\"allowedBorrowValueSf\"),\n  borsh.u128(\"unhealthyBorrowValueSf\"),\n  borsh.array(borsh.u8(), 8, \"depositsAssetTiers\"),\n  borsh.array(borsh.u8(), 5, \"borrowsAssetTiers\"),\n  borsh.u8(\"elevationGroup\"),\n  borsh.u8(\"numOfObsoleteDepositReserves\"),\n  borsh.u8(\"hasDebt\"),\n  borsh.publicKey(\"referrer\"),\n  borsh.u8(\"borrowingDisabled\"),\n  borsh.u8(\"autodeleverageTargetLtvPct\"),\n  borsh.u8(\"lowestReserveDepositMaxLtvPct\"),\n  borsh.u8(\"numOfObsoleteBorrowReserves\"),\n  borsh.array(borsh.u8(), 4, \"reserved\"),\n  borsh.u64(\"highestBorrowFactorPct\"),\n  borsh.u64(\"autodeleverageMarginCallStartedTimestamp\"),\n  borsh.array(\n    borsh.struct([\n      borsh.u128(\"conditionThresholdSf\"),\n      borsh.u128(\"opportunityParameterSf\"),\n      borsh.u16(\"minExecutionBonusBps\"),\n      borsh.u16(\"maxExecutionBonusBps\"),\n      borsh.u8(\"conditionType\"),\n      borsh.u8(\"opportunityType\"),\n      borsh.array(borsh.u8(), 10, \"padding1\"),\n      borsh.array(borsh.u128(), 5, \"padding2\"),\n    ]),\n    2,\n    \"orders\"\n  ),\n  borsh.array(borsh.u64(), 93, \"padding3\"),\n]);\n\nconst reserveLayout = borsh.struct<ReserveRaw>([\n  borsh.u64(\"version\"),\n  borsh.struct(\n    [\n      borsh.u64(\"slot\"),\n      borsh.u8(\"stale\"),\n      borsh.u8(\"priceStatus\"),\n      borsh.array(borsh.u8(), 6, \"placeholder\"),\n    ],\n    \"lastUpdate\"\n  ),\n  borsh.publicKey(\"lendingMarket\"),\n  borsh.publicKey(\"farmCollateral\"),\n  borsh.publicKey(\"farmDebt\"),\n  borsh.struct(\n    [\n      borsh.publicKey(\"mintPubkey\"),\n      borsh.publicKey(\"supplyVault\"),\n      borsh.publicKey(\"feeVault\"),\n      borsh.u64(\"availableAmount\"),\n      borsh.u128(\"borrowedAmountSf\"),\n      borsh.u128(\"marketPriceSf\"),\n      borsh.u64(\"marketPriceLastUpdatedTs\"),\n      borsh.u64(\"mintDecimals\"),\n      borsh.u64(\"depositLimitCrossedTimestamp\"),\n      borsh.u64(\"borrowLimitCrossedTimestamp\"),\n      borsh.struct(\n        [borsh.array(borsh.u64(), 4, \"value\"), borsh.array(borsh.u64(), 2, \"padding\")],\n        \"cumulativeBorrowRateBsf\"\n      ),\n      borsh.u128(\"accumulatedProtocolFeesSf\"),\n      borsh.u128(\"accumulatedReferrerFeesSf\"),\n      borsh.u128(\"pendingReferrerFeesSf\"),\n      borsh.u128(\"absoluteReferralRateSf\"),\n      borsh.publicKey(\"tokenProgram\"),\n      borsh.array(borsh.u64(), 51, \"padding2\"),\n      borsh.array(borsh.u128(), 32, \"padding3\"),\n    ],\n    \"liquidity\"\n  ),\n  borsh.array(borsh.u64(), 150, \"reserveLiquidityPadding\"),\n  borsh.struct(\n    [\n      borsh.publicKey(\"mintPubkey\"),\n      borsh.u64(\"mintTotalSupply\"),\n      borsh.publicKey(\"supplyVault\"),\n      borsh.array(borsh.u128(), 32, \"padding1\"),\n      borsh.array(borsh.u128(), 32, \"padding2\"),\n    ],\n    \"collateral\"\n  ),\n  borsh.array(borsh.u64(), 150, \"reserveCollateralPadding\"),\n  borsh.struct(\n    [\n      borsh.u8(\"status\"),\n      borsh.u8(\"assetTier\"),\n      borsh.u16(\"hostFixedInterestRateBps\"),\n      borsh.u16(\"minDeleveragingBonusBps\"),\n      borsh.u8(\"blockCtokenUsage\"),\n      borsh.u8(\"earlyRepayRemainingInterestPct\"),\n      borsh.u8(\"emergencyMode\"),\n      borsh.u8(\"interestRateBasis\"),\n      borsh.array(borsh.u8(), 3, \"reserved2\"),\n      borsh.u8(\"protocolOrderExecutionFeePct\"),\n      borsh.u8(\"protocolTakeRatePct\"),\n      borsh.u8(\"protocolLiquidationFeePct\"),\n      borsh.u8(\"loanToValuePct\"),\n      borsh.u8(\"liquidationThresholdPct\"),\n      borsh.u16(\"minLiquidationBonusBps\"),\n      borsh.u16(\"maxLiquidationBonusBps\"),\n      borsh.u16(\"badDebtLiquidationBonusBps\"),\n      borsh.u64(\"deleveragingMarginCallPeriodSecs\"),\n      borsh.u64(\"deleveragingThresholdDecreaseBpsPerDay\"),\n      borsh.struct(\n        [\n          borsh.u64(\"borrowFeeSf\"),\n          borsh.u64(\"flashLoanFeeSf\"),\n          borsh.array(borsh.u8(), 8, \"padding\"),\n        ],\n        \"fees\"\n      ),\n      borsh.struct(\n        [\n          borsh.array(\n            borsh.struct([borsh.u32(\"utilizationRateBps\"), borsh.u32(\"borrowRateBps\")]),\n            11,\n            \"points\"\n          ),\n        ],\n        \"borrowRateCurve\"\n      ),\n      borsh.u64(\"borrowFactorPct\"),\n      borsh.u64(\"depositLimit\"),\n      borsh.u64(\"borrowLimit\"),\n      borsh.struct(\n        [\n          borsh.array(borsh.u8(), 32, \"name\"),\n          borsh.struct([borsh.u64(\"lower\"), borsh.u64(\"upper\"), borsh.u64(\"exp\")], \"heuristic\"),\n          borsh.u64(\"maxTwapDivergenceBps\"),\n          borsh.u64(\"maxAgePriceSeconds\"),\n          borsh.u64(\"maxAgeTwapSeconds\"),\n          borsh.struct(\n            [\n              borsh.publicKey(\"priceFeed\"),\n              borsh.array(borsh.u16(), 4, \"priceChain\"),\n              borsh.array(borsh.u16(), 4, \"twapChain\"),\n            ],\n            \"scopeConfiguration\"\n          ),\n          borsh.struct(\n            [borsh.publicKey(\"priceAggregator\"), borsh.publicKey(\"twapAggregator\")],\n            \"switchboardConfiguration\"\n          ),\n          borsh.struct([borsh.publicKey(\"price\")], \"pythConfiguration\"),\n          borsh.u8(\"blockPriceUsage\"),\n          borsh.array(borsh.u8(), 7, \"reserved\"),\n          borsh.array(borsh.u64(), 19, \"padding\"),\n        ],\n        \"tokenInfo\"\n      ),\n      borsh.struct(\n        [\n          borsh.i64(\"configCapacity\"),\n          borsh.i64(\"currentTotal\"),\n          borsh.u64(\"lastIntervalStartTimestamp\"),\n          borsh.u64(\"configIntervalLengthSeconds\"),\n        ],\n        \"depositWithdrawalCap\"\n      ),\n      borsh.struct(\n        [\n          borsh.i64(\"configCapacity\"),\n          borsh.i64(\"currentTotal\"),\n          borsh.u64(\"lastIntervalStartTimestamp\"),\n          borsh.u64(\"configIntervalLengthSeconds\"),\n        ],\n        \"debtWithdrawalCap\"\n      ),\n      borsh.array(borsh.u8(), 20, \"elevationGroups\"),\n      borsh.u8(\"disableUsageAsCollOutsideEmode\"),\n      borsh.u8(\"utilizationLimitBlockBorrowingAbovePct\"),\n      borsh.u8(\"autodeleverageEnabled\"),\n      borsh.array(borsh.u8(), 1, \"reserved1\"),\n      borsh.u64(\"borrowLimitOutsideElevationGroup\"),\n      borsh.array(borsh.u64(), 32, \"borrowLimitAgainstThisCollateralInElevationGroup\"),\n      borsh.u64(\"deleveragingBonusIncreaseBpsPerDay\"),\n    ],\n    \"config\"\n  ),\n  borsh.array(borsh.u64(), 116, \"configPadding\"),\n  borsh.u64(\"borrowedAmountOutsideElevationGroup\"),\n  borsh.array(borsh.u64(), 32, \"borrowedAmountsAgainstThisReserveInElevationGroups\"),\n  borsh.array(borsh.u64(), 207, \"padding\"),\n]);\n\nexport function decodeKlendReserveData(data: Buffer): ReserveRaw {\n  if (!data.slice(0, 8).equals(reserveDiscriminator)) {\n    throw new Error(\"invalid account discriminator\");\n  }\n\n  const dec = reserveLayout.decode(data.slice(8));\n  return dec;\n}\n\nexport function decodeKlendObligationData(data: Buffer): ObligationRaw {\n  if (!data.slice(0, 8).equals(obligationDiscriminator)) {\n    throw new Error(\"invalid account discriminator\");\n  }\n\n  const dec = obligationLayout.decode(data.slice(8));\n  return dec;\n}\n\nexport function dtoToKaminoObligation(obligationDto: KaminoObligationJSON): KaminoObligation {\n  return {\n    lendingMarket: new PublicKey(obligationDto.lendingMarket),\n    owner: new PublicKey(obligationDto.owner),\n    // Hosted endpoints may prune empty position arrays from the payload\n    deposits: (obligationDto.deposits ?? []).map((item) => ({\n      depositReserve: new PublicKey(item.depositReserve),\n      depositedAmount: new BN(item.depositedAmount),\n      marketValueSf: new BN(item.marketValueSf),\n    })),\n    borrows: (obligationDto.borrows ?? []).map((item) => ({\n      borrowReserve: new PublicKey(item.borrowReserve),\n      borrowedAmountSf: new BN(item.borrowedAmountSf),\n      marketValueSf: new BN(item.marketValueSf),\n    })),\n  };\n}\n\nexport function dtoToKaminoReserve(reserveDto: KaminoReserveJSON): KaminoReserve {\n  return {\n    lendingMarket: new PublicKey(reserveDto.lendingMarket),\n    farmCollateral: new PublicKey(reserveDto.farmCollateral),\n    liquidity: {\n      mintPubkey: new PublicKey(reserveDto.liquidity.mintPubkey),\n      supplyVault: new PublicKey(reserveDto.liquidity.supplyVault),\n      mintDecimals: new BN(reserveDto.liquidity.mintDecimals),\n      availableAmount: new BN(reserveDto.liquidity.availableAmount),\n      borrowedAmountSf: new BN(reserveDto.liquidity.borrowedAmountSf),\n      accumulatedProtocolFeesSf: new BN(reserveDto.liquidity.accumulatedProtocolFeesSf),\n      accumulatedReferrerFeesSf: new BN(reserveDto.liquidity.accumulatedReferrerFeesSf),\n      pendingReferrerFeesSf: new BN(reserveDto.liquidity.pendingReferrerFeesSf),\n    },\n    collateral: {\n      mintPubkey: new PublicKey(reserveDto.collateral.mintPubkey),\n      mintTotalSupply: new BN(reserveDto.collateral.mintTotalSupply),\n      supplyVault: new PublicKey(reserveDto.collateral.supplyVault),\n    },\n    config: {\n      protocolTakeRatePct: reserveDto.config.protocolTakeRatePct,\n      hostFixedInterestRateBps: reserveDto.config.hostFixedInterestRateBps,\n      interestRateBasis: reserveDto.config.interestRateBasis ?? KaminoInterestRateBasis.Legacy,\n      depositLimit: new BN(reserveDto.config.depositLimit),\n      borrowLimit: new BN(reserveDto.config.borrowLimit),\n      borrowRateCurve: {\n        points: reserveDto.config.borrowRateCurve.points.map((item) => ({\n          utilizationRateBps: item.utilizationRateBps,\n          borrowRateBps: item.borrowRateBps,\n        })),\n      },\n      tokenInfo: {\n        scopeConfiguration: {\n          priceFeed: new PublicKey(reserveDto.config.tokenInfo.scopeConfiguration.priceFeed),\n        },\n        switchboardConfiguration: {\n          priceAggregator: new PublicKey(\n            reserveDto.config.tokenInfo.switchboardConfiguration.priceAggregator\n          ),\n          twapAggregator: new PublicKey(\n            reserveDto.config.tokenInfo.switchboardConfiguration.twapAggregator\n          ),\n        },\n        pythConfiguration: {\n          price: new PublicKey(reserveDto.config.tokenInfo.pythConfiguration.price),\n        },\n      },\n    },\n  };\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nimport { KLEND_PROGRAM_ID } from \"../../constants\";\n\nexport const SEED_LENDING_MARKET_AUTH = \"lma\";\nexport const SEED_RESERVE_LIQ_SUPPLY = \"reserve_liq_supply\";\nexport const SEED_FEE_RECEIVER = \"fee_receiver\";\nexport const SEED_RESERVE_COLL_MINT = \"reserve_coll_mint\";\nexport const SEED_RESERVE_COLL_SUPPLY = \"reserve_coll_supply\";\nexport const SEED_BASE_REFERRER_TOKEN_STATE = \"referrer_acc\";\nexport const SEED_BASE_USER_METADATA = \"user_meta\";\nexport const SEED_BASE_REFERRER_STATE = \"ref_state\";\nexport const SEED_BASE_SHORT_URL = \"short_url\";\nexport const SEED_USER_STATE = \"user\";\n\n/** @deprecated Kamino changed derivation logic. Do not use. */\nexport function getAllDerivedKaminoAccounts(\n  lendingMarket: PublicKey,\n  reserveLiquidityMint: PublicKey\n) {\n  return {\n    lendingMarketAuthority: deriveLendingMarketAuthority(lendingMarket)[0],\n    reserveLiquiditySupply: deriveReserveLiquiditySupply(lendingMarket, reserveLiquidityMint)[0],\n    reserveCollateralMint: deriveReserveCollateralMint(lendingMarket, reserveLiquidityMint)[0],\n    reserveDestinationDepositCollateral: deriveReserveCollateralSupply(\n      lendingMarket,\n      reserveLiquidityMint\n    )[0],\n  };\n}\n\nexport function deriveLendingMarketAuthority(lendingMarket: PublicKey): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_LENDING_MARKET_AUTH), lendingMarket.toBuffer()],\n    KLEND_PROGRAM_ID\n  );\n}\n\nexport function deriveReserveLiquiditySupply(\n  lendingMarket: PublicKey,\n  reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [\n      Buffer.from(SEED_RESERVE_LIQ_SUPPLY),\n      lendingMarket.toBuffer(),\n      reserveLiquidityMint.toBuffer(),\n    ],\n    KLEND_PROGRAM_ID\n  );\n}\n\nexport function deriveFeeReceiver(\n  lendingMarket: PublicKey,\n  reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_FEE_RECEIVER), lendingMarket.toBuffer(), reserveLiquidityMint.toBuffer()],\n    KLEND_PROGRAM_ID\n  );\n}\n\nexport function deriveReserveCollateralMint(\n  lendingMarket: PublicKey,\n  reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [\n      Buffer.from(SEED_RESERVE_COLL_MINT),\n      lendingMarket.toBuffer(),\n      reserveLiquidityMint.toBuffer(),\n    ],\n    KLEND_PROGRAM_ID\n  );\n}\n\nexport function deriveReserveCollateralSupply(\n  lendingMarket: PublicKey,\n  reserveLiquidityMint: PublicKey\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [\n      Buffer.from(SEED_RESERVE_COLL_SUPPLY),\n      lendingMarket.toBuffer(),\n      reserveLiquidityMint.toBuffer(),\n    ],\n    KLEND_PROGRAM_ID\n  );\n}\n\nexport function deriveReferrerTokenState(referrer: PublicKey): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_BASE_REFERRER_TOKEN_STATE), referrer.toBuffer()],\n    KLEND_PROGRAM_ID\n  );\n}\n\nexport function deriveUserMetadata(user: PublicKey): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_BASE_USER_METADATA), user.toBuffer()],\n    KLEND_PROGRAM_ID\n  );\n}\n\nexport function deriveReferrerState(user: PublicKey): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_BASE_REFERRER_STATE), user.toBuffer()],\n    KLEND_PROGRAM_ID\n  );\n}\n\nexport function deriveShortUrl(identifier: Buffer): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_BASE_SHORT_URL), identifier],\n    KLEND_PROGRAM_ID\n  );\n}\n\n/**\n * Typically the obligation for each bank will have tag and id = 0\n * @param ownerPublicKey\n * @param marketPublicKey\n * @param programId - Default KLEND_PROGRAM_ID\n * @param seed1AccountKey - Default PublicKey.default\n * @param seed2AccountKey - Default PublicKey.default\n * @param tag - Default 0\n * @param id - Default 0\n * @returns\n */\nexport const deriveBaseObligation = (\n  ownerPublicKey: PublicKey,\n  marketPublicKey: PublicKey,\n  programId: PublicKey = KLEND_PROGRAM_ID,\n  seed1AccountKey: PublicKey = PublicKey.default,\n  seed2AccountKey: PublicKey = PublicKey.default,\n  tag: number = 0,\n  id: number = 0\n) => {\n  return deriveObligation(\n    programId,\n    tag,\n    id,\n    ownerPublicKey,\n    marketPublicKey,\n    seed1AccountKey,\n    seed2AccountKey\n  );\n};\n\nexport const deriveObligation = (\n  programId: PublicKey,\n  tag: number,\n  id: number,\n  ownerPublicKey: PublicKey,\n  marketPublicKey: PublicKey,\n  seed1AccountKey: PublicKey,\n  seed2AccountKey: PublicKey\n) => {\n  return PublicKey.findProgramAddressSync(\n    [\n      Buffer.from([tag]),\n      Buffer.from([id]),\n      ownerPublicKey.toBuffer(),\n      marketPublicKey.toBuffer(),\n      seed1AccountKey.toBuffer(),\n      seed2AccountKey.toBuffer(),\n    ],\n    programId\n  );\n};\n\n/**\n * Somewhat contrary to the name, this is the rewards state of the farms program for an obligation\n * (like one owned by a bank), and has nothing to do with \"users\" in a margin context.\n * @param programId\n * @param farmState\n * @param obligation\n * @returns\n */\nexport function deriveUserState(\n  programId: PublicKey,\n  farmState: PublicKey,\n  obligation: PublicKey\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_USER_STATE), farmState.toBuffer(), obligation.toBuffer()],\n    programId\n  );\n}\n","import BN from \"bn.js\";\nimport Decimal from \"decimal.js\";\n/**\n * The higher-precision {@link Decimal} counterpart that *must* be used by all operations within {@link Fraction}.\n *\n * ## How to use it?\n * Simply do `new FractionDecimal(x)` instead of `new Decimal(x)`.\n *\n * ## Why is this needed?\n * The default {@link Decimal.precision} is 20.\n * Some fractions on which we operate (most notably: the {@link Fraction.MAX_F_BN}) have more than 20 significant\n * digits, and at the same time they must encode to exact representation (e.g. because the smart contract expects an\n * exact `0xffff...ff` which has a speciyaal meaning, like \"withdraw *all*\").\n *\n * ## Why was this *not* needed before?\n * Some vibe-coded libraries that we use (e.g. `@orca-so/whirlpool-sdk`) statically initialize the global\n * `Decimal.set({ precision: ... })` when loaded. A previous, fortunate import order allowed our {@link Fraction}'s\n * constants to be computed using a sufficiently-high precision. This of course was broken by a random, unrelated\n * refactor, and from that point on we decided to not rely on the thoughtful Orca developers.\n */\nconst FractionDecimal = Decimal.clone({ precision: 40 });\n\nexport class Fraction {\n  static MAX_SIZE_F = 128;\n  static MAX_SIZE_BF = 256;\n  static FRACTIONS = 60;\n  static MULTIPLIER = new FractionDecimal(2).pow(Fraction.FRACTIONS);\n\n  static MAX_F_BN = new BN(2).pow(new BN(Fraction.MAX_SIZE_F)).sub(new BN(1));\n  static MAX_BF_BN = new BN(2).pow(new BN(Fraction.MAX_SIZE_BF)).sub(new BN(1));\n  static MIN_BN = new BN(0);\n\n  valueSf: BN;\n\n  constructor(valueSf: BN) {\n    if (valueSf.lt(Fraction.MIN_BN) || valueSf.gt(Fraction.MAX_BF_BN)) {\n      throw new Error(\"Number out of range\");\n    }\n\n    this.valueSf = valueSf;\n  }\n\n  toDecimal(): Decimal {\n    return new FractionDecimal(this.valueSf.toString()).div(Fraction.MULTIPLIER);\n  }\n\n  static fromDecimal(n: Decimal | number): Fraction {\n    const scaledDecimal = new FractionDecimal(n).mul(Fraction.MULTIPLIER);\n    const roundedScaledDecimal = roundNearest(scaledDecimal);\n    // Note: the `Decimal.toString()` can return exponential notation (e.g. \"1e9\") for large numbers. This notation is\n    // not accepted by `BN` constructor (i.e. invalid character \"e\"). Hence, we use `Decimal.toFixed()` (which is\n    // different than `number.toFixed()` - it will not do any rounding, just render a normal notation).\n    const scaledValue = new BN(roundedScaledDecimal.toFixed());\n    return new Fraction(scaledValue);\n  }\n\n  static fromBps(n: Decimal | number): Fraction {\n    const decimal = new FractionDecimal(n).div(10000);\n    return Fraction.fromDecimal(decimal);\n  }\n\n  static fromPercent(n: Decimal | number): Fraction {\n    const decimal = new FractionDecimal(n).div(100);\n    return Fraction.fromDecimal(decimal);\n  }\n\n  getValue(): BN {\n    return this.valueSf;\n  }\n\n  gt(x: Fraction): boolean {\n    return this.valueSf.gt(x.getValue());\n  }\n\n  lt(x: Fraction): boolean {\n    return this.valueSf.lt(x.getValue());\n  }\n\n  gte(x: Fraction): boolean {\n    return this.valueSf.gte(x.getValue());\n  }\n\n  lte(x: Fraction): boolean {\n    return this.valueSf.lte(x.getValue());\n  }\n\n  eq(x: Fraction): boolean {\n    return this.valueSf.eq(x.getValue());\n  }\n}\n\n/**\n * Returns an integer {@link Decimal} nearest to the given one.\n *\n * NOTE: the `Decimal.round()` should actually be called `.trunc()` (by default, it uses floor rounding). In most cases,\n * we prefer the traditional behavior (as `Math.round()`).\n */\nfunction roundNearest(decimal: Decimal): Decimal {\n  return decimal.toDecimalPlaces(0, Decimal.ROUND_HALF_CEIL);\n}\n","/**\n * Kamino Lending Protocol - Interest Rate Utilities\n *\n * Provides utilities for calculating interest rates, reserve metrics, and curve generation\n * for the Kamino lending protocol.\n *\n * Extracted all needed functions & constants out of their SDK\n */\n\nimport Decimal from \"decimal.js\";\n\nimport { Fraction } from \"../../classes\";\nimport {\n  ONE_HUNDRED_PCT_IN_BPS,\n  SLOTS_PER_YEAR,\n  SLOTS_PER_SECOND,\n  SECONDS_PER_YEAR,\n  DEFAULT_RECENT_SLOT_DURATION_MS,\n} from \"../../constants\";\nimport { KaminoBorrowRateCurvePoint, KaminoInterestRateBasis, KaminoReserve } from \"../../types\";\n\n// =============================================================================\n// INTERFACES\n// =============================================================================\n\nexport interface KlendInterestRateCurvePoint {\n  utilization: number; // 0-100 percentage\n  borrowAPY: number; // percentage\n  supplyAPY: number; // percentage\n}\n\nexport interface KaminoReserveCurveData {\n  reserveAddress: string;\n  curvePoints: KlendInterestRateCurvePoint[];\n}\n\n/**\n * How a reserve's configured (curve) rate is turned into a realized annual rate.\n * `multiplier` scales the curve rate; `periodsPerYear` is the compounding\n * granularity used to convert APR to APY.\n */\nexport interface KaminoRateBasis {\n  multiplier: number;\n  periodsPerYear: number;\n}\n\n// =============================================================================\n// CORE MATH UTILITIES\n// =============================================================================\n\n/**\n * Linear interpolation between two points\n */\nexport const interpolateLinear = (\n  x: number,\n  x0: number,\n  y0: number,\n  x1: number,\n  y1: number\n): number => {\n  return y0 + ((x - x0) * (y1 - y0)) / (x1 - x0);\n};\n\n/**\n * Calculate borrow rate from utilization using interest rate curve\n * @param currentUtilization - Current utilization ratio (0-1)\n * @param curve - Array of [utilization, rate] points\n * @returns Borrow rate for the given utilization\n */\nexport const getKaminoBorrowRate = (\n  currentUtilization: number,\n  curve: [number, number][]\n): number => {\n  let [x0, y0, x1, y1] = [0, 0, 0, 0];\n\n  if (currentUtilization > 1) {\n    currentUtilization = 1;\n  }\n\n  for (let i = 1; i < curve.length; i++) {\n    const currentPoint = curve[i];\n    const previousPoint = curve[i - 1];\n\n    if (!currentPoint || !previousPoint) {\n      continue;\n    }\n\n    const [pointUtilization, pointRate] = currentPoint;\n    if (pointUtilization === currentUtilization) {\n      return pointRate;\n    }\n\n    if (currentUtilization <= pointUtilization) {\n      x0 = previousPoint[0];\n      y0 = previousPoint[1];\n      x1 = currentPoint[0];\n      y1 = currentPoint[1];\n      break;\n    }\n  }\n\n  if (x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n    const lastPoint = curve[curve.length - 1];\n    return lastPoint ? lastPoint[1] : 0;\n  }\n\n  return interpolateLinear(currentUtilization, x0, y0, x1, y1);\n};\n\n// =============================================================================\n// APR/APY CONVERSIONS\n// =============================================================================\n\n/**\n * Convert APR to APY using compound interest formula\n * APY = (1 + APR/n)^n - 1\n * @param apr - Annual Percentage Rate as decimal (e.g., 0.05 for 5%)\n * @param periodsPerYear - Compounding periods per year (defaults to SLOTS_PER_YEAR;\n *   use `getKaminoRateBasis(reserve).periodsPerYear` for basis-aware compounding)\n * @returns Annual Percentage Yield as decimal\n */\nexport function calculateAPYFromAPR(apr: number, periodsPerYear: number = SLOTS_PER_YEAR): number {\n  return Math.pow(1 + apr / periodsPerYear, periodsPerYear) - 1;\n}\n\n// =============================================================================\n// RESERVE SUPPLY & UTILIZATION\n// =============================================================================\n\n/**\n * Calculate total supply of a reserve\n * Formula: available liquidity + borrowed - protocol fees - referrer fees\n * @param reserve - The Kamino reserve\n * @returns Total supply in lamports\n */\nexport function getKaminoTotalSupply(reserve: KaminoReserve): Decimal {\n  const liquidityAvailableAmount = new Decimal(reserve.liquidity.availableAmount.toString());\n  const borrowedAmount = new Fraction(reserve.liquidity.borrowedAmountSf).toDecimal();\n  const accumulatedProtocolFee = new Fraction(\n    reserve.liquidity.accumulatedProtocolFeesSf\n  ).toDecimal();\n  const accumulatedReferrerFees = new Fraction(\n    reserve.liquidity.accumulatedReferrerFeesSf\n  ).toDecimal();\n  const pendingReferrerFees = new Fraction(reserve.liquidity.pendingReferrerFeesSf).toDecimal();\n\n  return liquidityAvailableAmount\n    .add(borrowedAmount)\n    .sub(accumulatedProtocolFee)\n    .sub(accumulatedReferrerFees)\n    .sub(pendingReferrerFees);\n}\n\n/**\n * Calculate utilization ratio of a reserve\n * Formula: total borrowed / total supply\n * @param reserve - The Kamino reserve\n * @returns Utilization ratio (0-1, e.g., 0.75 = 75% utilized)\n */\nexport function calculateUtilizationRatio(reserve: KaminoReserve): number {\n  const totalBorrows = new Fraction(reserve.liquidity.borrowedAmountSf).toDecimal();\n  const totalSupply = getKaminoTotalSupply(reserve);\n  if (totalSupply.eq(0)) {\n    return 0;\n  }\n  return totalBorrows.dividedBy(totalSupply).toNumber();\n}\n\n// =============================================================================\n// INTEREST RATE BASIS & SLOT ADJUSTMENT\n// =============================================================================\n\n/**\n * Resolve a reserve's interest rate basis, defaulting to `Legacy` when the\n * field is absent (reserves serialized before it existed).\n * @throws if the on-chain value is not a known basis\n */\nexport function getKaminoInterestRateBasis(reserve: KaminoReserve): KaminoInterestRateBasis {\n  const basis = reserve.config.interestRateBasis ?? KaminoInterestRateBasis.Legacy;\n  switch (basis) {\n    case KaminoInterestRateBasis.Legacy:\n    case KaminoInterestRateBasis.TrueApr:\n      return basis;\n    default:\n      throw new Error(`Unsupported Kamino interest rate basis: ${basis}`);\n  }\n}\n\n/**\n * Calculate slot adjustment factor based on recent slot duration\n * Used to adjust Legacy-basis rates based on actual blockchain performance\n * @param recentSlotDurationMs - Recent slot duration in milliseconds\n * @returns Slot adjustment factor\n */\nexport function slotAdjustmentFactor(\n  recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n  return 1000 / SLOTS_PER_SECOND / recentSlotDurationMs;\n}\n\n/**\n * Rate multiplier and compounding granularity for a reserve, per its\n * interest rate basis (1:1 with klend-sdk `KaminoReserve.rateAdjustmentFactor()`\n * and `accrualUnitsPerYear()`).\n *\n * - `Legacy`: curve rates are slot-year APRs, so they are scaled by the observed\n *   slot duration and compounded per slot.\n * - `TrueApr`: curve rates are wall-clock APRs; `recentSlotDurationMs` is ignored\n *   and rates compound per second.\n *\n * @param reserve - The Kamino reserve\n * @param recentSlotDurationMs - Observed slot duration; only read for `Legacy`\n * @throws for an unsupported basis, or a non-positive slot duration on `Legacy`\n */\nexport function getKaminoRateBasis(\n  reserve: KaminoReserve,\n  recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): KaminoRateBasis {\n  switch (getKaminoInterestRateBasis(reserve)) {\n    case KaminoInterestRateBasis.Legacy:\n      if (!Number.isFinite(recentSlotDurationMs) || recentSlotDurationMs <= 0) {\n        throw new Error(\n          `Kamino recent slot duration must be positive, got ${recentSlotDurationMs}`\n        );\n      }\n      return {\n        multiplier: slotAdjustmentFactor(recentSlotDurationMs),\n        periodsPerYear: SLOTS_PER_YEAR,\n      };\n    case KaminoInterestRateBasis.TrueApr:\n      return { multiplier: 1, periodsPerYear: SECONDS_PER_YEAR };\n  }\n}\n\n/**\n * Calculate the rate multiplier for a reserve (1:1 with klend-sdk\n * `KaminoReserve.rateAdjustmentFactor()`): the slot adjustment factor for a\n * `Legacy` reserve, `1` for a `TrueApr` one.\n */\nexport function calculateSlotAdjustmentFactor(\n  reserve: KaminoReserve,\n  recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n  return getKaminoRateBasis(reserve, recentSlotDurationMs).multiplier;\n}\n\n// =============================================================================\n// RATE CALCULATIONS\n// =============================================================================\n\n/**\n * Calculate estimated borrow rate for a reserve\n * @param reserve - The reserve\n * @param recentSlotDurationMs - Recent slot duration (optional; ignored for TrueApr reserves)\n * @returns Borrow rate as decimal (e.g., 0.05 = 5%)\n */\nexport function calculateKaminoEstimatedBorrowRate(\n  reserve: KaminoReserve,\n  recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n  const { multiplier } = getKaminoRateBasis(reserve, recentSlotDurationMs);\n  const currentUtilization = calculateUtilizationRatio(reserve);\n  const curve = truncateBorrowCurve(reserve.config.borrowRateCurve.points);\n  return getKaminoBorrowRate(currentUtilization, curve) * multiplier;\n}\n\n/**\n * Calculate estimated supply rate for a reserve\n * Formula: borrow rate × utilization × (1 - protocol take rate)\n * @param reserve - The reserve\n * @param recentSlotDurationMs - Recent slot duration (optional; ignored for TrueApr reserves)\n * @returns Supply rate as decimal (e.g., 0.03 = 3%)\n */\nexport function calculateKaminoEstimatedSupplyRate(\n  reserve: KaminoReserve,\n  recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n  const borrowRate = calculateKaminoEstimatedBorrowRate(reserve, recentSlotDurationMs);\n  const currentUtilization = calculateUtilizationRatio(reserve);\n  const protocolTakeRatePct = 1 - reserve.config.protocolTakeRatePct / 100;\n\n  return borrowRate * currentUtilization * protocolTakeRatePct;\n}\n\n/**\n * Calculate supply APY for a reserve\n * APY includes compounding, making it higher than APR\n * Matches Kamino SDK's reserve.totalSupplyAPY()\n * @param reserve - The Kamino reserve\n * @param recentSlotDurationMs - Recent slot duration (defaults to\n *   DEFAULT_RECENT_SLOT_DURATION_MS; ignored for TrueApr reserves)\n * @returns Supply APY as decimal (e.g., 0.0512 = 5.12% APY)\n */\nexport function calculateKaminoSupplyAPY(\n  reserve: KaminoReserve,\n  recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): number {\n  const { periodsPerYear } = getKaminoRateBasis(reserve, recentSlotDurationMs);\n  const supplyApr = calculateKaminoEstimatedSupplyRate(reserve, recentSlotDurationMs);\n  return calculateAPYFromAPR(supplyApr, periodsPerYear);\n}\n\nexport function scaledSupplies(state: KaminoReserve): [Decimal, Decimal] {\n  const liqMintDecimals = new Decimal(state.liquidity.mintDecimals.toString());\n  const totalSupplyLamports = getKaminoTotalSupply(state);\n  const mintTotalSupplyLam = new Decimal(state.collateral.mintTotalSupply.toString());\n\n  const liqScale = new Decimal(10).pow(liqMintDecimals);\n  const collScale = new Decimal(10).pow(liqMintDecimals);\n\n  const totalSupply = totalSupplyLamports.div(liqScale);\n  const totalCollateral = mintTotalSupplyLam.div(collScale);\n\n  return [totalSupply, totalCollateral];\n}\n\n// =============================================================================\n// CURVE PROCESSING\n// =============================================================================\n\n/**\n * Convert raw curve points to normalized [utilization, rate] pairs\n * Truncates curve at 100% utilization\n */\nexport const truncateBorrowCurve = (points: KaminoBorrowRateCurvePoint[]): [number, number][] => {\n  const curve: [number, number][] = [];\n  for (const { utilizationRateBps, borrowRateBps } of points) {\n    curve.push([\n      utilizationRateBps / ONE_HUNDRED_PCT_IN_BPS,\n      borrowRateBps / ONE_HUNDRED_PCT_IN_BPS,\n    ]);\n\n    if (utilizationRateBps === ONE_HUNDRED_PCT_IN_BPS) {\n      break;\n    }\n  }\n  return curve;\n};\n\n/**\n * Get fixed host interest rate from reserve config (1:1 with Kamino SDK)\n * Source: klend-sdk/src/classes/reserve.ts line 209\n */\nexport function getFixedHostInterestRate(reserve: KaminoReserve): number {\n  return reserve.config.hostFixedInterestRateBps / 10_000;\n}\n\n/**\n * Get protocol take rate percentage from reserve config\n */\nexport function getProtocolTakeRatePct(reserve: KaminoReserve): number {\n  return 1 - reserve.config.protocolTakeRatePct / 100;\n}\n\n// =============================================================================\n// CURVE GENERATION\n// =============================================================================\n\n/**\n * Generate complete interest rate curve for a reserve\n * Creates 101 data points from 0% to 100% utilization\n * @param curvePoints - Raw curve configuration from reserve\n * @param slotAdjustmentFactor - Rate multiplier (`calculateSlotAdjustmentFactor`;\n *   the slot adjustment for Legacy reserves, 1 for TrueApr)\n * @param fixedHostInterestRate - Fixed rate added to all borrow rates\n * @param protocolTakeRatePct - Percentage kept by depositors (1 - protocol fee)\n * @param periodsPerYear - APY compounding periods (`getKaminoRateBasis(reserve).periodsPerYear`;\n *   defaults to SLOTS_PER_YEAR)\n * @returns Array of curve points with utilization, borrow APY, and supply APY\n */\nexport function generateKaminoReserveCurve(\n  curvePoints: KaminoBorrowRateCurvePoint[],\n  slotAdjustmentFactor: number,\n  fixedHostInterestRate: number,\n  protocolTakeRatePct: number,\n  periodsPerYear: number = SLOTS_PER_YEAR\n): KlendInterestRateCurvePoint[] {\n  if (curvePoints.length === 0) {\n    return [];\n  }\n\n  const curve = truncateBorrowCurve(curvePoints);\n\n  return Array.from({ length: 101 }, (_, i) => {\n    const utilization = i / 100;\n\n    // Calculate base borrow rate and add fixed host interest\n    const baseBorrowRate = getKaminoBorrowRate(utilization, curve) * slotAdjustmentFactor;\n    const borrowAPR = baseBorrowRate + fixedHostInterestRate;\n\n    // Calculate supply APR (utilization × borrowAPR × protocolTakeRate)\n    const supplyAPR = utilization * borrowAPR * protocolTakeRatePct;\n\n    // Convert to APY with compounding\n    const borrowAPY = calculateAPYFromAPR(borrowAPR, periodsPerYear);\n    const supplyAPY = calculateAPYFromAPR(supplyAPR, periodsPerYear);\n\n    return {\n      utilization: utilization * 100,\n      borrowAPY: borrowAPY * 100,\n      supplyAPY: supplyAPY * 100,\n    };\n  });\n}\n\n/**\n * Generate the interest rate curve for a reserve, deriving the rate multiplier\n * and compounding granularity from its interest rate basis.\n * @param reserve - The Kamino reserve\n * @param recentSlotDurationMs - Recent slot duration (optional; ignored for TrueApr reserves)\n */\nexport function generateKaminoReserveCurveFromReserve(\n  reserve: KaminoReserve,\n  recentSlotDurationMs: number = DEFAULT_RECENT_SLOT_DURATION_MS\n): KlendInterestRateCurvePoint[] {\n  const { multiplier, periodsPerYear } = getKaminoRateBasis(reserve, recentSlotDurationMs);\n  return generateKaminoReserveCurve(\n    reserve.config.borrowRateCurve.points,\n    multiplier,\n    getFixedHostInterestRate(reserve),\n    getProtocolTakeRatePct(reserve),\n    periodsPerYear\n  );\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport Decimal from \"decimal.js\";\n\nimport { KaminoFarmRewardInfo, KaminoFarmState, KaminoReserve } from \"../../types\";\nimport { getKaminoTotalSupply } from \"../klend/interest-rate.utils\";\n\nexport function getRewardPerTimeUnitSecond(reward: KaminoFarmRewardInfo) {\n  const now = new Decimal(new Date().getTime()).div(1000);\n  let rewardPerTimeUnitSecond = new Decimal(0);\n  for (let i = 0; i < reward.rewardScheduleCurve.points.length - 1; i++) {\n    const currentPoint = reward.rewardScheduleCurve.points[i];\n    const nextPoint = reward.rewardScheduleCurve.points[i + 1];\n\n    if (!currentPoint || !nextPoint) {\n      continue;\n    }\n\n    const { tsStart: tsStartThisPoint, rewardPerTimeUnit } = currentPoint;\n    const { tsStart: tsStartNextPoint } = nextPoint;\n\n    const thisPeriodStart = new Decimal(tsStartThisPoint.toString());\n    const thisPeriodEnd = new Decimal(tsStartNextPoint.toString());\n    const rps = new Decimal(rewardPerTimeUnit.toString());\n    if (thisPeriodStart <= now && thisPeriodEnd >= now) {\n      rewardPerTimeUnitSecond = rps;\n      break;\n    } else if (thisPeriodStart > now && thisPeriodEnd > now) {\n      rewardPerTimeUnitSecond = rps;\n      break;\n    }\n  }\n\n  const rewardTokenDecimals = reward.token.decimals.toNumber();\n  const rewardAmountPerUnitDecimals = new Decimal(10).pow(\n    reward.rewardsPerSecondDecimals.toString()\n  );\n  const rewardAmountPerUnitLamports = new Decimal(10).pow(rewardTokenDecimals.toString());\n\n  const rpsAdjusted = new Decimal(rewardPerTimeUnitSecond.toString())\n    .div(rewardAmountPerUnitDecimals)\n    .div(rewardAmountPerUnitLamports);\n\n  return rewardPerTimeUnitSecond ? rpsAdjusted : new Decimal(0);\n}\n\nexport async function getReserveRewardsApy(\n  priceByMint: Record<string, number>,\n  farmState: KaminoFarmState,\n  reserveState: KaminoReserve\n) {\n  const rewardApys: {\n    rewardApy: Decimal;\n    rewardInfo: KaminoFarmRewardInfo;\n    rewardApr: Decimal;\n  }[] = [];\n\n  for (const rewardInfo of farmState.rewardInfos.filter(\n    (x) => x.token.mint !== new PublicKey(\"11111111111111111111111111111111\")\n  )) {\n    // Skip if we don't have prices for reserve or reward token\n    const reserveMint = reserveState.liquidity.mintPubkey.toString();\n    const rewardMint = rewardInfo.token.mint.toString();\n\n    const reservePrice = priceByMint[reserveMint];\n    const rewardPrice = priceByMint[rewardMint];\n\n    // Check for undefined or null (but allow 0 as a valid price)\n    if (\n      reservePrice === undefined ||\n      reservePrice === null ||\n      rewardPrice === undefined ||\n      rewardPrice === null\n    ) {\n      continue;\n    }\n\n    const { apy, apr } = calculateRewardApy(priceByMint, reserveState, rewardInfo);\n    rewardApys.push({ rewardApy: apy, rewardInfo, rewardApr: apr });\n  }\n\n  return rewardApys;\n}\n\nexport function calculateRewardApy(\n  priceByMint: Record<string, number>,\n  reserve: KaminoReserve,\n  rewardInfo: KaminoFarmRewardInfo\n) {\n  const decimals = reserve.liquidity.mintDecimals.toNumber();\n  const totalSupply = getKaminoTotalSupply(reserve);\n  const mintAddress = reserve.liquidity.mintPubkey;\n  const totalAmount = lamportsToNumberDecimal(totalSupply, decimals);\n  const mintPrice = priceByMint[mintAddress.toString()] ?? 0;\n  const totalValue = totalAmount.mul(mintPrice);\n  const rewardPerTimeUnitSecond = getRewardPerTimeUnitSecond(rewardInfo);\n  const rewardsInYear = rewardPerTimeUnitSecond.mul(60 * 60 * 24 * 365);\n  const rewardTokenPrice = priceByMint[rewardInfo.token.mint.toString()] ?? 0;\n  const rewardsInYearValue = rewardsInYear.mul(rewardTokenPrice);\n  const apr = rewardsInYearValue.div(totalValue);\n  return { apr, apy: aprToApy(apr, 1) };\n}\n\nfunction aprToApy(apr: Decimal, compoundPeriods: number) {\n  // if periods = 365 => daily compound\n  // periods = 1 => yearly compound\n  // (1 + apr / periods) ** periods - 1;\n  return new Decimal(1).add(apr.div(compoundPeriods)).pow(compoundPeriods).sub(1);\n}\n\nfunction lamportsToNumberDecimal(amount: Decimal.Value, decimals: number): Decimal {\n  const factor = 10 ** decimals;\n  return new Decimal(amount).div(factor);\n}\n","import { KaminoFarmState, KaminoFarmStateJSON } from \"../../types\";\n\n/**\n * Serialize a Kamino FarmState to its JSON DTO.\n *\n * The parameter is typed as the curated {@link KaminoFarmState}, so a\n * freshly decoded `FarmStateRaw` is accepted structurally and trimmed\n * down to the curated shape here.\n */\nexport function kaminoFarmStateToDto(\n  farmState: KaminoFarmState\n): KaminoFarmStateJSON {\n  return {\n    token: {\n      mint: farmState.token.mint.toBase58(),\n      decimals: farmState.token.decimals.toString(),\n    },\n    rewardInfos: farmState.rewardInfos.map((item) => ({\n      token: {\n        mint: item.token.mint.toBase58(),\n        decimals: item.token.decimals.toString(),\n      },\n      rewardsAvailable: item.rewardsAvailable.toString(),\n      rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,\n      rewardScheduleCurve: {\n        points: item.rewardScheduleCurve.points.map((p) => ({\n          tsStart: p.tsStart.toString(),\n          rewardPerTimeUnit: p.rewardPerTimeUnit.toString(),\n        })),\n      },\n    })),\n  };\n}\n","import { struct, publicKey, u64, array, u8, u128, u32 } from \"@coral-xyz/borsh\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport { KaminoFarmStateJSON } from \"../../types/farm/dto-farm.types\";\nimport { KaminoFarmState } from \"../../types/farm/farm.types\";\nimport { FarmStateRaw } from \"../../types/farm/raw-farm.types\";\n\nconst farmDiscriminator = Buffer.from([198, 102, 216, 74, 63, 66, 163, 190]);\n\nconst farmLayout = struct<FarmStateRaw>([\n  publicKey(\"farmAdmin\"),\n  publicKey(\"globalConfig\"),\n  struct(\n    [publicKey(\"mint\"), u64(\"decimals\"), publicKey(\"tokenProgram\"), array(u64(), 6, \"padding\")],\n    \"token\"\n  ),\n  array(\n    struct([\n      struct(\n        [publicKey(\"mint\"), u64(\"decimals\"), publicKey(\"tokenProgram\"), array(u64(), 6, \"padding\")],\n        \"token\"\n      ),\n      publicKey(\"rewardsVault\"),\n      u64(\"rewardsAvailable\"),\n      struct(\n        [array(struct([u64(\"tsStart\"), u64(\"rewardPerTimeUnit\")]), 20, \"points\")],\n        \"rewardScheduleCurve\"\n      ),\n      u64(\"minClaimDurationSeconds\"),\n      u64(\"lastIssuanceTs\"),\n      u64(\"rewardsIssuedUnclaimed\"),\n      u64(\"rewardsIssuedCumulative\"),\n      u128(\"rewardPerShareScaled\"),\n      u64(\"placeholder0\"),\n      u8(\"rewardType\"),\n      u8(\"rewardsPerSecondDecimals\"),\n      array(u8(), 6, \"padding0\"),\n      array(u64(), 20, \"padding1\"),\n    ]),\n    10,\n    \"rewardInfos\"\n  ),\n  u64(\"numRewardTokens\"),\n  u64(\"numUsers\"),\n  u64(\"totalStakedAmount\"),\n  publicKey(\"farmVault\"),\n  publicKey(\"farmVaultsAuthority\"),\n  u64(\"farmVaultsAuthorityBump\"),\n  publicKey(\"delegateAuthority\"),\n  u8(\"timeUnit\"),\n  u8(\"isFarmFrozen\"),\n  u8(\"isFarmDelegated\"),\n  array(u8(), 5, \"padding0\"),\n  publicKey(\"withdrawAuthority\"),\n  u32(\"depositWarmupPeriod\"),\n  u32(\"withdrawalCooldownPeriod\"),\n  u128(\"totalActiveStakeScaled\"),\n  u128(\"totalPendingStakeScaled\"),\n  u64(\"totalPendingAmount\"),\n  u64(\"slashedAmountCurrent\"),\n  u64(\"slashedAmountCumulative\"),\n  publicKey(\"slashedAmountSpillAddress\"),\n  u64(\"lockingMode\"),\n  u64(\"lockingStartTimestamp\"),\n  u64(\"lockingDuration\"),\n  u64(\"lockingEarlyWithdrawalPenaltyBps\"),\n  u64(\"depositCapAmount\"),\n  publicKey(\"scopePrices\"),\n  u64(\"scopeOraclePriceId\"),\n  u64(\"scopeOracleMaxAge\"),\n  publicKey(\"pendingFarmAdmin\"),\n  publicKey(\"strategyId\"),\n  publicKey(\"delegatedRpsAdmin\"),\n  publicKey(\"vaultId\"),\n  publicKey(\"secondDelegatedAuthority\"),\n  array(u64(), 74, \"padding\"),\n]);\n\nexport function decodeFarmDataRaw(data: Buffer): FarmStateRaw {\n  if (!data.slice(0, 8).equals(farmDiscriminator)) {\n    throw new Error(\"invalid account discriminator\");\n  }\n\n  const dec = farmLayout.decode(data.slice(8));\n  return dec;\n}\n\nexport function dtoToKaminoFarmState(dto: KaminoFarmStateJSON): KaminoFarmState {\n  return {\n    token: {\n      mint: new PublicKey(dto.token.mint),\n      decimals: new BN(dto.token.decimals),\n    },\n    rewardInfos: dto.rewardInfos.map((item) => ({\n      token: {\n        mint: new PublicKey(item.token.mint),\n        decimals: new BN(item.token.decimals),\n      },\n      rewardsAvailable: new BN(item.rewardsAvailable),\n      rewardsPerSecondDecimals: item.rewardsPerSecondDecimals,\n      rewardScheduleCurve: {\n        points: item.rewardScheduleCurve.points.map((p) => ({\n          tsStart: new BN(p.tsStart),\n          rewardPerTimeUnit: new BN(p.rewardPerTimeUnit),\n        })),\n      },\n    })),\n  };\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nexport interface DriftSpotMarket {\n  pubkey: PublicKey;\n  oracle: PublicKey;\n  mint: PublicKey;\n  decimals: number;\n  cumulativeDepositInterest: BN;\n  marketIndex: number;\n\n  // Additional fields needed for APY calculation\n  depositBalance: BN;\n  borrowBalance: BN;\n  cumulativeBorrowInterest: BN;\n  optimalUtilization: number;\n  optimalBorrowRate: number;\n  maxBorrowRate: number;\n  minBorrowRate: number;\n  insuranceFund: {\n    totalFactor: number;\n  };\n\n  // Pool identifier for market labeling (Main Market, JLP Market, LST Market, etc.)\n  poolId: number;\n}\n\nexport enum DriftSpotBalanceType {\n  DEPOSIT = \"deposit\",\n  BORROW = \"borrow\",\n}\n\nexport function isSpotBalanceTypeVariant(\n  value: DriftSpotBalanceType,\n  variant: \"deposit\" | \"borrow\"\n): boolean {\n  return value === variant;\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\n// Fee Structure Types\nexport interface FeeStructure {\n  feeTiers: Array<FeeTier>;\n  fillerRewardStructure: OrderFillerRewardStructure;\n  referrerRewardEpochUpperBound: BN;\n  flatFillerFee: BN;\n}\n\nexport interface FeeStructureJSON {\n  feeTiers: Array<FeeTierJSON>;\n  fillerRewardStructure: OrderFillerRewardStructureJSON;\n  referrerRewardEpochUpperBound: string;\n  flatFillerFee: string;\n}\n\nexport interface FeeTier {\n  feeNumerator: number;\n  feeDenominator: number;\n  makerRebateNumerator: number;\n  makerRebateDenominator: number;\n  referrerRewardNumerator: number;\n  referrerRewardDenominator: number;\n  refereeFeeNumerator: number;\n  refereeFeeDenominator: number;\n}\n\nexport interface FeeTierJSON {\n  feeNumerator: number;\n  feeDenominator: number;\n  makerRebateNumerator: number;\n  makerRebateDenominator: number;\n  referrerRewardNumerator: number;\n  referrerRewardDenominator: number;\n  refereeFeeNumerator: number;\n  refereeFeeDenominator: number;\n}\n\nexport interface OrderFillerRewardStructure {\n  rewardNumerator: number;\n  rewardDenominator: number;\n  timeBasedRewardLowerBound: BN;\n}\n\nexport interface OrderFillerRewardStructureJSON {\n  rewardNumerator: number;\n  rewardDenominator: number;\n  timeBasedRewardLowerBound: string;\n}\n\n// Oracle Guard Rails Types\nexport interface OracleGuardRails {\n  priceDivergence: PriceDivergenceGuardRails;\n  validity: ValidityGuardRails;\n}\n\nexport interface OracleGuardRailsJSON {\n  priceDivergence: PriceDivergenceGuardRailsJSON;\n  validity: ValidityGuardRailsJSON;\n}\n\nexport interface PriceDivergenceGuardRails {\n  markOraclePercentDivergence: BN;\n  oracleTwap5minPercentDivergence: BN;\n}\n\nexport interface PriceDivergenceGuardRailsJSON {\n  markOraclePercentDivergence: string;\n  oracleTwap5minPercentDivergence: string;\n}\n\nexport interface ValidityGuardRails {\n  slotsBeforeStaleForAmm: BN;\n  slotsBeforeStaleForMargin: BN;\n  confidenceIntervalMaxSize: BN;\n  tooVolatileRatio: BN;\n}\n\nexport interface ValidityGuardRailsJSON {\n  slotsBeforeStaleForAmm: string;\n  slotsBeforeStaleForMargin: string;\n  confidenceIntervalMaxSize: string;\n  tooVolatileRatio: string;\n}\n\n// Historical Data Types\nexport interface HistoricalOracleData {\n  /** precision: PRICE_PRECISION */\n  lastOraclePrice: BN;\n  /** precision: PRICE_PRECISION */\n  lastOracleConf: BN;\n  /** number of slots since last update */\n  lastOracleDelay: BN;\n  /** precision: PRICE_PRECISION */\n  lastOraclePriceTwap: BN;\n  /** precision: PRICE_PRECISION */\n  lastOraclePriceTwap5min: BN;\n  /** unix_timestamp of last snapshot */\n  lastOraclePriceTwapTs: BN;\n}\n\nexport interface HistoricalOracleDataJSON {\n  /** precision: PRICE_PRECISION */\n  lastOraclePrice: string;\n  /** precision: PRICE_PRECISION */\n  lastOracleConf: string;\n  /** number of slots since last update */\n  lastOracleDelay: string;\n  /** precision: PRICE_PRECISION */\n  lastOraclePriceTwap: string;\n  /** precision: PRICE_PRECISION */\n  lastOraclePriceTwap5min: string;\n  /** unix_timestamp of last snapshot */\n  lastOraclePriceTwapTs: string;\n}\n\nexport interface HistoricalIndexData {\n  /** precision: PRICE_PRECISION */\n  lastIndexBidPrice: BN;\n  /** precision: PRICE_PRECISION */\n  lastIndexAskPrice: BN;\n  /** precision: PRICE_PRECISION */\n  lastIndexPriceTwap: BN;\n  /** precision: PRICE_PRECISION */\n  lastIndexPriceTwap5min: BN;\n  /** unix_timestamp of last snapshot */\n  lastIndexPriceTwapTs: BN;\n}\n\nexport interface HistoricalIndexDataJSON {\n  /** precision: PRICE_PRECISION */\n  lastIndexBidPrice: string;\n  /** precision: PRICE_PRECISION */\n  lastIndexAskPrice: string;\n  /** precision: PRICE_PRECISION */\n  lastIndexPriceTwap: string;\n  /** precision: PRICE_PRECISION */\n  lastIndexPriceTwap5min: string;\n  /** unix_timestamp of last snapshot */\n  lastIndexPriceTwapTs: string;\n}\n\n// Pool and Insurance Types\nexport interface PoolBalance {\n  /**\n   * To get the pool's token amount, you must multiply the scaled balance by the market's cumulative\n   * deposit interest\n   * precision: SPOT_BALANCE_PRECISION\n   */\n  scaledBalance: BN;\n  /** The spot market the pool is for */\n  marketIndex: number;\n  padding: Array<number>;\n}\n\nexport interface PoolBalanceJSON {\n  /**\n   * To get the pool's token amount, you must multiply the scaled balance by the market's cumulative\n   * deposit interest\n   * precision: SPOT_BALANCE_PRECISION\n   */\n  scaledBalance: string;\n  /** The spot market the pool is for */\n  marketIndex: number;\n  padding: Array<number>;\n}\n\nexport interface InsuranceFund {\n  vault: PublicKey;\n  totalShares: BN;\n  userShares: BN;\n  sharesBase: BN;\n  unstakingPeriod: BN;\n  lastRevenueSettleTs: BN;\n  revenueSettlePeriod: BN;\n  totalFactor: number;\n  userFactor: number;\n}\n\nexport interface InsuranceFundJSON {\n  vault: string;\n  totalShares: string;\n  userShares: string;\n  sharesBase: string;\n  unstakingPeriod: string;\n  lastRevenueSettleTs: string;\n  revenueSettlePeriod: string;\n  totalFactor: number;\n  userFactor: number;\n}\n\n// Spot Position Types\nexport enum SpotBalanceType {\n  Deposit = \"Deposit\",\n  Borrow = \"Borrow\",\n}\n\nexport interface SpotPosition {\n  /**\n   * The scaled balance of the position. To get the token amount, multiply by the cumulative deposit/borrow\n   * interest of corresponding market.\n   * precision: SPOT_BALANCE_PRECISION\n   */\n  scaledBalance: BN;\n  /**\n   * How many spot bids the user has open\n   * precision: token mint precision\n   */\n  openBids: BN;\n  /**\n   * How many spot asks the user has open\n   * precision: token mint precision\n   */\n  openAsks: BN;\n  /**\n   * The cumulative deposits/borrows a user has made into a market\n   * precision: token mint precision\n   */\n  cumulativeDeposits: BN;\n  /** The market index of the corresponding spot market */\n  marketIndex: number;\n  /** Whether the position is deposit or borrow */\n  balanceType: SpotBalanceType;\n  /** Number of open orders */\n  openOrders: number;\n  padding: Array<number>;\n}\n\nexport interface SpotPositionJSON {\n  /**\n   * The scaled balance of the position. To get the token amount, multiply by the cumulative deposit/borrow\n   * interest of corresponding market.\n   * precision: SPOT_BALANCE_PRECISION\n   */\n  scaledBalance: string;\n  /**\n   * How many spot bids the user has open\n   * precision: token mint precision\n   */\n  openBids: string;\n  /**\n   * How many spot asks the user has open\n   * precision: token mint precision\n   */\n  openAsks: string;\n  /**\n   * The cumulative deposits/borrows a user has made into a market\n   * precision: token mint precision\n   */\n  cumulativeDeposits: string;\n  /** The market index of the corresponding spot market */\n  marketIndex: number;\n  /** Whether the position is deposit or borrow */\n  balanceType: SpotBalanceType;\n  /** Number of open orders */\n  openOrders: number;\n  padding: Array<number>;\n}\n","{\n  \"address\": \"dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH\",\n  \"metadata\": {\n    \"name\": \"drift\",\n    \"version\": \"2.114.0\",\n    \"spec\": \"0.1.0\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"initialize_user\",\n      \"discriminator\": [111, 17, 185, 250, 60, 122, 38, 254],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"name\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_user_stats\",\n      \"discriminator\": [254, 243, 72, 98, 251, 130, 168, 213],\n      \"accounts\": [\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize_signed_msg_user_orders\",\n      \"discriminator\": [164, 99, 156, 126, 156, 57, 99, 180],\n      \"accounts\": [\n        {\n          \"name\": \"signed_msg_user_orders\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\"\n        },\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"num_orders\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"resize_signed_msg_user_orders\",\n      \"discriminator\": [137, 10, 87, 150, 18, 115, 79, 168],\n      \"accounts\": [\n        {\n          \"name\": \"signed_msg_user_orders\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\"\n        },\n        {\n          \"name\": \"user\"\n        },\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"num_orders\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_signed_msg_ws_delegates\",\n      \"discriminator\": [40, 132, 96, 219, 184, 193, 80, 8],\n      \"accounts\": [\n        {\n          \"name\": \"signed_msg_ws_delegates\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"delegates\",\n          \"type\": {\n            \"vec\": \"pubkey\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"change_signed_msg_ws_delegate_status\",\n      \"discriminator\": [252, 202, 252, 219, 179, 27, 84, 138],\n      \"accounts\": [\n        {\n          \"name\": \"signed_msg_ws_delegates\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"delegate\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"add\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_fuel_overflow\",\n      \"discriminator\": [88, 223, 132, 161, 208, 88, 142, 42],\n      \"accounts\": [\n        {\n          \"name\": \"fuel_overflow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\"\n        },\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"sweep_fuel\",\n      \"discriminator\": [175, 107, 19, 56, 165, 241, 43, 69],\n      \"accounts\": [\n        {\n          \"name\": \"fuel_overflow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\"\n        },\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"reset_fuel_season\",\n      \"discriminator\": [199, 122, 192, 255, 32, 99, 63, 200],\n      \"accounts\": [\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\"\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize_referrer_name\",\n      \"discriminator\": [235, 126, 231, 10, 42, 164, 26, 61],\n      \"accounts\": [\n        {\n          \"name\": \"referrer_name\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"name\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit\",\n      \"discriminator\": [242, 35, 198, 137, 82, 225, 242, 182],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"reduce_only\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw\",\n      \"discriminator\": [183, 18, 70, 156, 148, 109, 161, 34],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"user_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"reduce_only\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"transfer_deposit\",\n      \"discriminator\": [20, 20, 147, 223, 41, 63, 204, 111],\n      \"accounts\": [\n        {\n          \"name\": \"from_user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"to_user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market_vault\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"transfer_pools\",\n      \"discriminator\": [197, 103, 154, 25, 107, 90, 60, 94],\n      \"accounts\": [\n        {\n          \"name\": \"from_user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"to_user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"deposit_from_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"deposit_to_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"borrow_from_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"borrow_to_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"deposit_from_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"deposit_to_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"borrow_from_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"borrow_to_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"deposit_amount\",\n          \"type\": {\n            \"option\": \"u64\"\n          }\n        },\n        {\n          \"name\": \"borrow_amount\",\n          \"type\": {\n            \"option\": \"u64\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"transfer_perp_position\",\n      \"discriminator\": [23, 172, 188, 168, 134, 210, 3, 108],\n      \"accounts\": [\n        {\n          \"name\": \"from_user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"to_user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": {\n            \"option\": \"i64\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"place_perp_order\",\n      \"discriminator\": [69, 161, 93, 202, 120, 126, 76, 185],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OrderParams\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"cancel_order\",\n      \"discriminator\": [95, 129, 237, 240, 8, 49, 223, 132],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"order_id\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"cancel_order_by_user_id\",\n      \"discriminator\": [107, 211, 250, 133, 18, 37, 57, 100],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"user_order_id\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"cancel_orders\",\n      \"discriminator\": [238, 225, 95, 158, 227, 103, 8, 194],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_type\",\n          \"type\": {\n            \"option\": {\n              \"defined\": {\n                \"name\": \"MarketType\"\n              }\n            }\n          }\n        },\n        {\n          \"name\": \"market_index\",\n          \"type\": {\n            \"option\": \"u16\"\n          }\n        },\n        {\n          \"name\": \"direction\",\n          \"type\": {\n            \"option\": {\n              \"defined\": {\n                \"name\": \"PositionDirection\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"cancel_orders_by_ids\",\n      \"discriminator\": [134, 19, 144, 165, 94, 240, 210, 94],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"order_ids\",\n          \"type\": {\n            \"vec\": \"u32\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"modify_order\",\n      \"discriminator\": [47, 124, 117, 255, 201, 197, 130, 94],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"order_id\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        },\n        {\n          \"name\": \"modify_order_params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"ModifyOrderParams\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"modify_order_by_user_id\",\n      \"discriminator\": [158, 77, 4, 253, 252, 194, 161, 179],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"user_order_id\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"modify_order_params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"ModifyOrderParams\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"place_and_take_perp_order\",\n      \"discriminator\": [213, 51, 1, 187, 108, 220, 230, 224],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OrderParams\"\n            }\n          }\n        },\n        {\n          \"name\": \"success_condition\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"place_and_make_perp_order\",\n      \"discriminator\": [149, 117, 11, 237, 47, 95, 89, 237],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"taker\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"taker_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OrderParams\"\n            }\n          }\n        },\n        {\n          \"name\": \"taker_order_id\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"place_and_make_signed_msg_perp_order\",\n      \"discriminator\": [16, 26, 123, 131, 94, 29, 175, 98],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"taker\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"taker_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"taker_signed_msg_user_orders\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OrderParams\"\n            }\n          }\n        },\n        {\n          \"name\": \"signed_msg_order_uuid\",\n          \"type\": {\n            \"array\": [\"u8\", 8]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"place_signed_msg_taker_order\",\n      \"discriminator\": [32, 79, 101, 139, 25, 6, 98, 15],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signed_msg_user_orders\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"ix_sysvar\",\n          \"docs\": [\n            \"the supplied Sysvar could be anything else.\",\n            \"The Instruction Sysvar has not been implemented\",\n            \"in the Anchor framework yet, so this is the safe approach.\"\n          ]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"signed_msg_order_params_message_bytes\",\n          \"type\": \"bytes\"\n        },\n        {\n          \"name\": \"is_delegate_signer\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"place_spot_order\",\n      \"discriminator\": [45, 79, 81, 160, 248, 90, 91, 220],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OrderParams\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"place_and_take_spot_order\",\n      \"discriminator\": [191, 3, 138, 71, 114, 198, 202, 100],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OrderParams\"\n            }\n          }\n        },\n        {\n          \"name\": \"fulfillment_type\",\n          \"type\": {\n            \"option\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentType\"\n              }\n            }\n          }\n        },\n        {\n          \"name\": \"maker_order_id\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"place_and_make_spot_order\",\n      \"discriminator\": [149, 158, 85, 66, 239, 9, 243, 98],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"taker\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"taker_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OrderParams\"\n            }\n          }\n        },\n        {\n          \"name\": \"taker_order_id\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"fulfillment_type\",\n          \"type\": {\n            \"option\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentType\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"place_orders\",\n      \"discriminator\": [60, 63, 50, 123, 12, 197, 60, 190],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"vec\": {\n              \"defined\": {\n                \"name\": \"OrderParams\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"begin_swap\",\n      \"discriminator\": [174, 109, 228, 1, 242, 105, 232, 105],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"out_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"in_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"out_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"in_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"instructions\",\n          \"docs\": [\"Instructions Sysvar for instruction introspection\"]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"in_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"out_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount_in\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"end_swap\",\n      \"discriminator\": [177, 184, 27, 193, 34, 13, 210, 145],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"out_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"in_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"out_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"in_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"instructions\",\n          \"docs\": [\"Instructions Sysvar for instruction introspection\"]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"in_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"out_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"limit_price\",\n          \"type\": {\n            \"option\": \"u64\"\n          }\n        },\n        {\n          \"name\": \"reduce_only\",\n          \"type\": {\n            \"option\": {\n              \"defined\": {\n                \"name\": \"SwapReduceOnly\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"add_perp_lp_shares\",\n      \"discriminator\": [56, 209, 56, 197, 119, 254, 188, 117],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"n_shares\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"remove_perp_lp_shares\",\n      \"discriminator\": [213, 89, 217, 18, 160, 55, 53, 141],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"shares_to_burn\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"remove_perp_lp_shares_in_expiring_market\",\n      \"discriminator\": [83, 254, 253, 137, 59, 122, 68, 156],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"shares_to_burn\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_name\",\n      \"discriminator\": [135, 25, 185, 56, 165, 53, 34, 136],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"name\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_custom_margin_ratio\",\n      \"discriminator\": [21, 221, 140, 187, 32, 129, 11, 123],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"margin_ratio\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_margin_trading_enabled\",\n      \"discriminator\": [194, 92, 204, 223, 246, 188, 31, 203],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"margin_trading_enabled\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_pool_id\",\n      \"discriminator\": [219, 86, 73, 106, 56, 218, 128, 109],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"pool_id\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_delegate\",\n      \"discriminator\": [139, 205, 141, 141, 113, 36, 94, 187],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"delegate\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_reduce_only\",\n      \"discriminator\": [199, 71, 42, 67, 144, 19, 86, 109],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"reduce_only\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_advanced_lp\",\n      \"discriminator\": [66, 80, 107, 186, 27, 242, 66, 95],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"advanced_lp\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_protected_maker_orders\",\n      \"discriminator\": [114, 39, 123, 198, 187, 25, 90, 219],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"protected_maker_mode_config\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"protected_maker_orders\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"delete_user\",\n      \"discriminator\": [186, 85, 17, 249, 219, 231, 98, 251],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"force_delete_user\",\n      \"discriminator\": [2, 241, 195, 172, 227, 24, 254, 158],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"keeper\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"delete_signed_msg_user_orders\",\n      \"discriminator\": [221, 247, 128, 253, 212, 254, 46, 153],\n      \"accounts\": [\n        {\n          \"name\": \"signed_msg_user_orders\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"reclaim_rent\",\n      \"discriminator\": [218, 200, 19, 197, 227, 89, 192, 22],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"enable_user_high_leverage_mode\",\n      \"discriminator\": [231, 24, 230, 112, 201, 173, 73, 184],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"high_leverage_mode_config\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sub_account_id\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"fill_perp_order\",\n      \"discriminator\": [13, 188, 248, 103, 134, 217, 106, 240],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"filler\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"filler_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"order_id\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        },\n        {\n          \"name\": \"maker_order_id\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"revert_fill\",\n      \"discriminator\": [236, 238, 176, 69, 239, 10, 181, 193],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"filler\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"filler_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"fill_spot_order\",\n      \"discriminator\": [212, 206, 130, 173, 21, 34, 199, 40],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"filler\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"filler_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"order_id\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        },\n        {\n          \"name\": \"fulfillment_type\",\n          \"type\": {\n            \"option\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentType\"\n              }\n            }\n          }\n        },\n        {\n          \"name\": \"maker_order_id\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"trigger_order\",\n      \"discriminator\": [63, 112, 51, 233, 232, 47, 240, 199],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"filler\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"order_id\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"force_cancel_orders\",\n      \"discriminator\": [64, 181, 196, 63, 222, 72, 64, 232],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"filler\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_user_idle\",\n      \"discriminator\": [253, 133, 67, 22, 103, 161, 20, 100],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"filler\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"log_user_balances\",\n      \"discriminator\": [162, 21, 35, 251, 32, 57, 161, 210],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"disable_user_high_leverage_mode\",\n      \"discriminator\": [183, 155, 45, 0, 226, 85, 213, 69],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"high_leverage_mode_config\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_user_fuel_bonus\",\n      \"discriminator\": [88, 175, 201, 190, 222, 100, 143, 57],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_user_stats_referrer_status\",\n      \"discriminator\": [174, 154, 72, 42, 191, 148, 145, 205],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_user_open_orders_count\",\n      \"discriminator\": [104, 39, 65, 210, 250, 163, 100, 134],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"filler\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"admin_disable_update_perp_bid_ask_twap\",\n      \"discriminator\": [17, 164, 82, 45, 183, 86, 191, 199],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"disable\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"settle_pnl\",\n      \"discriminator\": [43, 61, 234, 45, 15, 95, 152, 153],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market_vault\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"settle_multiple_pnls\",\n      \"discriminator\": [127, 66, 117, 57, 40, 50, 152, 127],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market_vault\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_indexes\",\n          \"type\": {\n            \"vec\": \"u16\"\n          }\n        },\n        {\n          \"name\": \"mode\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"SettlePnlMode\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"settle_funding_payment\",\n      \"discriminator\": [222, 90, 202, 94, 28, 45, 115, 183],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"settle_lp\",\n      \"discriminator\": [155, 231, 116, 113, 97, 229, 139, 141],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"settle_expired_market\",\n      \"discriminator\": [120, 89, 11, 25, 122, 77, 72, 193],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_perp\",\n      \"discriminator\": [75, 35, 119, 247, 191, 18, 139, 2],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"liquidator_max_base_asset_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"limit_price\",\n          \"type\": {\n            \"option\": \"u64\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_perp_with_fill\",\n      \"discriminator\": [95, 111, 124, 105, 86, 169, 187, 34],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_spot\",\n      \"discriminator\": [107, 0, 128, 41, 35, 229, 251, 18],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"asset_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"liability_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"liquidator_max_liability_transfer\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"limit_price\",\n          \"type\": {\n            \"option\": \"u64\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_spot_with_swap_begin\",\n      \"discriminator\": [12, 43, 176, 83, 156, 251, 117, 13],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liability_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"asset_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liability_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"asset_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"instructions\",\n          \"docs\": [\"Instructions Sysvar for instruction introspection\"]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"asset_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"liability_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"swap_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_spot_with_swap_end\",\n      \"discriminator\": [142, 88, 163, 160, 223, 75, 55, 225],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liability_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"asset_spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liability_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"asset_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"instructions\",\n          \"docs\": [\"Instructions Sysvar for instruction introspection\"]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"asset_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"liability_market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_borrow_for_perp_pnl\",\n      \"discriminator\": [169, 17, 32, 90, 207, 148, 209, 27],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"perp_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"spot_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"liquidator_max_liability_transfer\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"limit_price\",\n          \"type\": {\n            \"option\": \"u64\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"liquidate_perp_pnl_for_deposit\",\n      \"discriminator\": [237, 75, 198, 235, 233, 186, 75, 35],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"perp_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"spot_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"liquidator_max_pnl_transfer\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"limit_price\",\n          \"type\": {\n            \"option\": \"u64\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"set_user_status_to_being_liquidated\",\n      \"discriminator\": [106, 133, 160, 206, 193, 171, 192, 194],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"resolve_perp_pnl_deficit\",\n      \"discriminator\": [168, 204, 68, 150, 159, 126, 95, 148],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"spot_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"perp_market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"resolve_perp_bankruptcy\",\n      \"discriminator\": [224, 16, 176, 214, 162, 213, 183, 222],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"quote_spot_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"resolve_spot_bankruptcy\",\n      \"discriminator\": [124, 194, 240, 254, 198, 213, 52, 122],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidator\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidator_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"settle_revenue_to_insurance_fund\",\n      \"discriminator\": [200, 120, 93, 136, 69, 38, 199, 159],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"spot_market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_funding_rate\",\n      \"discriminator\": [201, 178, 116, 212, 166, 144, 72, 238],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_prelaunch_oracle\",\n      \"discriminator\": [220, 132, 27, 27, 233, 220, 61, 219],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\"\n        },\n        {\n          \"name\": \"oracle\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_perp_bid_ask_twap\",\n      \"discriminator\": [247, 23, 255, 65, 212, 90, 221, 194],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"keeper_stats\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_spot_market_cumulative_interest\",\n      \"discriminator\": [39, 166, 139, 243, 158, 165, 155, 225],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"spot_market_vault\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_amms\",\n      \"discriminator\": [201, 106, 217, 253, 4, 175, 228, 97],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_indexes\",\n          \"type\": {\n            \"array\": [\"u16\", 5]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_expiry\",\n      \"discriminator\": [208, 11, 211, 159, 226, 24, 11, 247],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"expiry_ts\",\n          \"type\": \"i64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_quote_asset_insurance_stake\",\n      \"discriminator\": [251, 101, 156, 7, 2, 63, 30, 23],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_stake\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_user_gov_token_insurance_stake\",\n      \"discriminator\": [143, 99, 235, 187, 20, 159, 184, 84],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_stake\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_user_gov_token_insurance_stake_devnet\",\n      \"discriminator\": [129, 185, 243, 183, 228, 111, 64, 175],\n      \"accounts\": [\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"gov_stake_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_insurance_fund_stake\",\n      \"discriminator\": [187, 179, 243, 70, 248, 90, 92, 147],\n      \"accounts\": [\n        {\n          \"name\": \"spot_market\"\n        },\n        {\n          \"name\": \"insurance_fund_stake\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"add_insurance_fund_stake\",\n      \"discriminator\": [251, 144, 115, 11, 222, 47, 62, 236],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_stake\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"user_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"request_remove_insurance_fund_stake\",\n      \"discriminator\": [142, 70, 204, 92, 73, 106, 180, 52],\n      \"accounts\": [\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_stake\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"cancel_request_remove_insurance_fund_stake\",\n      \"discriminator\": [97, 235, 78, 62, 212, 42, 241, 127],\n      \"accounts\": [\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_stake\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"remove_insurance_fund_stake\",\n      \"discriminator\": [128, 166, 142, 9, 254, 187, 143, 174],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_stake\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"user_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"transfer_protocol_if_shares\",\n      \"discriminator\": [94, 93, 226, 240, 195, 201, 184, 109],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"transfer_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_stake\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"shares\",\n          \"type\": \"u128\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_pyth_pull_oracle\",\n      \"discriminator\": [230, 191, 189, 94, 108, 59, 74, 197],\n      \"accounts\": [\n        {\n          \"name\": \"keeper\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"pyth_solana_receiver\"\n        },\n        {\n          \"name\": \"encoded_vaa\"\n        },\n        {\n          \"name\": \"price_feed\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"feed_id\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        },\n        {\n          \"name\": \"params\",\n          \"type\": \"bytes\"\n        }\n      ]\n    },\n    {\n      \"name\": \"post_pyth_pull_oracle_update_atomic\",\n      \"discriminator\": [116, 122, 137, 158, 224, 195, 173, 119],\n      \"accounts\": [\n        {\n          \"name\": \"keeper\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"pyth_solana_receiver\"\n        },\n        {\n          \"name\": \"guardian_set\"\n        },\n        {\n          \"name\": \"price_feed\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"feed_id\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        },\n        {\n          \"name\": \"params\",\n          \"type\": \"bytes\"\n        }\n      ]\n    },\n    {\n      \"name\": \"post_multi_pyth_pull_oracle_updates_atomic\",\n      \"discriminator\": [243, 79, 204, 228, 227, 208, 100, 244],\n      \"accounts\": [\n        {\n          \"name\": \"keeper\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"pyth_solana_receiver\"\n        },\n        {\n          \"name\": \"guardian_set\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": \"bytes\"\n        }\n      ]\n    },\n    {\n      \"name\": \"pause_spot_market_deposit_withdraw\",\n      \"discriminator\": [183, 119, 59, 170, 137, 35, 242, 86],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"keeper\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market_vault\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize\",\n      \"discriminator\": [175, 175, 109, 31, 13, 152, 155, 237],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"quote_asset_mint\"\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize_spot_market\",\n      \"discriminator\": [234, 196, 128, 44, 94, 15, 48, 201],\n      \"accounts\": [\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market_mint\"\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"optimal_utilization\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"optimal_borrow_rate\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"max_borrow_rate\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"oracle_source\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OracleSource\"\n            }\n          }\n        },\n        {\n          \"name\": \"initial_asset_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"maintenance_asset_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"initial_liability_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"maintenance_liability_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"imf_factor\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"liquidator_fee\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"if_liquidation_fee\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"active_status\",\n          \"type\": \"bool\"\n        },\n        {\n          \"name\": \"asset_tier\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"AssetTier\"\n            }\n          }\n        },\n        {\n          \"name\": \"scale_initial_asset_weight_start\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"withdraw_guard_threshold\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"order_tick_size\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"order_step_size\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"if_total_factor\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"name\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"delete_initialized_spot_market\",\n      \"discriminator\": [31, 140, 67, 191, 189, 20, 101, 221],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"insurance_fund_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_serum_fulfillment_config\",\n      \"discriminator\": [193, 211, 132, 172, 70, 171, 7, 94],\n      \"accounts\": [\n        {\n          \"name\": \"base_spot_market\"\n        },\n        {\n          \"name\": \"quote_spot_market\"\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"serum_program\"\n        },\n        {\n          \"name\": \"serum_market\"\n        },\n        {\n          \"name\": \"serum_open_orders\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"serum_fulfillment_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_serum_fulfillment_config_status\",\n      \"discriminator\": [171, 109, 240, 251, 95, 1, 149, 89],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"serum_fulfillment_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"status\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"SpotFulfillmentConfigStatus\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_openbook_v2_fulfillment_config\",\n      \"discriminator\": [7, 221, 103, 153, 107, 57, 27, 197],\n      \"accounts\": [\n        {\n          \"name\": \"base_spot_market\"\n        },\n        {\n          \"name\": \"quote_spot_market\"\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"openbook_v2_program\"\n        },\n        {\n          \"name\": \"openbook_v2_market\"\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"openbook_v2_fulfillment_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"openbook_v2_fulfillment_config_status\",\n      \"discriminator\": [25, 173, 19, 189, 4, 211, 64, 238],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"openbook_v2_fulfillment_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"status\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"SpotFulfillmentConfigStatus\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_phoenix_fulfillment_config\",\n      \"discriminator\": [135, 132, 110, 107, 185, 160, 169, 154],\n      \"accounts\": [\n        {\n          \"name\": \"base_spot_market\"\n        },\n        {\n          \"name\": \"quote_spot_market\"\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"phoenix_program\"\n        },\n        {\n          \"name\": \"phoenix_market\"\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"phoenix_fulfillment_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"phoenix_fulfillment_config_status\",\n      \"discriminator\": [96, 31, 113, 32, 12, 203, 7, 154],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"phoenix_fulfillment_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"status\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"SpotFulfillmentConfigStatus\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_serum_vault\",\n      \"discriminator\": [219, 8, 246, 96, 169, 121, 91, 110],\n      \"accounts\": [\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"srm_vault\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize_perp_market\",\n      \"discriminator\": [132, 9, 229, 118, 117, 118, 117, 62],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amm_base_asset_reserve\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"amm_quote_asset_reserve\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"amm_periodicity\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"amm_peg_multiplier\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"oracle_source\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OracleSource\"\n            }\n          }\n        },\n        {\n          \"name\": \"contract_tier\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"ContractTier\"\n            }\n          }\n        },\n        {\n          \"name\": \"margin_ratio_initial\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"margin_ratio_maintenance\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"liquidator_fee\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"if_liquidation_fee\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"imf_factor\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"active_status\",\n          \"type\": \"bool\"\n        },\n        {\n          \"name\": \"base_spread\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"max_spread\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"max_open_interest\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"max_revenue_withdraw_per_period\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"quote_max_insurance\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"order_step_size\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"order_tick_size\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_order_size\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"concentration_coef_scale\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"curve_update_intensity\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"amm_jit_intensity\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"name\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_prediction_market\",\n      \"discriminator\": [248, 70, 198, 224, 224, 105, 125, 195],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"delete_initialized_perp_market\",\n      \"discriminator\": [91, 154, 24, 87, 106, 59, 190, 66],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"move_amm_price\",\n      \"discriminator\": [235, 109, 2, 82, 219, 118, 6, 159],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"base_asset_reserve\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"quote_asset_reserve\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"sqrt_k\",\n          \"type\": \"u128\"\n        }\n      ]\n    },\n    {\n      \"name\": \"recenter_perp_market_amm\",\n      \"discriminator\": [24, 87, 10, 115, 165, 190, 80, 139],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"peg_multiplier\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"sqrt_k\",\n          \"type\": \"u128\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_amm_summary_stats\",\n      \"discriminator\": [122, 101, 249, 238, 209, 9, 241, 245],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market\"\n        },\n        {\n          \"name\": \"oracle\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"UpdatePerpMarketSummaryStatsParams\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_expiry\",\n      \"discriminator\": [44, 221, 227, 151, 131, 140, 22, 110],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"expiry_ts\",\n          \"type\": \"i64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"settle_expired_market_pools_to_revenue_pool\",\n      \"discriminator\": [55, 19, 238, 169, 227, 90, 200, 184],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"deposit_into_perp_market_fee_pool\",\n      \"discriminator\": [34, 58, 57, 68, 97, 80, 244, 6],\n      \"accounts\": [\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"source_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"drift_signer\"\n        },\n        {\n          \"name\": \"quote_spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_into_spot_market_vault\",\n      \"discriminator\": [48, 252, 119, 73, 255, 205, 174, 247],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"source_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_into_spot_market_revenue_pool\",\n      \"discriminator\": [92, 40, 151, 42, 122, 254, 139, 246],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"spot_market_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"repeg_amm_curve\",\n      \"discriminator\": [3, 36, 102, 89, 180, 128, 120, 213],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_peg_candidate\",\n          \"type\": \"u128\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_amm_oracle_twap\",\n      \"discriminator\": [241, 74, 114, 123, 206, 153, 24, 202],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"reset_perp_market_amm_oracle_twap\",\n      \"discriminator\": [127, 10, 55, 164, 123, 226, 47, 24],\n      \"accounts\": [\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_k\",\n      \"discriminator\": [72, 98, 9, 139, 129, 229, 172, 56],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sqrt_k\",\n          \"type\": \"u128\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_margin_ratio\",\n      \"discriminator\": [130, 173, 107, 45, 119, 105, 26, 113],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"margin_ratio_initial\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"margin_ratio_maintenance\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_high_leverage_margin_ratio\",\n      \"discriminator\": [88, 112, 86, 49, 24, 116, 74, 157],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"margin_ratio_initial\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"margin_ratio_maintenance\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_funding_period\",\n      \"discriminator\": [171, 161, 69, 91, 129, 139, 161, 28],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"funding_period\",\n          \"type\": \"i64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_max_imbalances\",\n      \"discriminator\": [15, 206, 73, 133, 60, 8, 86, 89],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"unrealized_max_imbalance\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"max_revenue_withdraw_per_period\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"quote_max_insurance\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_liquidation_fee\",\n      \"discriminator\": [90, 137, 9, 145, 41, 8, 148, 117],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidator_fee\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"if_liquidation_fee\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_insurance_fund_unstaking_period\",\n      \"discriminator\": [44, 69, 43, 226, 204, 223, 202, 52],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"insurance_fund_unstaking_period\",\n          \"type\": \"i64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_pool_id\",\n      \"discriminator\": [22, 213, 197, 160, 139, 193, 81, 149],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"pool_id\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_liquidation_fee\",\n      \"discriminator\": [11, 13, 255, 53, 56, 136, 104, 177],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidator_fee\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"if_liquidation_fee\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_withdraw_guard_threshold\",\n      \"discriminator\": [56, 18, 39, 61, 155, 211, 44, 133],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"withdraw_guard_threshold\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_if_factor\",\n      \"discriminator\": [147, 30, 224, 34, 18, 230, 105, 4],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"spot_market_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"user_if_factor\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"total_if_factor\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_revenue_settle_period\",\n      \"discriminator\": [81, 92, 126, 41, 250, 225, 156, 219],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"revenue_settle_period\",\n          \"type\": \"i64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_status\",\n      \"discriminator\": [78, 94, 16, 188, 193, 110, 231, 31],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"status\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"MarketStatus\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_paused_operations\",\n      \"discriminator\": [100, 61, 153, 81, 180, 12, 6, 248],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"paused_operations\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_asset_tier\",\n      \"discriminator\": [253, 209, 231, 14, 242, 208, 243, 130],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"asset_tier\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"AssetTier\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_margin_weights\",\n      \"discriminator\": [109, 33, 87, 195, 255, 36, 6, 81],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"initial_asset_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"maintenance_asset_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"initial_liability_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"maintenance_liability_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"imf_factor\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_borrow_rate\",\n      \"discriminator\": [71, 239, 236, 153, 210, 62, 254, 76],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"optimal_utilization\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"optimal_borrow_rate\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"max_borrow_rate\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"min_borrow_rate\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_max_token_deposits\",\n      \"discriminator\": [56, 191, 79, 18, 26, 121, 80, 208],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_token_deposits\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_max_token_borrows\",\n      \"discriminator\": [57, 102, 204, 212, 253, 95, 13, 199],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_token_borrows_fraction\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_scale_initial_asset_weight_start\",\n      \"discriminator\": [217, 204, 204, 118, 204, 130, 225, 147],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"scale_initial_asset_weight_start\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_oracle\",\n      \"discriminator\": [114, 184, 102, 37, 246, 186, 180, 99],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"old_oracle\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"oracle\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"oracle_source\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OracleSource\"\n            }\n          }\n        },\n        {\n          \"name\": \"skip_invariant_check\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_step_size_and_tick_size\",\n      \"discriminator\": [238, 153, 137, 80, 206, 59, 250, 61],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"step_size\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"tick_size\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_min_order_size\",\n      \"discriminator\": [93, 128, 11, 119, 26, 20, 181, 50],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"order_size\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_orders_enabled\",\n      \"discriminator\": [190, 79, 206, 15, 26, 229, 229, 43],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"orders_enabled\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_if_paused_operations\",\n      \"discriminator\": [101, 215, 79, 74, 59, 41, 79, 12],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"paused_operations\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_name\",\n      \"discriminator\": [17, 208, 1, 1, 162, 211, 188, 224],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"name\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_status\",\n      \"discriminator\": [71, 201, 175, 122, 255, 207, 196, 207],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"status\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"MarketStatus\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_paused_operations\",\n      \"discriminator\": [53, 16, 136, 132, 30, 220, 121, 85],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"paused_operations\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_contract_tier\",\n      \"discriminator\": [236, 128, 15, 95, 203, 214, 68, 117],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"contract_tier\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"ContractTier\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_imf_factor\",\n      \"discriminator\": [207, 194, 56, 132, 35, 67, 71, 244],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"imf_factor\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"unrealized_pnl_imf_factor\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_unrealized_asset_weight\",\n      \"discriminator\": [135, 132, 205, 165, 109, 150, 166, 106],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"unrealized_initial_asset_weight\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"unrealized_maintenance_asset_weight\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_concentration_coef\",\n      \"discriminator\": [24, 78, 232, 126, 169, 176, 230, 16],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"concentration_scale\",\n          \"type\": \"u128\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_curve_update_intensity\",\n      \"discriminator\": [50, 131, 6, 156, 226, 231, 189, 72],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"curve_update_intensity\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_target_base_asset_amount_per_lp\",\n      \"discriminator\": [62, 87, 68, 115, 29, 150, 150, 165],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"target_base_asset_amount_per_lp\",\n          \"type\": \"i32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_per_lp_base\",\n      \"discriminator\": [103, 152, 103, 102, 89, 144, 193, 71],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"per_lp_base\",\n          \"type\": \"i8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_lp_cooldown_time\",\n      \"discriminator\": [198, 133, 88, 41, 241, 119, 61, 14],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"lp_cooldown_time\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_fee_structure\",\n      \"discriminator\": [23, 178, 111, 203, 73, 22, 140, 75],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"fee_structure\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"FeeStructure\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_fee_structure\",\n      \"discriminator\": [97, 216, 105, 131, 113, 246, 142, 141],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"fee_structure\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"FeeStructure\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_initial_pct_to_liquidate\",\n      \"discriminator\": [210, 133, 225, 128, 194, 50, 13, 109],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"initial_pct_to_liquidate\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_liquidation_duration\",\n      \"discriminator\": [28, 154, 20, 249, 102, 192, 73, 71],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidation_duration\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_liquidation_margin_buffer_ratio\",\n      \"discriminator\": [132, 224, 243, 160, 154, 82, 97, 215],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidation_margin_buffer_ratio\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_oracle_guard_rails\",\n      \"discriminator\": [131, 112, 10, 59, 32, 54, 40, 164],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"oracle_guard_rails\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OracleGuardRails\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_state_settlement_duration\",\n      \"discriminator\": [97, 68, 199, 235, 131, 80, 61, 173],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"settlement_duration\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_state_max_number_of_sub_accounts\",\n      \"discriminator\": [155, 123, 214, 2, 221, 166, 204, 85],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_number_of_sub_accounts\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_state_max_initialize_user_fee\",\n      \"discriminator\": [237, 225, 25, 237, 193, 45, 77, 97],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_initialize_user_fee\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_oracle\",\n      \"discriminator\": [182, 113, 111, 160, 67, 174, 89, 191],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"oracle\"\n        },\n        {\n          \"name\": \"old_oracle\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"oracle\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"oracle_source\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"OracleSource\"\n            }\n          }\n        },\n        {\n          \"name\": \"skip_invariant_check\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_base_spread\",\n      \"discriminator\": [71, 95, 84, 168, 9, 157, 198, 65],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"base_spread\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_amm_jit_intensity\",\n      \"discriminator\": [181, 191, 53, 109, 166, 249, 55, 142],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amm_jit_intensity\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_max_spread\",\n      \"discriminator\": [80, 252, 122, 62, 40, 218, 91, 100],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_spread\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_step_size_and_tick_size\",\n      \"discriminator\": [231, 255, 97, 25, 146, 139, 174, 4],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"step_size\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"tick_size\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_name\",\n      \"discriminator\": [211, 31, 21, 210, 64, 108, 66, 201],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"name\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_min_order_size\",\n      \"discriminator\": [226, 74, 5, 89, 108, 223, 46, 141],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"order_size\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_max_slippage_ratio\",\n      \"discriminator\": [235, 37, 40, 196, 70, 146, 54, 201],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_slippage_ratio\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_max_fill_reserve_fraction\",\n      \"discriminator\": [19, 172, 114, 154, 42, 135, 161, 133],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_fill_reserve_fraction\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_max_open_interest\",\n      \"discriminator\": [194, 79, 149, 224, 246, 102, 186, 140],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_open_interest\",\n          \"type\": \"u128\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_number_of_users\",\n      \"discriminator\": [35, 62, 144, 177, 180, 62, 215, 196],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"number_of_users\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        },\n        {\n          \"name\": \"number_of_users_with_base\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_fee_adjustment\",\n      \"discriminator\": [194, 174, 87, 102, 43, 148, 32, 112],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"fee_adjustment\",\n          \"type\": \"i16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_fee_adjustment\",\n      \"discriminator\": [148, 182, 3, 126, 157, 114, 220, 99],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"fee_adjustment\",\n          \"type\": \"i16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_market_fuel\",\n      \"discriminator\": [252, 141, 110, 101, 27, 99, 182, 21],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"fuel_boost_taker\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_maker\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_position\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_market_fuel\",\n      \"discriminator\": [226, 253, 76, 71, 17, 2, 171, 169],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"spot_market\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"fuel_boost_deposits\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_borrows\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_taker\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_maker\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_insurance\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"init_user_fuel\",\n      \"discriminator\": [132, 191, 228, 141, 201, 138, 60, 48],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"user\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_stats\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"fuel_boost_deposits\",\n          \"type\": {\n            \"option\": \"i32\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_borrows\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_taker\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_maker\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        },\n        {\n          \"name\": \"fuel_boost_insurance\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_admin\",\n      \"discriminator\": [161, 176, 40, 213, 60, 184, 179, 228],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"admin\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_whitelist_mint\",\n      \"discriminator\": [161, 15, 162, 19, 148, 120, 144, 151],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"whitelist_mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_discount_mint\",\n      \"discriminator\": [32, 252, 122, 211, 66, 31, 47, 241],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"discount_mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_exchange_status\",\n      \"discriminator\": [83, 160, 252, 250, 129, 116, 49, 223],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"exchange_status\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_perp_auction_duration\",\n      \"discriminator\": [126, 110, 52, 174, 30, 206, 215, 90],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"min_perp_auction_duration\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_spot_auction_duration\",\n      \"discriminator\": [182, 178, 203, 72, 187, 143, 157, 107],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"state\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"default_spot_auction_duration\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_protocol_if_shares_transfer_config\",\n      \"discriminator\": [89, 131, 239, 200, 178, 141, 106, 194],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"protocol_if_shares_transfer_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_protocol_if_shares_transfer_config\",\n      \"discriminator\": [34, 135, 47, 91, 220, 24, 212, 53],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"protocol_if_shares_transfer_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"whitelisted_signers\",\n          \"type\": {\n            \"option\": {\n              \"array\": [\"pubkey\", 4]\n            }\n          }\n        },\n        {\n          \"name\": \"max_transfer_per_epoch\",\n          \"type\": {\n            \"option\": \"u128\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_prelaunch_oracle\",\n      \"discriminator\": [169, 178, 84, 25, 175, 62, 29, 247],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"prelaunch_oracle\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"PrelaunchOracleParams\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_prelaunch_oracle_params\",\n      \"discriminator\": [98, 205, 147, 243, 18, 75, 83, 207],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"prelaunch_oracle\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"perp_market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"params\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"PrelaunchOracleParams\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"delete_prelaunch_oracle\",\n      \"discriminator\": [59, 169, 100, 49, 69, 17, 173, 253],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"prelaunch_oracle\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"perp_market\"\n        },\n        {\n          \"name\": \"state\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"perp_market_index\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_pyth_pull_oracle\",\n      \"discriminator\": [249, 140, 253, 243, 248, 74, 240, 238],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"pyth_solana_receiver\"\n        },\n        {\n          \"name\": \"price_feed\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"state\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"feed_id\",\n          \"type\": {\n            \"array\": [\"u8\", 32]\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_pyth_lazer_oracle\",\n      \"discriminator\": [140, 107, 33, 214, 235, 219, 103, 20],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lazer_oracle\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"feed_id\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"post_pyth_lazer_oracle_update\",\n      \"discriminator\": [218, 237, 170, 245, 39, 143, 166, 33],\n      \"accounts\": [\n        {\n          \"name\": \"keeper\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"pyth_lazer_storage\"\n        },\n        {\n          \"name\": \"ix_sysvar\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"pyth_message\",\n          \"type\": \"bytes\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_high_leverage_mode_config\",\n      \"discriminator\": [213, 167, 93, 246, 208, 130, 90, 248],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"high_leverage_mode_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_users\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_high_leverage_mode_config\",\n      \"discriminator\": [64, 122, 212, 93, 141, 217, 202, 55],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"high_leverage_mode_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_users\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"reduce_only\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_protected_maker_mode_config\",\n      \"discriminator\": [67, 103, 220, 67, 88, 32, 252, 8],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"protected_maker_mode_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        },\n        {\n          \"name\": \"rent\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_users\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_protected_maker_mode_config\",\n      \"discriminator\": [86, 166, 235, 253, 67, 202, 223, 17],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"protected_maker_mode_config\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"state\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"max_users\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"reduce_only\",\n          \"type\": \"bool\"\n        },\n        {\n          \"name\": \"current_users\",\n          \"type\": {\n            \"option\": \"u32\"\n          }\n        }\n      ]\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"OpenbookV2FulfillmentConfig\",\n      \"discriminator\": [3, 43, 58, 106, 131, 132, 199, 171]\n    },\n    {\n      \"name\": \"PhoenixV1FulfillmentConfig\",\n      \"discriminator\": [233, 45, 62, 40, 35, 129, 48, 72]\n    },\n    {\n      \"name\": \"SerumV3FulfillmentConfig\",\n      \"discriminator\": [65, 160, 197, 112, 239, 168, 103, 185]\n    },\n    {\n      \"name\": \"HighLeverageModeConfig\",\n      \"discriminator\": [3, 196, 90, 189, 193, 64, 228, 234]\n    },\n    {\n      \"name\": \"InsuranceFundStake\",\n      \"discriminator\": [110, 202, 14, 42, 95, 73, 90, 95]\n    },\n    {\n      \"name\": \"ProtocolIfSharesTransferConfig\",\n      \"discriminator\": [188, 1, 213, 98, 23, 148, 30, 1]\n    },\n    {\n      \"name\": \"PrelaunchOracle\",\n      \"discriminator\": [92, 14, 139, 234, 72, 244, 68, 26]\n    },\n    {\n      \"name\": \"PerpMarket\",\n      \"discriminator\": [10, 223, 12, 44, 107, 245, 55, 247]\n    },\n    {\n      \"name\": \"ProtectedMakerModeConfig\",\n      \"discriminator\": [47, 86, 90, 9, 224, 255, 10, 69]\n    },\n    {\n      \"name\": \"PythLazerOracle\",\n      \"discriminator\": [159, 7, 161, 249, 34, 81, 121, 133]\n    },\n    {\n      \"name\": \"SignedMsgUserOrders\",\n      \"discriminator\": [70, 6, 50, 248, 222, 1, 143, 49]\n    },\n    {\n      \"name\": \"SignedMsgWsDelegates\",\n      \"discriminator\": [190, 115, 111, 44, 216, 252, 108, 85]\n    },\n    {\n      \"name\": \"SpotMarket\",\n      \"discriminator\": [100, 177, 8, 107, 168, 65, 65, 39]\n    },\n    {\n      \"name\": \"State\",\n      \"discriminator\": [216, 146, 107, 94, 104, 75, 182, 177]\n    },\n    {\n      \"name\": \"User\",\n      \"discriminator\": [159, 117, 95, 227, 239, 151, 58, 236]\n    },\n    {\n      \"name\": \"UserStats\",\n      \"discriminator\": [176, 223, 136, 27, 122, 79, 32, 227]\n    },\n    {\n      \"name\": \"ReferrerName\",\n      \"discriminator\": [105, 133, 170, 110, 52, 42, 28, 182]\n    },\n    {\n      \"name\": \"FuelOverflow\",\n      \"discriminator\": [182, 64, 231, 177, 226, 142, 69, 58]\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"NewUserRecord\",\n      \"discriminator\": [236, 186, 113, 219, 42, 51, 149, 249]\n    },\n    {\n      \"name\": \"DepositRecord\",\n      \"discriminator\": [180, 241, 218, 207, 102, 135, 44, 134]\n    },\n    {\n      \"name\": \"SpotInterestRecord\",\n      \"discriminator\": [183, 186, 203, 186, 225, 187, 95, 130]\n    },\n    {\n      \"name\": \"FundingPaymentRecord\",\n      \"discriminator\": [8, 59, 96, 20, 137, 201, 56, 95]\n    },\n    {\n      \"name\": \"FundingRateRecord\",\n      \"discriminator\": [68, 3, 255, 26, 133, 91, 147, 254]\n    },\n    {\n      \"name\": \"CurveRecord\",\n      \"discriminator\": [101, 238, 40, 228, 70, 46, 61, 117]\n    },\n    {\n      \"name\": \"SignedMsgOrderRecord\",\n      \"discriminator\": [211, 197, 25, 18, 142, 86, 113, 27]\n    },\n    {\n      \"name\": \"OrderRecord\",\n      \"discriminator\": [104, 19, 64, 56, 89, 21, 2, 90]\n    },\n    {\n      \"name\": \"OrderActionRecord\",\n      \"discriminator\": [224, 52, 67, 71, 194, 237, 109, 1]\n    },\n    {\n      \"name\": \"LPRecord\",\n      \"discriminator\": [101, 22, 54, 38, 178, 13, 142, 111]\n    },\n    {\n      \"name\": \"LiquidationRecord\",\n      \"discriminator\": [127, 17, 0, 108, 182, 13, 231, 53]\n    },\n    {\n      \"name\": \"SettlePnlRecord\",\n      \"discriminator\": [57, 68, 105, 26, 119, 198, 213, 89]\n    },\n    {\n      \"name\": \"InsuranceFundRecord\",\n      \"discriminator\": [56, 222, 215, 235, 78, 197, 99, 146]\n    },\n    {\n      \"name\": \"InsuranceFundStakeRecord\",\n      \"discriminator\": [68, 66, 156, 7, 216, 148, 250, 114]\n    },\n    {\n      \"name\": \"SwapRecord\",\n      \"discriminator\": [162, 187, 123, 194, 138, 56, 250, 241]\n    },\n    {\n      \"name\": \"SpotMarketVaultDepositRecord\",\n      \"discriminator\": [178, 217, 23, 188, 127, 190, 32, 73]\n    },\n    {\n      \"name\": \"DeleteUserRecord\",\n      \"discriminator\": [71, 111, 190, 118, 7, 3, 132, 222]\n    },\n    {\n      \"name\": \"FuelSweepRecord\",\n      \"discriminator\": [41, 84, 37, 246, 132, 240, 131, 8]\n    },\n    {\n      \"name\": \"FuelSeasonRecord\",\n      \"discriminator\": [19, 137, 119, 33, 224, 249, 6, 87]\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"InvalidSpotMarketAuthority\",\n      \"msg\": \"Invalid Spot Market Authority\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"InvalidInsuranceFundAuthority\",\n      \"msg\": \"Clearing house not insurance fund authority\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"InsufficientDeposit\",\n      \"msg\": \"Insufficient deposit\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"InsufficientCollateral\",\n      \"msg\": \"Insufficient collateral\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"SufficientCollateral\",\n      \"msg\": \"Sufficient collateral\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"MaxNumberOfPositions\",\n      \"msg\": \"Max number of positions taken\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"AdminControlsPricesDisabled\",\n      \"msg\": \"Admin Controls Prices Disabled\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"MarketDelisted\",\n      \"msg\": \"Market Delisted\"\n    },\n    {\n      \"code\": 6008,\n      \"name\": \"MarketIndexAlreadyInitialized\",\n      \"msg\": \"Market Index Already Initialized\"\n    },\n    {\n      \"code\": 6009,\n      \"name\": \"UserAccountAndUserPositionsAccountMismatch\",\n      \"msg\": \"User Account And User Positions Account Mismatch\"\n    },\n    {\n      \"code\": 6010,\n      \"name\": \"UserHasNoPositionInMarket\",\n      \"msg\": \"User Has No Position In Market\"\n    },\n    {\n      \"code\": 6011,\n      \"name\": \"InvalidInitialPeg\",\n      \"msg\": \"Invalid Initial Peg\"\n    },\n    {\n      \"code\": 6012,\n      \"name\": \"InvalidRepegRedundant\",\n      \"msg\": \"AMM repeg already configured with amt given\"\n    },\n    {\n      \"code\": 6013,\n      \"name\": \"InvalidRepegDirection\",\n      \"msg\": \"AMM repeg incorrect repeg direction\"\n    },\n    {\n      \"code\": 6014,\n      \"name\": \"InvalidRepegProfitability\",\n      \"msg\": \"AMM repeg out of bounds pnl\"\n    },\n    {\n      \"code\": 6015,\n      \"name\": \"SlippageOutsideLimit\",\n      \"msg\": \"Slippage Outside Limit Price\"\n    },\n    {\n      \"code\": 6016,\n      \"name\": \"OrderSizeTooSmall\",\n      \"msg\": \"Order Size Too Small\"\n    },\n    {\n      \"code\": 6017,\n      \"name\": \"InvalidUpdateK\",\n      \"msg\": \"Price change too large when updating K\"\n    },\n    {\n      \"code\": 6018,\n      \"name\": \"AdminWithdrawTooLarge\",\n      \"msg\": \"Admin tried to withdraw amount larger than fees collected\"\n    },\n    {\n      \"code\": 6019,\n      \"name\": \"MathError\",\n      \"msg\": \"Math Error\"\n    },\n    {\n      \"code\": 6020,\n      \"name\": \"BnConversionError\",\n      \"msg\": \"Conversion to u128/u64 failed with an overflow or underflow\"\n    },\n    {\n      \"code\": 6021,\n      \"name\": \"ClockUnavailable\",\n      \"msg\": \"Clock unavailable\"\n    },\n    {\n      \"code\": 6022,\n      \"name\": \"UnableToLoadOracle\",\n      \"msg\": \"Unable To Load Oracles\"\n    },\n    {\n      \"code\": 6023,\n      \"name\": \"PriceBandsBreached\",\n      \"msg\": \"Price Bands Breached\"\n    },\n    {\n      \"code\": 6024,\n      \"name\": \"ExchangePaused\",\n      \"msg\": \"Exchange is paused\"\n    },\n    {\n      \"code\": 6025,\n      \"name\": \"InvalidWhitelistToken\",\n      \"msg\": \"Invalid whitelist token\"\n    },\n    {\n      \"code\": 6026,\n      \"name\": \"WhitelistTokenNotFound\",\n      \"msg\": \"Whitelist token not found\"\n    },\n    {\n      \"code\": 6027,\n      \"name\": \"InvalidDiscountToken\",\n      \"msg\": \"Invalid discount token\"\n    },\n    {\n      \"code\": 6028,\n      \"name\": \"DiscountTokenNotFound\",\n      \"msg\": \"Discount token not found\"\n    },\n    {\n      \"code\": 6029,\n      \"name\": \"ReferrerNotFound\",\n      \"msg\": \"Referrer not found\"\n    },\n    {\n      \"code\": 6030,\n      \"name\": \"ReferrerStatsNotFound\",\n      \"msg\": \"ReferrerNotFound\"\n    },\n    {\n      \"code\": 6031,\n      \"name\": \"ReferrerMustBeWritable\",\n      \"msg\": \"ReferrerMustBeWritable\"\n    },\n    {\n      \"code\": 6032,\n      \"name\": \"ReferrerStatsMustBeWritable\",\n      \"msg\": \"ReferrerMustBeWritable\"\n    },\n    {\n      \"code\": 6033,\n      \"name\": \"ReferrerAndReferrerStatsAuthorityUnequal\",\n      \"msg\": \"ReferrerAndReferrerStatsAuthorityUnequal\"\n    },\n    {\n      \"code\": 6034,\n      \"name\": \"InvalidReferrer\",\n      \"msg\": \"InvalidReferrer\"\n    },\n    {\n      \"code\": 6035,\n      \"name\": \"InvalidOracle\",\n      \"msg\": \"InvalidOracle\"\n    },\n    {\n      \"code\": 6036,\n      \"name\": \"OracleNotFound\",\n      \"msg\": \"OracleNotFound\"\n    },\n    {\n      \"code\": 6037,\n      \"name\": \"LiquidationsBlockedByOracle\",\n      \"msg\": \"Liquidations Blocked By Oracle\"\n    },\n    {\n      \"code\": 6038,\n      \"name\": \"MaxDeposit\",\n      \"msg\": \"Can not deposit more than max deposit\"\n    },\n    {\n      \"code\": 6039,\n      \"name\": \"CantDeleteUserWithCollateral\",\n      \"msg\": \"Can not delete user that still has collateral\"\n    },\n    {\n      \"code\": 6040,\n      \"name\": \"InvalidFundingProfitability\",\n      \"msg\": \"AMM funding out of bounds pnl\"\n    },\n    {\n      \"code\": 6041,\n      \"name\": \"CastingFailure\",\n      \"msg\": \"Casting Failure\"\n    },\n    {\n      \"code\": 6042,\n      \"name\": \"InvalidOrder\",\n      \"msg\": \"InvalidOrder\"\n    },\n    {\n      \"code\": 6043,\n      \"name\": \"InvalidOrderMaxTs\",\n      \"msg\": \"InvalidOrderMaxTs\"\n    },\n    {\n      \"code\": 6044,\n      \"name\": \"InvalidOrderMarketType\",\n      \"msg\": \"InvalidOrderMarketType\"\n    },\n    {\n      \"code\": 6045,\n      \"name\": \"InvalidOrderForInitialMarginReq\",\n      \"msg\": \"InvalidOrderForInitialMarginReq\"\n    },\n    {\n      \"code\": 6046,\n      \"name\": \"InvalidOrderNotRiskReducing\",\n      \"msg\": \"InvalidOrderNotRiskReducing\"\n    },\n    {\n      \"code\": 6047,\n      \"name\": \"InvalidOrderSizeTooSmall\",\n      \"msg\": \"InvalidOrderSizeTooSmall\"\n    },\n    {\n      \"code\": 6048,\n      \"name\": \"InvalidOrderNotStepSizeMultiple\",\n      \"msg\": \"InvalidOrderNotStepSizeMultiple\"\n    },\n    {\n      \"code\": 6049,\n      \"name\": \"InvalidOrderBaseQuoteAsset\",\n      \"msg\": \"InvalidOrderBaseQuoteAsset\"\n    },\n    {\n      \"code\": 6050,\n      \"name\": \"InvalidOrderIOC\",\n      \"msg\": \"InvalidOrderIOC\"\n    },\n    {\n      \"code\": 6051,\n      \"name\": \"InvalidOrderPostOnly\",\n      \"msg\": \"InvalidOrderPostOnly\"\n    },\n    {\n      \"code\": 6052,\n      \"name\": \"InvalidOrderIOCPostOnly\",\n      \"msg\": \"InvalidOrderIOCPostOnly\"\n    },\n    {\n      \"code\": 6053,\n      \"name\": \"InvalidOrderTrigger\",\n      \"msg\": \"InvalidOrderTrigger\"\n    },\n    {\n      \"code\": 6054,\n      \"name\": \"InvalidOrderAuction\",\n      \"msg\": \"InvalidOrderAuction\"\n    },\n    {\n      \"code\": 6055,\n      \"name\": \"InvalidOrderOracleOffset\",\n      \"msg\": \"InvalidOrderOracleOffset\"\n    },\n    {\n      \"code\": 6056,\n      \"name\": \"InvalidOrderMinOrderSize\",\n      \"msg\": \"InvalidOrderMinOrderSize\"\n    },\n    {\n      \"code\": 6057,\n      \"name\": \"PlacePostOnlyLimitFailure\",\n      \"msg\": \"Failed to Place Post-Only Limit Order\"\n    },\n    {\n      \"code\": 6058,\n      \"name\": \"UserHasNoOrder\",\n      \"msg\": \"User has no order\"\n    },\n    {\n      \"code\": 6059,\n      \"name\": \"OrderAmountTooSmall\",\n      \"msg\": \"Order Amount Too Small\"\n    },\n    {\n      \"code\": 6060,\n      \"name\": \"MaxNumberOfOrders\",\n      \"msg\": \"Max number of orders taken\"\n    },\n    {\n      \"code\": 6061,\n      \"name\": \"OrderDoesNotExist\",\n      \"msg\": \"Order does not exist\"\n    },\n    {\n      \"code\": 6062,\n      \"name\": \"OrderNotOpen\",\n      \"msg\": \"Order not open\"\n    },\n    {\n      \"code\": 6063,\n      \"name\": \"FillOrderDidNotUpdateState\",\n      \"msg\": \"FillOrderDidNotUpdateState\"\n    },\n    {\n      \"code\": 6064,\n      \"name\": \"ReduceOnlyOrderIncreasedRisk\",\n      \"msg\": \"Reduce only order increased risk\"\n    },\n    {\n      \"code\": 6065,\n      \"name\": \"UnableToLoadAccountLoader\",\n      \"msg\": \"Unable to load AccountLoader\"\n    },\n    {\n      \"code\": 6066,\n      \"name\": \"TradeSizeTooLarge\",\n      \"msg\": \"Trade Size Too Large\"\n    },\n    {\n      \"code\": 6067,\n      \"name\": \"UserCantReferThemselves\",\n      \"msg\": \"User cant refer themselves\"\n    },\n    {\n      \"code\": 6068,\n      \"name\": \"DidNotReceiveExpectedReferrer\",\n      \"msg\": \"Did not receive expected referrer\"\n    },\n    {\n      \"code\": 6069,\n      \"name\": \"CouldNotDeserializeReferrer\",\n      \"msg\": \"Could not deserialize referrer\"\n    },\n    {\n      \"code\": 6070,\n      \"name\": \"CouldNotDeserializeReferrerStats\",\n      \"msg\": \"Could not deserialize referrer stats\"\n    },\n    {\n      \"code\": 6071,\n      \"name\": \"UserOrderIdAlreadyInUse\",\n      \"msg\": \"User Order Id Already In Use\"\n    },\n    {\n      \"code\": 6072,\n      \"name\": \"NoPositionsLiquidatable\",\n      \"msg\": \"No positions liquidatable\"\n    },\n    {\n      \"code\": 6073,\n      \"name\": \"InvalidMarginRatio\",\n      \"msg\": \"Invalid Margin Ratio\"\n    },\n    {\n      \"code\": 6074,\n      \"name\": \"CantCancelPostOnlyOrder\",\n      \"msg\": \"Cant Cancel Post Only Order\"\n    },\n    {\n      \"code\": 6075,\n      \"name\": \"InvalidOracleOffset\",\n      \"msg\": \"InvalidOracleOffset\"\n    },\n    {\n      \"code\": 6076,\n      \"name\": \"CantExpireOrders\",\n      \"msg\": \"CantExpireOrders\"\n    },\n    {\n      \"code\": 6077,\n      \"name\": \"CouldNotLoadMarketData\",\n      \"msg\": \"CouldNotLoadMarketData\"\n    },\n    {\n      \"code\": 6078,\n      \"name\": \"PerpMarketNotFound\",\n      \"msg\": \"PerpMarketNotFound\"\n    },\n    {\n      \"code\": 6079,\n      \"name\": \"InvalidMarketAccount\",\n      \"msg\": \"InvalidMarketAccount\"\n    },\n    {\n      \"code\": 6080,\n      \"name\": \"UnableToLoadPerpMarketAccount\",\n      \"msg\": \"UnableToLoadMarketAccount\"\n    },\n    {\n      \"code\": 6081,\n      \"name\": \"MarketWrongMutability\",\n      \"msg\": \"MarketWrongMutability\"\n    },\n    {\n      \"code\": 6082,\n      \"name\": \"UnableToCastUnixTime\",\n      \"msg\": \"UnableToCastUnixTime\"\n    },\n    {\n      \"code\": 6083,\n      \"name\": \"CouldNotFindSpotPosition\",\n      \"msg\": \"CouldNotFindSpotPosition\"\n    },\n    {\n      \"code\": 6084,\n      \"name\": \"NoSpotPositionAvailable\",\n      \"msg\": \"NoSpotPositionAvailable\"\n    },\n    {\n      \"code\": 6085,\n      \"name\": \"InvalidSpotMarketInitialization\",\n      \"msg\": \"InvalidSpotMarketInitialization\"\n    },\n    {\n      \"code\": 6086,\n      \"name\": \"CouldNotLoadSpotMarketData\",\n      \"msg\": \"CouldNotLoadSpotMarketData\"\n    },\n    {\n      \"code\": 6087,\n      \"name\": \"SpotMarketNotFound\",\n      \"msg\": \"SpotMarketNotFound\"\n    },\n    {\n      \"code\": 6088,\n      \"name\": \"InvalidSpotMarketAccount\",\n      \"msg\": \"InvalidSpotMarketAccount\"\n    },\n    {\n      \"code\": 6089,\n      \"name\": \"UnableToLoadSpotMarketAccount\",\n      \"msg\": \"UnableToLoadSpotMarketAccount\"\n    },\n    {\n      \"code\": 6090,\n      \"name\": \"SpotMarketWrongMutability\",\n      \"msg\": \"SpotMarketWrongMutability\"\n    },\n    {\n      \"code\": 6091,\n      \"name\": \"SpotMarketInterestNotUpToDate\",\n      \"msg\": \"SpotInterestNotUpToDate\"\n    },\n    {\n      \"code\": 6092,\n      \"name\": \"SpotMarketInsufficientDeposits\",\n      \"msg\": \"SpotMarketInsufficientDeposits\"\n    },\n    {\n      \"code\": 6093,\n      \"name\": \"UserMustSettleTheirOwnPositiveUnsettledPNL\",\n      \"msg\": \"UserMustSettleTheirOwnPositiveUnsettledPNL\"\n    },\n    {\n      \"code\": 6094,\n      \"name\": \"CantUpdatePoolBalanceType\",\n      \"msg\": \"CantUpdatePoolBalanceType\"\n    },\n    {\n      \"code\": 6095,\n      \"name\": \"InsufficientCollateralForSettlingPNL\",\n      \"msg\": \"InsufficientCollateralForSettlingPNL\"\n    },\n    {\n      \"code\": 6096,\n      \"name\": \"AMMNotUpdatedInSameSlot\",\n      \"msg\": \"AMMNotUpdatedInSameSlot\"\n    },\n    {\n      \"code\": 6097,\n      \"name\": \"AuctionNotComplete\",\n      \"msg\": \"AuctionNotComplete\"\n    },\n    {\n      \"code\": 6098,\n      \"name\": \"MakerNotFound\",\n      \"msg\": \"MakerNotFound\"\n    },\n    {\n      \"code\": 6099,\n      \"name\": \"MakerStatsNotFound\",\n      \"msg\": \"MakerNotFound\"\n    },\n    {\n      \"code\": 6100,\n      \"name\": \"MakerMustBeWritable\",\n      \"msg\": \"MakerMustBeWritable\"\n    },\n    {\n      \"code\": 6101,\n      \"name\": \"MakerStatsMustBeWritable\",\n      \"msg\": \"MakerMustBeWritable\"\n    },\n    {\n      \"code\": 6102,\n      \"name\": \"MakerOrderNotFound\",\n      \"msg\": \"MakerOrderNotFound\"\n    },\n    {\n      \"code\": 6103,\n      \"name\": \"CouldNotDeserializeMaker\",\n      \"msg\": \"CouldNotDeserializeMaker\"\n    },\n    {\n      \"code\": 6104,\n      \"name\": \"CouldNotDeserializeMakerStats\",\n      \"msg\": \"CouldNotDeserializeMaker\"\n    },\n    {\n      \"code\": 6105,\n      \"name\": \"AuctionPriceDoesNotSatisfyMaker\",\n      \"msg\": \"AuctionPriceDoesNotSatisfyMaker\"\n    },\n    {\n      \"code\": 6106,\n      \"name\": \"MakerCantFulfillOwnOrder\",\n      \"msg\": \"MakerCantFulfillOwnOrder\"\n    },\n    {\n      \"code\": 6107,\n      \"name\": \"MakerOrderMustBePostOnly\",\n      \"msg\": \"MakerOrderMustBePostOnly\"\n    },\n    {\n      \"code\": 6108,\n      \"name\": \"CantMatchTwoPostOnlys\",\n      \"msg\": \"CantMatchTwoPostOnlys\"\n    },\n    {\n      \"code\": 6109,\n      \"name\": \"OrderBreachesOraclePriceLimits\",\n      \"msg\": \"OrderBreachesOraclePriceLimits\"\n    },\n    {\n      \"code\": 6110,\n      \"name\": \"OrderMustBeTriggeredFirst\",\n      \"msg\": \"OrderMustBeTriggeredFirst\"\n    },\n    {\n      \"code\": 6111,\n      \"name\": \"OrderNotTriggerable\",\n      \"msg\": \"OrderNotTriggerable\"\n    },\n    {\n      \"code\": 6112,\n      \"name\": \"OrderDidNotSatisfyTriggerCondition\",\n      \"msg\": \"OrderDidNotSatisfyTriggerCondition\"\n    },\n    {\n      \"code\": 6113,\n      \"name\": \"PositionAlreadyBeingLiquidated\",\n      \"msg\": \"PositionAlreadyBeingLiquidated\"\n    },\n    {\n      \"code\": 6114,\n      \"name\": \"PositionDoesntHaveOpenPositionOrOrders\",\n      \"msg\": \"PositionDoesntHaveOpenPositionOrOrders\"\n    },\n    {\n      \"code\": 6115,\n      \"name\": \"AllOrdersAreAlreadyLiquidations\",\n      \"msg\": \"AllOrdersAreAlreadyLiquidations\"\n    },\n    {\n      \"code\": 6116,\n      \"name\": \"CantCancelLiquidationOrder\",\n      \"msg\": \"CantCancelLiquidationOrder\"\n    },\n    {\n      \"code\": 6117,\n      \"name\": \"UserIsBeingLiquidated\",\n      \"msg\": \"UserIsBeingLiquidated\"\n    },\n    {\n      \"code\": 6118,\n      \"name\": \"LiquidationsOngoing\",\n      \"msg\": \"LiquidationsOngoing\"\n    },\n    {\n      \"code\": 6119,\n      \"name\": \"WrongSpotBalanceType\",\n      \"msg\": \"WrongSpotBalanceType\"\n    },\n    {\n      \"code\": 6120,\n      \"name\": \"UserCantLiquidateThemself\",\n      \"msg\": \"UserCantLiquidateThemself\"\n    },\n    {\n      \"code\": 6121,\n      \"name\": \"InvalidPerpPositionToLiquidate\",\n      \"msg\": \"InvalidPerpPositionToLiquidate\"\n    },\n    {\n      \"code\": 6122,\n      \"name\": \"InvalidBaseAssetAmountForLiquidatePerp\",\n      \"msg\": \"InvalidBaseAssetAmountForLiquidatePerp\"\n    },\n    {\n      \"code\": 6123,\n      \"name\": \"InvalidPositionLastFundingRate\",\n      \"msg\": \"InvalidPositionLastFundingRate\"\n    },\n    {\n      \"code\": 6124,\n      \"name\": \"InvalidPositionDelta\",\n      \"msg\": \"InvalidPositionDelta\"\n    },\n    {\n      \"code\": 6125,\n      \"name\": \"UserBankrupt\",\n      \"msg\": \"UserBankrupt\"\n    },\n    {\n      \"code\": 6126,\n      \"name\": \"UserNotBankrupt\",\n      \"msg\": \"UserNotBankrupt\"\n    },\n    {\n      \"code\": 6127,\n      \"name\": \"UserHasInvalidBorrow\",\n      \"msg\": \"UserHasInvalidBorrow\"\n    },\n    {\n      \"code\": 6128,\n      \"name\": \"DailyWithdrawLimit\",\n      \"msg\": \"DailyWithdrawLimit\"\n    },\n    {\n      \"code\": 6129,\n      \"name\": \"DefaultError\",\n      \"msg\": \"DefaultError\"\n    },\n    {\n      \"code\": 6130,\n      \"name\": \"InsufficientLPTokens\",\n      \"msg\": \"Insufficient LP tokens\"\n    },\n    {\n      \"code\": 6131,\n      \"name\": \"CantLPWithPerpPosition\",\n      \"msg\": \"Cant LP with a market position\"\n    },\n    {\n      \"code\": 6132,\n      \"name\": \"UnableToBurnLPTokens\",\n      \"msg\": \"Unable to burn LP tokens\"\n    },\n    {\n      \"code\": 6133,\n      \"name\": \"TryingToRemoveLiquidityTooFast\",\n      \"msg\": \"Trying to remove liqudity too fast after adding it\"\n    },\n    {\n      \"code\": 6134,\n      \"name\": \"InvalidSpotMarketVault\",\n      \"msg\": \"Invalid Spot Market Vault\"\n    },\n    {\n      \"code\": 6135,\n      \"name\": \"InvalidSpotMarketState\",\n      \"msg\": \"Invalid Spot Market State\"\n    },\n    {\n      \"code\": 6136,\n      \"name\": \"InvalidSerumProgram\",\n      \"msg\": \"InvalidSerumProgram\"\n    },\n    {\n      \"code\": 6137,\n      \"name\": \"InvalidSerumMarket\",\n      \"msg\": \"InvalidSerumMarket\"\n    },\n    {\n      \"code\": 6138,\n      \"name\": \"InvalidSerumBids\",\n      \"msg\": \"InvalidSerumBids\"\n    },\n    {\n      \"code\": 6139,\n      \"name\": \"InvalidSerumAsks\",\n      \"msg\": \"InvalidSerumAsks\"\n    },\n    {\n      \"code\": 6140,\n      \"name\": \"InvalidSerumOpenOrders\",\n      \"msg\": \"InvalidSerumOpenOrders\"\n    },\n    {\n      \"code\": 6141,\n      \"name\": \"FailedSerumCPI\",\n      \"msg\": \"FailedSerumCPI\"\n    },\n    {\n      \"code\": 6142,\n      \"name\": \"FailedToFillOnExternalMarket\",\n      \"msg\": \"FailedToFillOnExternalMarket\"\n    },\n    {\n      \"code\": 6143,\n      \"name\": \"InvalidFulfillmentConfig\",\n      \"msg\": \"InvalidFulfillmentConfig\"\n    },\n    {\n      \"code\": 6144,\n      \"name\": \"InvalidFeeStructure\",\n      \"msg\": \"InvalidFeeStructure\"\n    },\n    {\n      \"code\": 6145,\n      \"name\": \"InsufficientIFShares\",\n      \"msg\": \"Insufficient IF shares\"\n    },\n    {\n      \"code\": 6146,\n      \"name\": \"MarketActionPaused\",\n      \"msg\": \"the Market has paused this action\"\n    },\n    {\n      \"code\": 6147,\n      \"name\": \"MarketPlaceOrderPaused\",\n      \"msg\": \"the Market status doesnt allow placing orders\"\n    },\n    {\n      \"code\": 6148,\n      \"name\": \"MarketFillOrderPaused\",\n      \"msg\": \"the Market status doesnt allow filling orders\"\n    },\n    {\n      \"code\": 6149,\n      \"name\": \"MarketWithdrawPaused\",\n      \"msg\": \"the Market status doesnt allow withdraws\"\n    },\n    {\n      \"code\": 6150,\n      \"name\": \"ProtectedAssetTierViolation\",\n      \"msg\": \"Action violates the Protected Asset Tier rules\"\n    },\n    {\n      \"code\": 6151,\n      \"name\": \"IsolatedAssetTierViolation\",\n      \"msg\": \"Action violates the Isolated Asset Tier rules\"\n    },\n    {\n      \"code\": 6152,\n      \"name\": \"UserCantBeDeleted\",\n      \"msg\": \"User Cant Be Deleted\"\n    },\n    {\n      \"code\": 6153,\n      \"name\": \"ReduceOnlyWithdrawIncreasedRisk\",\n      \"msg\": \"Reduce Only Withdraw Increased Risk\"\n    },\n    {\n      \"code\": 6154,\n      \"name\": \"MaxOpenInterest\",\n      \"msg\": \"Max Open Interest\"\n    },\n    {\n      \"code\": 6155,\n      \"name\": \"CantResolvePerpBankruptcy\",\n      \"msg\": \"Cant Resolve Perp Bankruptcy\"\n    },\n    {\n      \"code\": 6156,\n      \"name\": \"LiquidationDoesntSatisfyLimitPrice\",\n      \"msg\": \"Liquidation Doesnt Satisfy Limit Price\"\n    },\n    {\n      \"code\": 6157,\n      \"name\": \"MarginTradingDisabled\",\n      \"msg\": \"Margin Trading Disabled\"\n    },\n    {\n      \"code\": 6158,\n      \"name\": \"InvalidMarketStatusToSettlePnl\",\n      \"msg\": \"Invalid Market Status to Settle Perp Pnl\"\n    },\n    {\n      \"code\": 6159,\n      \"name\": \"PerpMarketNotInSettlement\",\n      \"msg\": \"PerpMarketNotInSettlement\"\n    },\n    {\n      \"code\": 6160,\n      \"name\": \"PerpMarketNotInReduceOnly\",\n      \"msg\": \"PerpMarketNotInReduceOnly\"\n    },\n    {\n      \"code\": 6161,\n      \"name\": \"PerpMarketSettlementBufferNotReached\",\n      \"msg\": \"PerpMarketSettlementBufferNotReached\"\n    },\n    {\n      \"code\": 6162,\n      \"name\": \"PerpMarketSettlementUserHasOpenOrders\",\n      \"msg\": \"PerpMarketSettlementUserHasOpenOrders\"\n    },\n    {\n      \"code\": 6163,\n      \"name\": \"PerpMarketSettlementUserHasActiveLP\",\n      \"msg\": \"PerpMarketSettlementUserHasActiveLP\"\n    },\n    {\n      \"code\": 6164,\n      \"name\": \"UnableToSettleExpiredUserPosition\",\n      \"msg\": \"UnableToSettleExpiredUserPosition\"\n    },\n    {\n      \"code\": 6165,\n      \"name\": \"UnequalMarketIndexForSpotTransfer\",\n      \"msg\": \"UnequalMarketIndexForSpotTransfer\"\n    },\n    {\n      \"code\": 6166,\n      \"name\": \"InvalidPerpPositionDetected\",\n      \"msg\": \"InvalidPerpPositionDetected\"\n    },\n    {\n      \"code\": 6167,\n      \"name\": \"InvalidSpotPositionDetected\",\n      \"msg\": \"InvalidSpotPositionDetected\"\n    },\n    {\n      \"code\": 6168,\n      \"name\": \"InvalidAmmDetected\",\n      \"msg\": \"InvalidAmmDetected\"\n    },\n    {\n      \"code\": 6169,\n      \"name\": \"InvalidAmmForFillDetected\",\n      \"msg\": \"InvalidAmmForFillDetected\"\n    },\n    {\n      \"code\": 6170,\n      \"name\": \"InvalidAmmLimitPriceOverride\",\n      \"msg\": \"InvalidAmmLimitPriceOverride\"\n    },\n    {\n      \"code\": 6171,\n      \"name\": \"InvalidOrderFillPrice\",\n      \"msg\": \"InvalidOrderFillPrice\"\n    },\n    {\n      \"code\": 6172,\n      \"name\": \"SpotMarketBalanceInvariantViolated\",\n      \"msg\": \"SpotMarketBalanceInvariantViolated\"\n    },\n    {\n      \"code\": 6173,\n      \"name\": \"SpotMarketVaultInvariantViolated\",\n      \"msg\": \"SpotMarketVaultInvariantViolated\"\n    },\n    {\n      \"code\": 6174,\n      \"name\": \"InvalidPDA\",\n      \"msg\": \"InvalidPDA\"\n    },\n    {\n      \"code\": 6175,\n      \"name\": \"InvalidPDASigner\",\n      \"msg\": \"InvalidPDASigner\"\n    },\n    {\n      \"code\": 6176,\n      \"name\": \"RevenueSettingsCannotSettleToIF\",\n      \"msg\": \"RevenueSettingsCannotSettleToIF\"\n    },\n    {\n      \"code\": 6177,\n      \"name\": \"NoRevenueToSettleToIF\",\n      \"msg\": \"NoRevenueToSettleToIF\"\n    },\n    {\n      \"code\": 6178,\n      \"name\": \"NoAmmPerpPnlDeficit\",\n      \"msg\": \"NoAmmPerpPnlDeficit\"\n    },\n    {\n      \"code\": 6179,\n      \"name\": \"SufficientPerpPnlPool\",\n      \"msg\": \"SufficientPerpPnlPool\"\n    },\n    {\n      \"code\": 6180,\n      \"name\": \"InsufficientPerpPnlPool\",\n      \"msg\": \"InsufficientPerpPnlPool\"\n    },\n    {\n      \"code\": 6181,\n      \"name\": \"PerpPnlDeficitBelowThreshold\",\n      \"msg\": \"PerpPnlDeficitBelowThreshold\"\n    },\n    {\n      \"code\": 6182,\n      \"name\": \"MaxRevenueWithdrawPerPeriodReached\",\n      \"msg\": \"MaxRevenueWithdrawPerPeriodReached\"\n    },\n    {\n      \"code\": 6183,\n      \"name\": \"MaxIFWithdrawReached\",\n      \"msg\": \"InvalidSpotPositionDetected\"\n    },\n    {\n      \"code\": 6184,\n      \"name\": \"NoIFWithdrawAvailable\",\n      \"msg\": \"NoIFWithdrawAvailable\"\n    },\n    {\n      \"code\": 6185,\n      \"name\": \"InvalidIFUnstake\",\n      \"msg\": \"InvalidIFUnstake\"\n    },\n    {\n      \"code\": 6186,\n      \"name\": \"InvalidIFUnstakeSize\",\n      \"msg\": \"InvalidIFUnstakeSize\"\n    },\n    {\n      \"code\": 6187,\n      \"name\": \"InvalidIFUnstakeCancel\",\n      \"msg\": \"InvalidIFUnstakeCancel\"\n    },\n    {\n      \"code\": 6188,\n      \"name\": \"InvalidIFForNewStakes\",\n      \"msg\": \"InvalidIFForNewStakes\"\n    },\n    {\n      \"code\": 6189,\n      \"name\": \"InvalidIFRebase\",\n      \"msg\": \"InvalidIFRebase\"\n    },\n    {\n      \"code\": 6190,\n      \"name\": \"InvalidInsuranceUnstakeSize\",\n      \"msg\": \"InvalidInsuranceUnstakeSize\"\n    },\n    {\n      \"code\": 6191,\n      \"name\": \"InvalidOrderLimitPrice\",\n      \"msg\": \"InvalidOrderLimitPrice\"\n    },\n    {\n      \"code\": 6192,\n      \"name\": \"InvalidIFDetected\",\n      \"msg\": \"InvalidIFDetected\"\n    },\n    {\n      \"code\": 6193,\n      \"name\": \"InvalidAmmMaxSpreadDetected\",\n      \"msg\": \"InvalidAmmMaxSpreadDetected\"\n    },\n    {\n      \"code\": 6194,\n      \"name\": \"InvalidConcentrationCoef\",\n      \"msg\": \"InvalidConcentrationCoef\"\n    },\n    {\n      \"code\": 6195,\n      \"name\": \"InvalidSrmVault\",\n      \"msg\": \"InvalidSrmVault\"\n    },\n    {\n      \"code\": 6196,\n      \"name\": \"InvalidVaultOwner\",\n      \"msg\": \"InvalidVaultOwner\"\n    },\n    {\n      \"code\": 6197,\n      \"name\": \"InvalidMarketStatusForFills\",\n      \"msg\": \"InvalidMarketStatusForFills\"\n    },\n    {\n      \"code\": 6198,\n      \"name\": \"IFWithdrawRequestInProgress\",\n      \"msg\": \"IFWithdrawRequestInProgress\"\n    },\n    {\n      \"code\": 6199,\n      \"name\": \"NoIFWithdrawRequestInProgress\",\n      \"msg\": \"NoIFWithdrawRequestInProgress\"\n    },\n    {\n      \"code\": 6200,\n      \"name\": \"IFWithdrawRequestTooSmall\",\n      \"msg\": \"IFWithdrawRequestTooSmall\"\n    },\n    {\n      \"code\": 6201,\n      \"name\": \"IncorrectSpotMarketAccountPassed\",\n      \"msg\": \"IncorrectSpotMarketAccountPassed\"\n    },\n    {\n      \"code\": 6202,\n      \"name\": \"BlockchainClockInconsistency\",\n      \"msg\": \"BlockchainClockInconsistency\"\n    },\n    {\n      \"code\": 6203,\n      \"name\": \"InvalidIFSharesDetected\",\n      \"msg\": \"InvalidIFSharesDetected\"\n    },\n    {\n      \"code\": 6204,\n      \"name\": \"NewLPSizeTooSmall\",\n      \"msg\": \"NewLPSizeTooSmall\"\n    },\n    {\n      \"code\": 6205,\n      \"name\": \"MarketStatusInvalidForNewLP\",\n      \"msg\": \"MarketStatusInvalidForNewLP\"\n    },\n    {\n      \"code\": 6206,\n      \"name\": \"InvalidMarkTwapUpdateDetected\",\n      \"msg\": \"InvalidMarkTwapUpdateDetected\"\n    },\n    {\n      \"code\": 6207,\n      \"name\": \"MarketSettlementAttemptOnActiveMarket\",\n      \"msg\": \"MarketSettlementAttemptOnActiveMarket\"\n    },\n    {\n      \"code\": 6208,\n      \"name\": \"MarketSettlementRequiresSettledLP\",\n      \"msg\": \"MarketSettlementRequiresSettledLP\"\n    },\n    {\n      \"code\": 6209,\n      \"name\": \"MarketSettlementAttemptTooEarly\",\n      \"msg\": \"MarketSettlementAttemptTooEarly\"\n    },\n    {\n      \"code\": 6210,\n      \"name\": \"MarketSettlementTargetPriceInvalid\",\n      \"msg\": \"MarketSettlementTargetPriceInvalid\"\n    },\n    {\n      \"code\": 6211,\n      \"name\": \"UnsupportedSpotMarket\",\n      \"msg\": \"UnsupportedSpotMarket\"\n    },\n    {\n      \"code\": 6212,\n      \"name\": \"SpotOrdersDisabled\",\n      \"msg\": \"SpotOrdersDisabled\"\n    },\n    {\n      \"code\": 6213,\n      \"name\": \"MarketBeingInitialized\",\n      \"msg\": \"Market Being Initialized\"\n    },\n    {\n      \"code\": 6214,\n      \"name\": \"InvalidUserSubAccountId\",\n      \"msg\": \"Invalid Sub Account Id\"\n    },\n    {\n      \"code\": 6215,\n      \"name\": \"InvalidTriggerOrderCondition\",\n      \"msg\": \"Invalid Trigger Order Condition\"\n    },\n    {\n      \"code\": 6216,\n      \"name\": \"InvalidSpotPosition\",\n      \"msg\": \"Invalid Spot Position\"\n    },\n    {\n      \"code\": 6217,\n      \"name\": \"CantTransferBetweenSameUserAccount\",\n      \"msg\": \"Cant transfer between same user account\"\n    },\n    {\n      \"code\": 6218,\n      \"name\": \"InvalidPerpPosition\",\n      \"msg\": \"Invalid Perp Position\"\n    },\n    {\n      \"code\": 6219,\n      \"name\": \"UnableToGetLimitPrice\",\n      \"msg\": \"Unable To Get Limit Price\"\n    },\n    {\n      \"code\": 6220,\n      \"name\": \"InvalidLiquidation\",\n      \"msg\": \"Invalid Liquidation\"\n    },\n    {\n      \"code\": 6221,\n      \"name\": \"SpotFulfillmentConfigDisabled\",\n      \"msg\": \"Spot Fulfillment Config Disabled\"\n    },\n    {\n      \"code\": 6222,\n      \"name\": \"InvalidMaker\",\n      \"msg\": \"Invalid Maker\"\n    },\n    {\n      \"code\": 6223,\n      \"name\": \"FailedUnwrap\",\n      \"msg\": \"Failed Unwrap\"\n    },\n    {\n      \"code\": 6224,\n      \"name\": \"MaxNumberOfUsers\",\n      \"msg\": \"Max Number Of Users\"\n    },\n    {\n      \"code\": 6225,\n      \"name\": \"InvalidOracleForSettlePnl\",\n      \"msg\": \"InvalidOracleForSettlePnl\"\n    },\n    {\n      \"code\": 6226,\n      \"name\": \"MarginOrdersOpen\",\n      \"msg\": \"MarginOrdersOpen\"\n    },\n    {\n      \"code\": 6227,\n      \"name\": \"TierViolationLiquidatingPerpPnl\",\n      \"msg\": \"TierViolationLiquidatingPerpPnl\"\n    },\n    {\n      \"code\": 6228,\n      \"name\": \"CouldNotLoadUserData\",\n      \"msg\": \"CouldNotLoadUserData\"\n    },\n    {\n      \"code\": 6229,\n      \"name\": \"UserWrongMutability\",\n      \"msg\": \"UserWrongMutability\"\n    },\n    {\n      \"code\": 6230,\n      \"name\": \"InvalidUserAccount\",\n      \"msg\": \"InvalidUserAccount\"\n    },\n    {\n      \"code\": 6231,\n      \"name\": \"CouldNotLoadUserStatsData\",\n      \"msg\": \"CouldNotLoadUserData\"\n    },\n    {\n      \"code\": 6232,\n      \"name\": \"UserStatsWrongMutability\",\n      \"msg\": \"UserWrongMutability\"\n    },\n    {\n      \"code\": 6233,\n      \"name\": \"InvalidUserStatsAccount\",\n      \"msg\": \"InvalidUserAccount\"\n    },\n    {\n      \"code\": 6234,\n      \"name\": \"UserNotFound\",\n      \"msg\": \"UserNotFound\"\n    },\n    {\n      \"code\": 6235,\n      \"name\": \"UnableToLoadUserAccount\",\n      \"msg\": \"UnableToLoadUserAccount\"\n    },\n    {\n      \"code\": 6236,\n      \"name\": \"UserStatsNotFound\",\n      \"msg\": \"UserStatsNotFound\"\n    },\n    {\n      \"code\": 6237,\n      \"name\": \"UnableToLoadUserStatsAccount\",\n      \"msg\": \"UnableToLoadUserStatsAccount\"\n    },\n    {\n      \"code\": 6238,\n      \"name\": \"UserNotInactive\",\n      \"msg\": \"User Not Inactive\"\n    },\n    {\n      \"code\": 6239,\n      \"name\": \"RevertFill\",\n      \"msg\": \"RevertFill\"\n    },\n    {\n      \"code\": 6240,\n      \"name\": \"InvalidMarketAccountforDeletion\",\n      \"msg\": \"Invalid MarketAccount for Deletion\"\n    },\n    {\n      \"code\": 6241,\n      \"name\": \"InvalidSpotFulfillmentParams\",\n      \"msg\": \"Invalid Spot Fulfillment Params\"\n    },\n    {\n      \"code\": 6242,\n      \"name\": \"FailedToGetMint\",\n      \"msg\": \"Failed to Get Mint\"\n    },\n    {\n      \"code\": 6243,\n      \"name\": \"FailedPhoenixCPI\",\n      \"msg\": \"FailedPhoenixCPI\"\n    },\n    {\n      \"code\": 6244,\n      \"name\": \"FailedToDeserializePhoenixMarket\",\n      \"msg\": \"FailedToDeserializePhoenixMarket\"\n    },\n    {\n      \"code\": 6245,\n      \"name\": \"InvalidPricePrecision\",\n      \"msg\": \"InvalidPricePrecision\"\n    },\n    {\n      \"code\": 6246,\n      \"name\": \"InvalidPhoenixProgram\",\n      \"msg\": \"InvalidPhoenixProgram\"\n    },\n    {\n      \"code\": 6247,\n      \"name\": \"InvalidPhoenixMarket\",\n      \"msg\": \"InvalidPhoenixMarket\"\n    },\n    {\n      \"code\": 6248,\n      \"name\": \"InvalidSwap\",\n      \"msg\": \"InvalidSwap\"\n    },\n    {\n      \"code\": 6249,\n      \"name\": \"SwapLimitPriceBreached\",\n      \"msg\": \"SwapLimitPriceBreached\"\n    },\n    {\n      \"code\": 6250,\n      \"name\": \"SpotMarketReduceOnly\",\n      \"msg\": \"SpotMarketReduceOnly\"\n    },\n    {\n      \"code\": 6251,\n      \"name\": \"FundingWasNotUpdated\",\n      \"msg\": \"FundingWasNotUpdated\"\n    },\n    {\n      \"code\": 6252,\n      \"name\": \"ImpossibleFill\",\n      \"msg\": \"ImpossibleFill\"\n    },\n    {\n      \"code\": 6253,\n      \"name\": \"CantUpdatePerpBidAskTwap\",\n      \"msg\": \"CantUpdatePerpBidAskTwap\"\n    },\n    {\n      \"code\": 6254,\n      \"name\": \"UserReduceOnly\",\n      \"msg\": \"UserReduceOnly\"\n    },\n    {\n      \"code\": 6255,\n      \"name\": \"InvalidMarginCalculation\",\n      \"msg\": \"InvalidMarginCalculation\"\n    },\n    {\n      \"code\": 6256,\n      \"name\": \"CantPayUserInitFee\",\n      \"msg\": \"CantPayUserInitFee\"\n    },\n    {\n      \"code\": 6257,\n      \"name\": \"CantReclaimRent\",\n      \"msg\": \"CantReclaimRent\"\n    },\n    {\n      \"code\": 6258,\n      \"name\": \"InsuranceFundOperationPaused\",\n      \"msg\": \"InsuranceFundOperationPaused\"\n    },\n    {\n      \"code\": 6259,\n      \"name\": \"NoUnsettledPnl\",\n      \"msg\": \"NoUnsettledPnl\"\n    },\n    {\n      \"code\": 6260,\n      \"name\": \"PnlPoolCantSettleUser\",\n      \"msg\": \"PnlPoolCantSettleUser\"\n    },\n    {\n      \"code\": 6261,\n      \"name\": \"OracleNonPositive\",\n      \"msg\": \"OracleInvalid\"\n    },\n    {\n      \"code\": 6262,\n      \"name\": \"OracleTooVolatile\",\n      \"msg\": \"OracleTooVolatile\"\n    },\n    {\n      \"code\": 6263,\n      \"name\": \"OracleTooUncertain\",\n      \"msg\": \"OracleTooUncertain\"\n    },\n    {\n      \"code\": 6264,\n      \"name\": \"OracleStaleForMargin\",\n      \"msg\": \"OracleStaleForMargin\"\n    },\n    {\n      \"code\": 6265,\n      \"name\": \"OracleInsufficientDataPoints\",\n      \"msg\": \"OracleInsufficientDataPoints\"\n    },\n    {\n      \"code\": 6266,\n      \"name\": \"OracleStaleForAMM\",\n      \"msg\": \"OracleStaleForAMM\"\n    },\n    {\n      \"code\": 6267,\n      \"name\": \"UnableToParsePullOracleMessage\",\n      \"msg\": \"Unable to parse pull oracle message\"\n    },\n    {\n      \"code\": 6268,\n      \"name\": \"MaxBorrows\",\n      \"msg\": \"Can not borow more than max borrows\"\n    },\n    {\n      \"code\": 6269,\n      \"name\": \"OracleUpdatesNotMonotonic\",\n      \"msg\": \"Updates must be monotonically increasing\"\n    },\n    {\n      \"code\": 6270,\n      \"name\": \"OraclePriceFeedMessageMismatch\",\n      \"msg\": \"Trying to update price feed with the wrong feed id\"\n    },\n    {\n      \"code\": 6271,\n      \"name\": \"OracleUnsupportedMessageType\",\n      \"msg\": \"The message in the update must be a PriceFeedMessage\"\n    },\n    {\n      \"code\": 6272,\n      \"name\": \"OracleDeserializeMessageFailed\",\n      \"msg\": \"Could not deserialize the message in the update\"\n    },\n    {\n      \"code\": 6273,\n      \"name\": \"OracleWrongGuardianSetOwner\",\n      \"msg\": \"Wrong guardian set owner in update price atomic\"\n    },\n    {\n      \"code\": 6274,\n      \"name\": \"OracleWrongWriteAuthority\",\n      \"msg\": \"Oracle post update atomic price feed account must be drift program\"\n    },\n    {\n      \"code\": 6275,\n      \"name\": \"OracleWrongVaaOwner\",\n      \"msg\": \"Oracle vaa owner must be wormhole program\"\n    },\n    {\n      \"code\": 6276,\n      \"name\": \"OracleTooManyPriceAccountUpdates\",\n      \"msg\": \"Multi updates must have 2 or fewer accounts passed in remaining accounts\"\n    },\n    {\n      \"code\": 6277,\n      \"name\": \"OracleMismatchedVaaAndPriceUpdates\",\n      \"msg\": \"Don't have the same remaining accounts number and pyth updates left\"\n    },\n    {\n      \"code\": 6278,\n      \"name\": \"OracleBadRemainingAccountPublicKey\",\n      \"msg\": \"Remaining account passed does not match oracle update derived pda\"\n    },\n    {\n      \"code\": 6279,\n      \"name\": \"FailedOpenbookV2CPI\",\n      \"msg\": \"FailedOpenbookV2CPI\"\n    },\n    {\n      \"code\": 6280,\n      \"name\": \"InvalidOpenbookV2Program\",\n      \"msg\": \"InvalidOpenbookV2Program\"\n    },\n    {\n      \"code\": 6281,\n      \"name\": \"InvalidOpenbookV2Market\",\n      \"msg\": \"InvalidOpenbookV2Market\"\n    },\n    {\n      \"code\": 6282,\n      \"name\": \"NonZeroTransferFee\",\n      \"msg\": \"Non zero transfer fee\"\n    },\n    {\n      \"code\": 6283,\n      \"name\": \"LiquidationOrderFailedToFill\",\n      \"msg\": \"Liquidation order failed to fill\"\n    },\n    {\n      \"code\": 6284,\n      \"name\": \"InvalidPredictionMarketOrder\",\n      \"msg\": \"Invalid prediction market order\"\n    },\n    {\n      \"code\": 6285,\n      \"name\": \"InvalidVerificationIxIndex\",\n      \"msg\": \"Ed25519 Ix must be before place and make SignedMsg order ix\"\n    },\n    {\n      \"code\": 6286,\n      \"name\": \"SigVerificationFailed\",\n      \"msg\": \"SignedMsg message verificaiton failed\"\n    },\n    {\n      \"code\": 6287,\n      \"name\": \"MismatchedSignedMsgOrderParamsMarketIndex\",\n      \"msg\": \"Market index mismatched b/w taker and maker SignedMsg order params\"\n    },\n    {\n      \"code\": 6288,\n      \"name\": \"InvalidSignedMsgOrderParam\",\n      \"msg\": \"Invalid SignedMsg order param\"\n    },\n    {\n      \"code\": 6289,\n      \"name\": \"PlaceAndTakeOrderSuccessConditionFailed\",\n      \"msg\": \"Place and take order success condition failed\"\n    },\n    {\n      \"code\": 6290,\n      \"name\": \"InvalidHighLeverageModeConfig\",\n      \"msg\": \"Invalid High Leverage Mode Config\"\n    },\n    {\n      \"code\": 6291,\n      \"name\": \"InvalidRFQUserAccount\",\n      \"msg\": \"Invalid RFQ User Account\"\n    },\n    {\n      \"code\": 6292,\n      \"name\": \"RFQUserAccountWrongMutability\",\n      \"msg\": \"RFQUserAccount should be mutable\"\n    },\n    {\n      \"code\": 6293,\n      \"name\": \"RFQUserAccountFull\",\n      \"msg\": \"RFQUserAccount has too many active RFQs\"\n    },\n    {\n      \"code\": 6294,\n      \"name\": \"RFQOrderNotFilled\",\n      \"msg\": \"RFQ order not filled as expected\"\n    },\n    {\n      \"code\": 6295,\n      \"name\": \"InvalidRFQOrder\",\n      \"msg\": \"RFQ orders must be jit makers\"\n    },\n    {\n      \"code\": 6296,\n      \"name\": \"InvalidRFQMatch\",\n      \"msg\": \"RFQ matches must be valid\"\n    },\n    {\n      \"code\": 6297,\n      \"name\": \"InvalidSignedMsgUserAccount\",\n      \"msg\": \"Invalid SignedMsg user account\"\n    },\n    {\n      \"code\": 6298,\n      \"name\": \"SignedMsgUserAccountWrongMutability\",\n      \"msg\": \"SignedMsg account wrong mutability\"\n    },\n    {\n      \"code\": 6299,\n      \"name\": \"SignedMsgUserOrdersAccountFull\",\n      \"msg\": \"SignedMsgUserAccount has too many active orders\"\n    },\n    {\n      \"code\": 6300,\n      \"name\": \"SignedMsgOrderDoesNotExist\",\n      \"msg\": \"Order with SignedMsg uuid does not exist\"\n    },\n    {\n      \"code\": 6301,\n      \"name\": \"InvalidSignedMsgOrderId\",\n      \"msg\": \"SignedMsg order id cannot be 0s\"\n    },\n    {\n      \"code\": 6302,\n      \"name\": \"InvalidPoolId\",\n      \"msg\": \"Invalid pool id\"\n    },\n    {\n      \"code\": 6303,\n      \"name\": \"InvalidProtectedMakerModeConfig\",\n      \"msg\": \"Invalid Protected Maker Mode Config\"\n    },\n    {\n      \"code\": 6304,\n      \"name\": \"InvalidPythLazerStorageOwner\",\n      \"msg\": \"Invalid pyth lazer storage owner\"\n    },\n    {\n      \"code\": 6305,\n      \"name\": \"UnverifiedPythLazerMessage\",\n      \"msg\": \"Verification of pyth lazer message failed\"\n    },\n    {\n      \"code\": 6306,\n      \"name\": \"InvalidPythLazerMessage\",\n      \"msg\": \"Invalid pyth lazer message\"\n    },\n    {\n      \"code\": 6307,\n      \"name\": \"PythLazerMessagePriceFeedMismatch\",\n      \"msg\": \"Pyth lazer message does not correspond to correct fed id\"\n    },\n    {\n      \"code\": 6308,\n      \"name\": \"InvalidLiquidateSpotWithSwap\",\n      \"msg\": \"InvalidLiquidateSpotWithSwap\"\n    },\n    {\n      \"code\": 6309,\n      \"name\": \"SignedMsgUserContextUserMismatch\",\n      \"msg\": \"User in SignedMsg message does not match user in ix context\"\n    },\n    {\n      \"code\": 6310,\n      \"name\": \"UserFuelOverflowThresholdNotMet\",\n      \"msg\": \"User fuel overflow threshold not met\"\n    },\n    {\n      \"code\": 6311,\n      \"name\": \"FuelOverflowAccountNotFound\",\n      \"msg\": \"FuelOverflow account not found\"\n    },\n    {\n      \"code\": 6312,\n      \"name\": \"InvalidTransferPerpPosition\",\n      \"msg\": \"Invalid Transfer Perp Position\"\n    },\n    {\n      \"code\": 6313,\n      \"name\": \"InvalidSignedMsgUserOrdersResize\",\n      \"msg\": \"Invalid SignedMsgUserOrders resize\"\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"UpdatePerpMarketSummaryStatsParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"quote_asset_amount_with_unsettled_lp\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"net_unsettled_funding_pnl\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"update_amm_summary_stats\",\n            \"type\": {\n              \"option\": \"bool\"\n            }\n          },\n          {\n            \"name\": \"exclude_total_liq_fee\",\n            \"type\": {\n              \"option\": \"bool\"\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LiquidatePerpRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"oracle_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"base_asset_amount\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"quote_asset_amount\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"lp_shares\",\n            \"docs\": [\"precision: AMM_RESERVE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fill_record_id\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_order_id\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"liquidator_order_id\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"liquidator_fee\",\n            \"docs\": [\"precision: QUOTE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"if_fee\",\n            \"docs\": [\"precision: QUOTE_PRECISION\"],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LiquidateSpotRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"asset_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"asset_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"asset_transfer\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"liability_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"liability_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"liability_transfer\",\n            \"docs\": [\"precision: token mint precision\"],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"if_fee\",\n            \"docs\": [\"precision: token mint precision\"],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LiquidateBorrowForPerpPnlRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"perp_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"market_oracle_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"pnl_transfer\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"liability_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"liability_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"liability_transfer\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LiquidatePerpPnlForDepositRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"perp_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"market_oracle_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"pnl_transfer\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"asset_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"asset_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"asset_transfer\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PerpBankruptcyRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"pnl\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"if_payment\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"clawback_user\",\n            \"type\": {\n              \"option\": \"pubkey\"\n            }\n          },\n          {\n            \"name\": \"clawback_user_payment\",\n            \"type\": {\n              \"option\": \"u128\"\n            }\n          },\n          {\n            \"name\": \"cumulative_funding_rate_delta\",\n            \"type\": \"i128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotBankruptcyRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"borrow_amount\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"if_payment\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"cumulative_deposit_interest_delta\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketIdentifier\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"market_type\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarketType\"\n              }\n            }\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"HistoricalOracleData\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"last_oracle_price\",\n            \"docs\": [\"precision: PRICE_PRECISION\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_oracle_conf\",\n            \"docs\": [\"precision: PRICE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_oracle_delay\",\n            \"docs\": [\"number of slots since last update\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_oracle_price_twap\",\n            \"docs\": [\"precision: PRICE_PRECISION\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_oracle_price_twap5min\",\n            \"docs\": [\"precision: PRICE_PRECISION\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_oracle_price_twap_ts\",\n            \"docs\": [\"unix_timestamp of last snapshot\"],\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"HistoricalIndexData\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"last_index_bid_price\",\n            \"docs\": [\"precision: PRICE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_index_ask_price\",\n            \"docs\": [\"precision: PRICE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_index_price_twap\",\n            \"docs\": [\"precision: PRICE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_index_price_twap5min\",\n            \"docs\": [\"precision: PRICE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_index_price_twap_ts\",\n            \"docs\": [\"unix_timestamp of last snapshot\"],\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PrelaunchOracleParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"perp_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"price\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"max_price\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"order_type\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderType\"\n              }\n            }\n          },\n          {\n            \"name\": \"market_type\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarketType\"\n              }\n            }\n          },\n          {\n            \"name\": \"direction\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PositionDirection\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_order_id\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"base_asset_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"price\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"reduce_only\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"post_only\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PostOnlyParam\"\n              }\n            }\n          },\n          {\n            \"name\": \"immediate_or_cancel\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"max_ts\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"trigger_price\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"trigger_condition\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderTriggerCondition\"\n              }\n            }\n          },\n          {\n            \"name\": \"oracle_price_offset\",\n            \"type\": {\n              \"option\": \"i32\"\n            }\n          },\n          {\n            \"name\": \"auction_duration\",\n            \"type\": {\n              \"option\": \"u8\"\n            }\n          },\n          {\n            \"name\": \"auction_start_price\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"auction_end_price\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SignedMsgOrderParamsMessage\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"signed_msg_order_params\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderParams\"\n              }\n            }\n          },\n          {\n            \"name\": \"sub_account_id\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"slot\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"uuid\",\n            \"type\": {\n              \"array\": [\"u8\", 8]\n            }\n          },\n          {\n            \"name\": \"take_profit_order_params\",\n            \"type\": {\n              \"option\": {\n                \"defined\": {\n                  \"name\": \"SignedMsgTriggerOrderParams\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"stop_loss_order_params\",\n            \"type\": {\n              \"option\": {\n                \"defined\": {\n                  \"name\": \"SignedMsgTriggerOrderParams\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SignedMsgTriggerOrderParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"trigger_price\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"base_asset_amount\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ModifyOrderParams\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"direction\",\n            \"type\": {\n              \"option\": {\n                \"defined\": {\n                  \"name\": \"PositionDirection\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"base_asset_amount\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"price\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"reduce_only\",\n            \"type\": {\n              \"option\": \"bool\"\n            }\n          },\n          {\n            \"name\": \"post_only\",\n            \"type\": {\n              \"option\": {\n                \"defined\": {\n                  \"name\": \"PostOnlyParam\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"immediate_or_cancel\",\n            \"type\": {\n              \"option\": \"bool\"\n            }\n          },\n          {\n            \"name\": \"max_ts\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"trigger_price\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"trigger_condition\",\n            \"type\": {\n              \"option\": {\n                \"defined\": {\n                  \"name\": \"OrderTriggerCondition\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"oracle_price_offset\",\n            \"type\": {\n              \"option\": \"i32\"\n            }\n          },\n          {\n            \"name\": \"auction_duration\",\n            \"type\": {\n              \"option\": \"u8\"\n            }\n          },\n          {\n            \"name\": \"auction_start_price\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"auction_end_price\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"policy\",\n            \"type\": {\n              \"option\": \"u8\"\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InsuranceClaim\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"revenue_withdraw_since_last_settle\",\n            \"docs\": [\n              \"The amount of revenue last settled\",\n              \"Positive if funds left the perp market,\",\n              \"negative if funds were pulled into the perp market\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"max_revenue_withdraw_per_period\",\n            \"docs\": [\n              \"The max amount of revenue that can be withdrawn per period\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"quote_max_insurance\",\n            \"docs\": [\n              \"The max amount of insurance that perp market can use to resolve bankruptcy and pnl deficits\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"quote_settled_insurance\",\n            \"docs\": [\n              \"The amount of insurance that has been used to resolve bankruptcy and pnl deficits\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_revenue_withdraw_ts\",\n            \"docs\": [\"The last time revenue was settled in/out of market\"],\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PoolBalance\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"scaled_balance\",\n            \"docs\": [\n              \"To get the pool's token amount, you must multiply the scaled balance by the market's cumulative\",\n              \"deposit interest\",\n              \"precision: SPOT_BALANCE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"docs\": [\"The spot market the pool is for\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 6]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AMM\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"oracle\",\n            \"docs\": [\"oracle price data public key\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"historical_oracle_data\",\n            \"docs\": [\"stores historically witnessed oracle data\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"HistoricalOracleData\"\n              }\n            }\n          },\n          {\n            \"name\": \"base_asset_amount_per_lp\",\n            \"docs\": [\n              \"accumulated base asset amount since inception per lp share\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"quote_asset_amount_per_lp\",\n            \"docs\": [\n              \"accumulated quote asset amount since inception per lp share\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"fee_pool\",\n            \"docs\": [\n              \"partition of fees from perp market trading moved from pnl settlements\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PoolBalance\"\n              }\n            }\n          },\n          {\n            \"name\": \"base_asset_reserve\",\n            \"docs\": [\n              \"`x` reserves for constant product mm formula (x * y = k)\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"quote_asset_reserve\",\n            \"docs\": [\n              \"`y` reserves for constant product mm formula (x * y = k)\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"concentration_coef\",\n            \"docs\": [\n              \"determines how close the min/max base asset reserve sit vs base reserves\",\n              \"allow for decreasing slippage without increasing liquidity and v.v.\",\n              \"precision: PERCENTAGE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"min_base_asset_reserve\",\n            \"docs\": [\n              \"minimum base_asset_reserve allowed before AMM is unavailable\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"max_base_asset_reserve\",\n            \"docs\": [\n              \"maximum base_asset_reserve allowed before AMM is unavailable\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"sqrt_k\",\n            \"docs\": [\n              \"`sqrt(k)` in constant product mm formula (x * y = k). stored to avoid drift caused by integer math issues\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"peg_multiplier\",\n            \"docs\": [\n              \"normalizing numerical factor for y, its use offers lowest slippage in cp-curve when market is balanced\",\n              \"precision: PEG_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"terminal_quote_asset_reserve\",\n            \"docs\": [\n              \"y when market is balanced. stored to save computation\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"base_asset_amount_long\",\n            \"docs\": [\n              \"always non-negative. tracks number of total longs in market (regardless of counterparty)\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"base_asset_amount_short\",\n            \"docs\": [\n              \"always non-positive. tracks number of total shorts in market (regardless of counterparty)\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"base_asset_amount_with_amm\",\n            \"docs\": [\n              \"tracks net position (longs-shorts) in market with AMM as counterparty\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"base_asset_amount_with_unsettled_lp\",\n            \"docs\": [\n              \"tracks net position (longs-shorts) in market with LPs as counterparty\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"max_open_interest\",\n            \"docs\": [\n              \"max allowed open interest, blocks trades that breach this value\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"quote_asset_amount\",\n            \"docs\": [\n              \"sum of all user's perp quote_asset_amount in market\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"quote_entry_amount_long\",\n            \"docs\": [\n              \"sum of all long user's quote_entry_amount in market\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"quote_entry_amount_short\",\n            \"docs\": [\n              \"sum of all short user's quote_entry_amount in market\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"quote_break_even_amount_long\",\n            \"docs\": [\n              \"sum of all long user's quote_break_even_amount in market\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"quote_break_even_amount_short\",\n            \"docs\": [\n              \"sum of all short user's quote_break_even_amount in market\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"user_lp_shares\",\n            \"docs\": [\n              \"total user lp shares of sqrt_k (protocol owned liquidity = sqrt_k - last_funding_rate)\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"last_funding_rate\",\n            \"docs\": [\n              \"last funding rate in this perp market (unit is quote per base)\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_funding_rate_long\",\n            \"docs\": [\n              \"last funding rate for longs in this perp market (unit is quote per base)\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_funding_rate_short\",\n            \"docs\": [\n              \"last funding rate for shorts in this perp market (unit is quote per base)\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last24h_avg_funding_rate\",\n            \"docs\": [\n              \"estimate of last 24h of funding rate perp market (unit is quote per base)\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"total_fee\",\n            \"docs\": [\n              \"total fees collected by this perp market\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"total_mm_fee\",\n            \"docs\": [\n              \"total fees collected by the vAMM's bid/ask spread\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"total_exchange_fee\",\n            \"docs\": [\n              \"total fees collected by exchange fee schedule\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_fee_minus_distributions\",\n            \"docs\": [\n              \"total fees minus any recognized upnl and pool withdraws\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"total_fee_withdrawn\",\n            \"docs\": [\n              \"sum of all fees from fee pool withdrawn to revenue pool\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_liquidation_fee\",\n            \"docs\": [\n              \"all fees collected by market for liquidations\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"cumulative_funding_rate_long\",\n            \"docs\": [\n              \"accumulated funding rate for longs since inception in market\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"cumulative_funding_rate_short\",\n            \"docs\": [\n              \"accumulated funding rate for shorts since inception in market\"\n            ],\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"total_social_loss\",\n            \"docs\": [\n              \"accumulated social loss paid by users since inception in market\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"ask_base_asset_reserve\",\n            \"docs\": [\n              \"transformed base_asset_reserve for users going long\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"ask_quote_asset_reserve\",\n            \"docs\": [\n              \"transformed quote_asset_reserve for users going long\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"bid_base_asset_reserve\",\n            \"docs\": [\n              \"transformed base_asset_reserve for users going short\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"bid_quote_asset_reserve\",\n            \"docs\": [\n              \"transformed quote_asset_reserve for users going short\",\n              \"precision: AMM_RESERVE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"last_oracle_normalised_price\",\n            \"docs\": [\n              \"the last seen oracle price partially shrunk toward the amm reserve price\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_oracle_reserve_price_spread_pct\",\n            \"docs\": [\n              \"the gap between the oracle price and the reserve price = y * peg_multiplier / x\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_bid_price_twap\",\n            \"docs\": [\n              \"average estimate of bid price over funding_period\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_ask_price_twap\",\n            \"docs\": [\n              \"average estimate of ask price over funding_period\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_mark_price_twap\",\n            \"docs\": [\n              \"average estimate of (bid+ask)/2 price over funding_period\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_mark_price_twap5min\",\n            \"docs\": [\"average estimate of (bid+ask)/2 price over FIVE_MINUTES\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_update_slot\",\n            \"docs\": [\"the last blockchain slot the amm was updated\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_oracle_conf_pct\",\n            \"docs\": [\n              \"the pct size of the oracle confidence interval\",\n              \"precision: PERCENTAGE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"net_revenue_since_last_funding\",\n            \"docs\": [\n              \"the total_fee_minus_distribution change since the last funding update\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_funding_rate_ts\",\n            \"docs\": [\"the last funding rate update unix_timestamp\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"funding_period\",\n            \"docs\": [\"the peridocity of the funding rate updates\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"order_step_size\",\n            \"docs\": [\n              \"the base step size (increment) of orders\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"order_tick_size\",\n            \"docs\": [\n              \"the price tick size of orders\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_order_size\",\n            \"docs\": [\n              \"the minimum base size of an order\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_position_size\",\n            \"docs\": [\n              \"the max base size a single user can have\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"volume24h\",\n            \"docs\": [\"estimated total of volume in market\", \"QUOTE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"long_intensity_volume\",\n            \"docs\": [\"the volume intensity of long fills against AMM\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"short_intensity_volume\",\n            \"docs\": [\"the volume intensity of short fills against AMM\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_trade_ts\",\n            \"docs\": [\n              \"the blockchain unix timestamp at the time of the last trade\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"mark_std\",\n            \"docs\": [\n              \"estimate of standard deviation of the fill (mark) prices\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"oracle_std\",\n            \"docs\": [\n              \"estimate of standard deviation of the oracle price at each update\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_mark_price_twap_ts\",\n            \"docs\": [\"the last unix_timestamp the mark twap was updated\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"base_spread\",\n            \"docs\": [\n              \"the minimum spread the AMM can quote. also used as step size for some spread logic increases.\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"max_spread\",\n            \"docs\": [\"the maximum spread the AMM can quote\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"long_spread\",\n            \"docs\": [\"the spread for asks vs the reserve price\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"short_spread\",\n            \"docs\": [\"the spread for bids vs the reserve price\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"long_intensity_count\",\n            \"docs\": [\"the count intensity of long fills against AMM\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"short_intensity_count\",\n            \"docs\": [\"the count intensity of short fills against AMM\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"max_fill_reserve_fraction\",\n            \"docs\": [\n              \"the fraction of total available liquidity a single fill on the AMM can consume\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"max_slippage_ratio\",\n            \"docs\": [\"the maximum slippage a single fill on the AMM can push\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"curve_update_intensity\",\n            \"docs\": [\n              \"the update intensity of AMM formulaic updates (adjusting k). 0-100\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"amm_jit_intensity\",\n            \"docs\": [\n              \"the jit intensity of AMM. larger intensity means larger participation in jit. 0 means no jit participation.\",\n              \"(0, 100] is intensity for protocol-owned AMM. (100, 200] is intensity for user LP-owned AMM.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"oracle_source\",\n            \"docs\": [\n              \"the oracle provider information. used to decode/scale the oracle public key\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OracleSource\"\n              }\n            }\n          },\n          {\n            \"name\": \"last_oracle_valid\",\n            \"docs\": [\n              \"tracks whether the oracle was considered valid at the last AMM update\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"target_base_asset_amount_per_lp\",\n            \"docs\": [\n              \"the target value for `base_asset_amount_per_lp`, used during AMM JIT with LP split\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i32\"\n          },\n          {\n            \"name\": \"per_lp_base\",\n            \"docs\": [\n              \"expo for unit of per_lp, base 10 (if per_lp_base=X, then per_lp unit is 10^X)\"\n            ],\n            \"type\": \"i8\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding2\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"total_fee_earned_per_lp\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"net_unsettled_funding_pnl\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"quote_asset_amount_with_unsettled_lp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"reference_price_offset\",\n            \"type\": \"i32\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 12]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SignedMsgOrderId\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"uuid\",\n            \"type\": {\n              \"array\": [\"u8\", 8]\n            }\n          },\n          {\n            \"name\": \"max_slot\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"order_id\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": \"u32\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SignedMsgUserOrdersFixed\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_pubkey\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"len\",\n            \"type\": \"u32\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InsuranceFund\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"total_shares\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"user_shares\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"shares_base\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"unstaking_period\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_revenue_settle_ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"revenue_settle_period\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"total_factor\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"user_factor\",\n            \"type\": \"u32\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleGuardRails\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"price_divergence\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PriceDivergenceGuardRails\"\n              }\n            }\n          },\n          {\n            \"name\": \"validity\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ValidityGuardRails\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PriceDivergenceGuardRails\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mark_oracle_percent_divergence\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"oracle_twap5min_percent_divergence\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ValidityGuardRails\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"slots_before_stale_for_amm\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"slots_before_stale_for_margin\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"confidence_interval_max_size\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"too_volatile_ratio\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FeeStructure\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"fee_tiers\",\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"FeeTier\"\n                  }\n                },\n                10\n              ]\n            }\n          },\n          {\n            \"name\": \"filler_reward_structure\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderFillerRewardStructure\"\n              }\n            }\n          },\n          {\n            \"name\": \"referrer_reward_epoch_upper_bound\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"flat_filler_fee\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FeeTier\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"fee_numerator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"fee_denominator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"maker_rebate_numerator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"maker_rebate_denominator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"referrer_reward_numerator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"referrer_reward_denominator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"referee_fee_numerator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"referee_fee_denominator\",\n            \"type\": \"u32\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderFillerRewardStructure\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"reward_numerator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"reward_denominator\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"time_based_reward_lower_bound\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserFees\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"total_fee_paid\",\n            \"docs\": [\"Total taker fee paid\", \"precision: QUOTE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_fee_rebate\",\n            \"docs\": [\"Total maker fee rebate\", \"precision: QUOTE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_token_discount\",\n            \"docs\": [\n              \"Total discount from holding token\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_referee_discount\",\n            \"docs\": [\n              \"Total discount from being referred\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_referrer_reward\",\n            \"docs\": [\"Total reward to referrer\", \"precision: QUOTE_PRECISION\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"current_epoch_referrer_reward\",\n            \"docs\": [\n              \"Total reward to referrer this epoch\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotPosition\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"scaled_balance\",\n            \"docs\": [\n              \"The scaled balance of the position. To get the token amount, multiply by the cumulative deposit/borrow\",\n              \"interest of corresponding market.\",\n              \"precision: SPOT_BALANCE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"open_bids\",\n            \"docs\": [\n              \"How many spot bids the user has open\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"open_asks\",\n            \"docs\": [\n              \"How many spot asks the user has open\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"cumulative_deposits\",\n            \"docs\": [\n              \"The cumulative deposits/borrows a user has made into a market\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"docs\": [\"The market index of the corresponding spot market\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"balance_type\",\n            \"docs\": [\"Whether the position is deposit or borrow\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SpotBalanceType\"\n              }\n            }\n          },\n          {\n            \"name\": \"open_orders\",\n            \"docs\": [\"Number of open orders\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 4]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PerpPosition\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"last_cumulative_funding_rate\",\n            \"docs\": [\n              \"The perp market's last cumulative funding rate. Used to calculate the funding payment owed to user\",\n              \"precision: FUNDING_RATE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"base_asset_amount\",\n            \"docs\": [\n              \"the size of the users perp position\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"quote_asset_amount\",\n            \"docs\": [\n              \"Used to calculate the users pnl. Upon entry, is equal to base_asset_amount * avg entry price - fees\",\n              \"Updated when the user open/closes position or settles pnl. Includes fees/funding\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"quote_break_even_amount\",\n            \"docs\": [\n              \"The amount of quote the user would need to exit their position at to break even\",\n              \"Updated when the user open/closes position or settles pnl. Includes fees/funding\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"quote_entry_amount\",\n            \"docs\": [\n              \"The amount quote the user entered the position with. Equal to base asset amount * avg entry price\",\n              \"Updated when the user open/closes position. Excludes fees/funding\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"open_bids\",\n            \"docs\": [\n              \"The amount of open bids the user has in this perp market\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"open_asks\",\n            \"docs\": [\n              \"The amount of open asks the user has in this perp market\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"settled_pnl\",\n            \"docs\": [\n              \"The amount of pnl settled in this market since opening the position\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"lp_shares\",\n            \"docs\": [\n              \"The number of lp (liquidity provider) shares the user has in this perp market\",\n              \"LP shares allow users to provide liquidity via the AMM\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_base_asset_amount_per_lp\",\n            \"docs\": [\n              \"The last base asset amount per lp the amm had\",\n              \"Used to settle the users lp position\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_quote_asset_amount_per_lp\",\n            \"docs\": [\n              \"The last quote asset amount per lp the amm had\",\n              \"Used to settle the users lp position\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"remainder_base_asset_amount\",\n            \"docs\": [\n              \"Settling LP position can lead to a small amount of base asset being left over smaller than step size\",\n              \"This records that remainder so it can be settled later on\",\n              \"precision: BASE_PRECISION\"\n            ],\n            \"type\": \"i32\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"docs\": [\"The market index for the perp market\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"open_orders\",\n            \"docs\": [\"The number of open orders\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"per_lp_base\",\n            \"type\": \"i8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Order\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"slot\",\n            \"docs\": [\"The slot the order was placed\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"price\",\n            \"docs\": [\n              \"The limit price for the order (can be 0 for market orders)\",\n              \"For orders with an auction, this price isn't used until the auction is complete\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"base_asset_amount\",\n            \"docs\": [\n              \"The size of the order\",\n              \"precision for perps: BASE_PRECISION\",\n              \"precision for spot: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"base_asset_amount_filled\",\n            \"docs\": [\n              \"The amount of the order filled\",\n              \"precision for perps: BASE_PRECISION\",\n              \"precision for spot: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"quote_asset_amount_filled\",\n            \"docs\": [\n              \"The amount of quote filled for the order\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"trigger_price\",\n            \"docs\": [\n              \"At what price the order will be triggered. Only relevant for trigger orders\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"auction_start_price\",\n            \"docs\": [\n              \"The start price for the auction. Only relevant for market/oracle orders\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"auction_end_price\",\n            \"docs\": [\n              \"The end price for the auction. Only relevant for market/oracle orders\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"max_ts\",\n            \"docs\": [\"The time when the order will expire\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"oracle_price_offset\",\n            \"docs\": [\n              \"If set, the order limit price is the oracle price + this offset\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"i32\"\n          },\n          {\n            \"name\": \"order_id\",\n            \"docs\": [\n              \"The id for the order. Each users has their own order id space\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"docs\": [\"The perp/spot market index\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"status\",\n            \"docs\": [\"Whether the order is open or unused\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderStatus\"\n              }\n            }\n          },\n          {\n            \"name\": \"order_type\",\n            \"docs\": [\"The type of order\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderType\"\n              }\n            }\n          },\n          {\n            \"name\": \"market_type\",\n            \"docs\": [\"Whether market is spot or perp\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarketType\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_order_id\",\n            \"docs\": [\n              \"User generated order id. Can make it easier to place/cancel orders\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"existing_position_direction\",\n            \"docs\": [\"What the users position was when the order was placed\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PositionDirection\"\n              }\n            }\n          },\n          {\n            \"name\": \"direction\",\n            \"docs\": [\n              \"Whether the user is going long or short. LONG = bid, SHORT = ask\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PositionDirection\"\n              }\n            }\n          },\n          {\n            \"name\": \"reduce_only\",\n            \"docs\": [\n              \"Whether the order is allowed to only reduce position size\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"post_only\",\n            \"docs\": [\"Whether the order must be a maker\"],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"immediate_or_cancel\",\n            \"docs\": [\n              \"Whether the order must be canceled the same slot it is placed\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"trigger_condition\",\n            \"docs\": [\n              \"Whether the order is triggered above or below the trigger price. Only relevant for trigger orders\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderTriggerCondition\"\n              }\n            }\n          },\n          {\n            \"name\": \"auction_duration\",\n            \"docs\": [\"How many slots the auction lasts\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"posted_slot_tail\",\n            \"docs\": [\n              \"Last 8 bits of the slot the order was posted on-chain (not order slot for signed msg orders)\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"bit_flags\",\n            \"docs\": [\n              \"Bitflags for further classification\",\n              \"0: is_signed_message\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 1]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SwapDirection\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Add\"\n          },\n          {\n            \"name\": \"Remove\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ModifyOrderId\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"UserOrderId\",\n            \"fields\": [\"u8\"]\n          },\n          {\n            \"name\": \"OrderId\",\n            \"fields\": [\"u32\"]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PositionDirection\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Long\"\n          },\n          {\n            \"name\": \"Short\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotFulfillmentType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"SerumV3\"\n          },\n          {\n            \"name\": \"Match\"\n          },\n          {\n            \"name\": \"PhoenixV1\"\n          },\n          {\n            \"name\": \"OpenbookV2\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SwapReduceOnly\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"In\"\n          },\n          {\n            \"name\": \"Out\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TwapPeriod\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"FundingPeriod\"\n          },\n          {\n            \"name\": \"FiveMin\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LiquidationMultiplierType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Discount\"\n          },\n          {\n            \"name\": \"Premium\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarginRequirementType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Initial\"\n          },\n          {\n            \"name\": \"Fill\"\n          },\n          {\n            \"name\": \"Maintenance\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleValidity\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"NonPositive\"\n          },\n          {\n            \"name\": \"TooVolatile\"\n          },\n          {\n            \"name\": \"TooUncertain\"\n          },\n          {\n            \"name\": \"StaleForMargin\"\n          },\n          {\n            \"name\": \"InsufficientDataPoints\"\n          },\n          {\n            \"name\": \"StaleForAMM\"\n          },\n          {\n            \"name\": \"Valid\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DriftAction\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"UpdateFunding\"\n          },\n          {\n            \"name\": \"SettlePnl\"\n          },\n          {\n            \"name\": \"TriggerOrder\"\n          },\n          {\n            \"name\": \"FillOrderMatch\"\n          },\n          {\n            \"name\": \"FillOrderAmm\"\n          },\n          {\n            \"name\": \"Liquidate\"\n          },\n          {\n            \"name\": \"MarginCalc\"\n          },\n          {\n            \"name\": \"UpdateTwap\"\n          },\n          {\n            \"name\": \"UpdateAMMCurve\"\n          },\n          {\n            \"name\": \"OracleOrderPrice\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PositionUpdateType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Open\"\n          },\n          {\n            \"name\": \"Increase\"\n          },\n          {\n            \"name\": \"Reduce\"\n          },\n          {\n            \"name\": \"Close\"\n          },\n          {\n            \"name\": \"Flip\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositExplanation\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"None\"\n          },\n          {\n            \"name\": \"Transfer\"\n          },\n          {\n            \"name\": \"Borrow\"\n          },\n          {\n            \"name\": \"RepayBorrow\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositDirection\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Deposit\"\n          },\n          {\n            \"name\": \"Withdraw\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderAction\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Place\"\n          },\n          {\n            \"name\": \"Cancel\"\n          },\n          {\n            \"name\": \"Fill\"\n          },\n          {\n            \"name\": \"Trigger\"\n          },\n          {\n            \"name\": \"Expire\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderActionExplanation\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"None\"\n          },\n          {\n            \"name\": \"InsufficientFreeCollateral\"\n          },\n          {\n            \"name\": \"OraclePriceBreachedLimitPrice\"\n          },\n          {\n            \"name\": \"MarketOrderFilledToLimitPrice\"\n          },\n          {\n            \"name\": \"OrderExpired\"\n          },\n          {\n            \"name\": \"Liquidation\"\n          },\n          {\n            \"name\": \"OrderFilledWithAMM\"\n          },\n          {\n            \"name\": \"OrderFilledWithAMMJit\"\n          },\n          {\n            \"name\": \"OrderFilledWithMatch\"\n          },\n          {\n            \"name\": \"OrderFilledWithMatchJit\"\n          },\n          {\n            \"name\": \"MarketExpired\"\n          },\n          {\n            \"name\": \"RiskingIncreasingOrder\"\n          },\n          {\n            \"name\": \"ReduceOnlyOrderIncreasedPosition\"\n          },\n          {\n            \"name\": \"OrderFillWithSerum\"\n          },\n          {\n            \"name\": \"NoBorrowLiquidity\"\n          },\n          {\n            \"name\": \"OrderFillWithPhoenix\"\n          },\n          {\n            \"name\": \"OrderFilledWithAMMJitLPSplit\"\n          },\n          {\n            \"name\": \"OrderFilledWithLPJit\"\n          },\n          {\n            \"name\": \"DeriskLp\"\n          },\n          {\n            \"name\": \"OrderFilledWithOpenbookV2\"\n          },\n          {\n            \"name\": \"TransferPerpPosition\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LPAction\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"AddLiquidity\"\n          },\n          {\n            \"name\": \"RemoveLiquidity\"\n          },\n          {\n            \"name\": \"SettleLiquidity\"\n          },\n          {\n            \"name\": \"RemoveLiquidityDerisk\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LiquidationType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"LiquidatePerp\"\n          },\n          {\n            \"name\": \"LiquidateSpot\"\n          },\n          {\n            \"name\": \"LiquidateBorrowForPerpPnl\"\n          },\n          {\n            \"name\": \"LiquidatePerpPnlForDeposit\"\n          },\n          {\n            \"name\": \"PerpBankruptcy\"\n          },\n          {\n            \"name\": \"SpotBankruptcy\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SettlePnlExplanation\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"None\"\n          },\n          {\n            \"name\": \"ExpiredPosition\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"StakeAction\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Stake\"\n          },\n          {\n            \"name\": \"UnstakeRequest\"\n          },\n          {\n            \"name\": \"UnstakeCancelRequest\"\n          },\n          {\n            \"name\": \"Unstake\"\n          },\n          {\n            \"name\": \"UnstakeTransfer\"\n          },\n          {\n            \"name\": \"StakeTransfer\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FillMode\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Fill\"\n          },\n          {\n            \"name\": \"PlaceAndMake\"\n          },\n          {\n            \"name\": \"PlaceAndTake\",\n            \"fields\": [\"bool\", \"u8\"]\n          },\n          {\n            \"name\": \"Liquidation\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PerpFulfillmentMethod\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"AMM\",\n            \"fields\": [\n              {\n                \"option\": \"u64\"\n              }\n            ]\n          },\n          {\n            \"name\": \"Match\",\n            \"fields\": [\"pubkey\", \"u16\", \"u64\"]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotFulfillmentMethod\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"ExternalMarket\"\n          },\n          {\n            \"name\": \"Match\",\n            \"fields\": [\"pubkey\", \"u16\"]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarginCalculationMode\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Standard\",\n            \"fields\": [\n              {\n                \"name\": \"track_open_orders_fraction\",\n                \"type\": \"bool\"\n              }\n            ]\n          },\n          {\n            \"name\": \"Liquidation\",\n            \"fields\": [\n              {\n                \"name\": \"market_to_track_margin_requirement\",\n                \"type\": {\n                  \"option\": {\n                    \"defined\": {\n                      \"name\": \"MarketIdentifier\"\n                    }\n                  }\n                }\n              }\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OracleSource\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Pyth\"\n          },\n          {\n            \"name\": \"Switchboard\"\n          },\n          {\n            \"name\": \"QuoteAsset\"\n          },\n          {\n            \"name\": \"Pyth1K\"\n          },\n          {\n            \"name\": \"Pyth1M\"\n          },\n          {\n            \"name\": \"PythStableCoin\"\n          },\n          {\n            \"name\": \"Prelaunch\"\n          },\n          {\n            \"name\": \"PythPull\"\n          },\n          {\n            \"name\": \"Pyth1KPull\"\n          },\n          {\n            \"name\": \"Pyth1MPull\"\n          },\n          {\n            \"name\": \"PythStableCoinPull\"\n          },\n          {\n            \"name\": \"SwitchboardOnDemand\"\n          },\n          {\n            \"name\": \"PythLazer\"\n          },\n          {\n            \"name\": \"PythLazer1K\"\n          },\n          {\n            \"name\": \"PythLazer1M\"\n          },\n          {\n            \"name\": \"PythLazerStableCoin\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PostOnlyParam\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"None\"\n          },\n          {\n            \"name\": \"MustPostOnly\"\n          },\n          {\n            \"name\": \"TryPostOnly\"\n          },\n          {\n            \"name\": \"Slide\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ModifyOrderPolicy\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"MustModify\"\n          },\n          {\n            \"name\": \"ExcludePreviousFill\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PlaceAndTakeOrderSuccessCondition\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"PartialFill\"\n          },\n          {\n            \"name\": \"FullFill\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PerpOperation\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"UpdateFunding\"\n          },\n          {\n            \"name\": \"AmmFill\"\n          },\n          {\n            \"name\": \"Fill\"\n          },\n          {\n            \"name\": \"SettlePnl\"\n          },\n          {\n            \"name\": \"SettlePnlWithPosition\"\n          },\n          {\n            \"name\": \"Liquidation\"\n          },\n          {\n            \"name\": \"AmmImmediateFill\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotOperation\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"UpdateCumulativeInterest\"\n          },\n          {\n            \"name\": \"Fill\"\n          },\n          {\n            \"name\": \"Deposit\"\n          },\n          {\n            \"name\": \"Withdraw\"\n          },\n          {\n            \"name\": \"Liquidation\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InsuranceFundOperation\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Init\"\n          },\n          {\n            \"name\": \"Add\"\n          },\n          {\n            \"name\": \"RequestRemove\"\n          },\n          {\n            \"name\": \"Remove\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Initialized\"\n          },\n          {\n            \"name\": \"Active\"\n          },\n          {\n            \"name\": \"FundingPaused\"\n          },\n          {\n            \"name\": \"AmmPaused\"\n          },\n          {\n            \"name\": \"FillPaused\"\n          },\n          {\n            \"name\": \"WithdrawPaused\"\n          },\n          {\n            \"name\": \"ReduceOnly\"\n          },\n          {\n            \"name\": \"Settlement\"\n          },\n          {\n            \"name\": \"Delisted\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ContractType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Perpetual\"\n          },\n          {\n            \"name\": \"Future\"\n          },\n          {\n            \"name\": \"Prediction\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ContractTier\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"A\"\n          },\n          {\n            \"name\": \"B\"\n          },\n          {\n            \"name\": \"C\"\n          },\n          {\n            \"name\": \"Speculative\"\n          },\n          {\n            \"name\": \"HighlySpeculative\"\n          },\n          {\n            \"name\": \"Isolated\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AMMLiquiditySplit\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"ProtocolOwned\"\n          },\n          {\n            \"name\": \"LPOwned\"\n          },\n          {\n            \"name\": \"Shared\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AMMAvailability\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Immediate\"\n          },\n          {\n            \"name\": \"AfterMinDuration\"\n          },\n          {\n            \"name\": \"Unavailable\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SettlePnlMode\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"MustSettle\"\n          },\n          {\n            \"name\": \"TrySettle\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotBalanceType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Deposit\"\n          },\n          {\n            \"name\": \"Borrow\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotFulfillmentConfigStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Enabled\"\n          },\n          {\n            \"name\": \"Disabled\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AssetTier\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Collateral\"\n          },\n          {\n            \"name\": \"Protected\"\n          },\n          {\n            \"name\": \"Cross\"\n          },\n          {\n            \"name\": \"Isolated\"\n          },\n          {\n            \"name\": \"Unlisted\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ExchangeStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"DepositPaused\"\n          },\n          {\n            \"name\": \"WithdrawPaused\"\n          },\n          {\n            \"name\": \"AmmPaused\"\n          },\n          {\n            \"name\": \"FillPaused\"\n          },\n          {\n            \"name\": \"LiqPaused\"\n          },\n          {\n            \"name\": \"FundingPaused\"\n          },\n          {\n            \"name\": \"SettlePnlPaused\"\n          },\n          {\n            \"name\": \"AmmImmediateFillPaused\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"BeingLiquidated\"\n          },\n          {\n            \"name\": \"Bankrupt\"\n          },\n          {\n            \"name\": \"ReduceOnly\"\n          },\n          {\n            \"name\": \"AdvancedLp\"\n          },\n          {\n            \"name\": \"ProtectedMakerOrders\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AssetType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Base\"\n          },\n          {\n            \"name\": \"Quote\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Init\"\n          },\n          {\n            \"name\": \"Open\"\n          },\n          {\n            \"name\": \"Filled\"\n          },\n          {\n            \"name\": \"Canceled\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Market\"\n          },\n          {\n            \"name\": \"Limit\"\n          },\n          {\n            \"name\": \"TriggerMarket\"\n          },\n          {\n            \"name\": \"TriggerLimit\"\n          },\n          {\n            \"name\": \"Oracle\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderTriggerCondition\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Above\"\n          },\n          {\n            \"name\": \"Below\"\n          },\n          {\n            \"name\": \"TriggeredAbove\"\n          },\n          {\n            \"name\": \"TriggeredBelow\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Spot\"\n          },\n          {\n            \"name\": \"Perp\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReferrerStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"IsReferrer\"\n          },\n          {\n            \"name\": \"IsReferred\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarginMode\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Default\"\n          },\n          {\n            \"name\": \"HighLeverage\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FuelOverflowStatus\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"Exists\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SignatureVerificationError\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"InvalidEd25519InstructionProgramId\"\n          },\n          {\n            \"name\": \"InvalidEd25519InstructionDataLength\"\n          },\n          {\n            \"name\": \"InvalidSignatureIndex\"\n          },\n          {\n            \"name\": \"InvalidSignatureOffset\"\n          },\n          {\n            \"name\": \"InvalidPublicKeyOffset\"\n          },\n          {\n            \"name\": \"InvalidMessageOffset\"\n          },\n          {\n            \"name\": \"InvalidMessageDataSize\"\n          },\n          {\n            \"name\": \"InvalidInstructionIndex\"\n          },\n          {\n            \"name\": \"MessageOffsetOverflow\"\n          },\n          {\n            \"name\": \"InvalidMessageHex\"\n          },\n          {\n            \"name\": \"InvalidMessageData\"\n          },\n          {\n            \"name\": \"LoadInstructionAtFailed\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OpenbookV2FulfillmentConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"pubkey\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"openbook_v2_program_id\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"openbook_v2_market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"openbook_v2_market_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"openbook_v2_event_heap\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"openbook_v2_bids\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"openbook_v2_asks\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"openbook_v2_base_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"openbook_v2_quote_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"fulfillment_type\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentType\"\n              }\n            }\n          },\n          {\n            \"name\": \"status\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentConfigStatus\"\n              }\n            }\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 4]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PhoenixV1FulfillmentConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"pubkey\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"phoenix_program_id\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"phoenix_log_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"phoenix_market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"phoenix_base_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"phoenix_quote_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"fulfillment_type\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentType\"\n              }\n            }\n          },\n          {\n            \"name\": \"status\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentConfigStatus\"\n              }\n            }\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 4]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SerumV3FulfillmentConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"pubkey\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_program_id\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_request_queue\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_event_queue\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_bids\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_asks\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_base_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_quote_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_open_orders\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"serum_signer_nonce\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"fulfillment_type\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentType\"\n              }\n            }\n          },\n          {\n            \"name\": \"status\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SpotFulfillmentConfigStatus\"\n              }\n            }\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 4]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"HighLeverageModeConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"max_users\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"current_users\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"reduce_only\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 31]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InsuranceFundStake\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"if_shares\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"last_withdraw_request_shares\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"if_base\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"last_valid_ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_withdraw_request_value\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_withdraw_request_ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"cost_basis\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 14]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ProtocolIfSharesTransferConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"whitelisted_signers\",\n            \"type\": {\n              \"array\": [\"pubkey\", 4]\n            }\n          },\n          {\n            \"name\": \"max_transfer_per_epoch\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"current_epoch_transfer\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"next_epoch_ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u128\", 8]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PrelaunchOracle\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"max_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"confidence\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_update_slot\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amm_last_update_slot\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"perp_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 70]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PerpMarket\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"pubkey\",\n            \"docs\": [\n              \"The perp market's address. It is a pda of the market index\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amm\",\n            \"docs\": [\"The automated market maker\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"AMM\"\n              }\n            }\n          },\n          {\n            \"name\": \"pnl_pool\",\n            \"docs\": [\n              \"The market's pnl pool. When users settle negative pnl, the balance increases.\",\n              \"When users settle positive pnl, the balance decreases. Can not go negative.\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PoolBalance\"\n              }\n            }\n          },\n          {\n            \"name\": \"name\",\n            \"docs\": [\"Encoded display name for the perp market e.g. SOL-PERP\"],\n            \"type\": {\n              \"array\": [\"u8\", 32]\n            }\n          },\n          {\n            \"name\": \"insurance_claim\",\n            \"docs\": [\"The perp market's claim on the insurance fund\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"InsuranceClaim\"\n              }\n            }\n          },\n          {\n            \"name\": \"unrealized_pnl_max_imbalance\",\n            \"docs\": [\n              \"The max pnl imbalance before positive pnl asset weight is discounted\",\n              \"pnl imbalance is the difference between long and short pnl. When it's greater than 0,\",\n              \"the amm has negative pnl and the initial asset weight for positive pnl is discounted\",\n              \"precision = QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"expiry_ts\",\n            \"docs\": [\n              \"The ts when the market will be expired. Only set if market is in reduce only mode\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"expiry_price\",\n            \"docs\": [\n              \"The price at which positions will be settled. Only set if market is expired\",\n              \"precision = PRICE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"next_fill_record_id\",\n            \"docs\": [\n              \"Every trade has a fill record id. This is the next id to be used\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"next_funding_rate_record_id\",\n            \"docs\": [\n              \"Every funding rate update has a record id. This is the next id to be used\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"next_curve_record_id\",\n            \"docs\": [\n              \"Every amm k updated has a record id. This is the next id to be used\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"imf_factor\",\n            \"docs\": [\n              \"The initial margin fraction factor. Used to increase margin ratio for large positions\",\n              \"precision: MARGIN_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"unrealized_pnl_imf_factor\",\n            \"docs\": [\n              \"The imf factor for unrealized pnl. Used to discount asset weight for large positive pnl\",\n              \"precision: MARGIN_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"liquidator_fee\",\n            \"docs\": [\n              \"The fee the liquidator is paid for taking over perp position\",\n              \"precision: LIQUIDATOR_FEE_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"if_liquidation_fee\",\n            \"docs\": [\n              \"The fee the insurance fund receives from liquidation\",\n              \"precision: LIQUIDATOR_FEE_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"margin_ratio_initial\",\n            \"docs\": [\n              \"The margin ratio which determines how much collateral is required to open a position\",\n              \"e.g. margin ratio of .1 means a user must have $100 of total collateral to open a $1000 position\",\n              \"precision: MARGIN_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"margin_ratio_maintenance\",\n            \"docs\": [\n              \"The margin ratio which determines when a user will be liquidated\",\n              \"e.g. margin ratio of .05 means a user must have $50 of total collateral to maintain a $1000 position\",\n              \"else they will be liquidated\",\n              \"precision: MARGIN_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"unrealized_pnl_initial_asset_weight\",\n            \"docs\": [\n              \"The initial asset weight for positive pnl. Negative pnl always has an asset weight of 1\",\n              \"precision: SPOT_WEIGHT_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"unrealized_pnl_maintenance_asset_weight\",\n            \"docs\": [\n              \"The maintenance asset weight for positive pnl. Negative pnl always has an asset weight of 1\",\n              \"precision: SPOT_WEIGHT_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"number_of_users_with_base\",\n            \"docs\": [\"number of users in a position (base)\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"number_of_users\",\n            \"docs\": [\"number of users in a position (pnl) or pnl (quote)\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"status\",\n            \"docs\": [\n              \"Whether a market is active, reduce only, expired, etc\",\n              \"Affects whether users can open/close positions\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarketStatus\"\n              }\n            }\n          },\n          {\n            \"name\": \"contract_type\",\n            \"docs\": [\"Currently only Perpetual markets are supported\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ContractType\"\n              }\n            }\n          },\n          {\n            \"name\": \"contract_tier\",\n            \"docs\": [\n              \"The contract tier determines how much insurance a market can receive, with more speculative markets receiving less insurance\",\n              \"It also influences the order perp markets can be liquidated, with less speculative markets being liquidated first\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ContractTier\"\n              }\n            }\n          },\n          {\n            \"name\": \"paused_operations\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"quote_spot_market_index\",\n            \"docs\": [\"The spot market that pnl is settled in\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"fee_adjustment\",\n            \"docs\": [\n              \"Between -100 and 100, represents what % to increase/decrease the fee by\",\n              \"E.g. if this is -50 and the fee is 5bps, the new fee will be 2.5bps\",\n              \"if this is 50 and the fee is 5bps, the new fee will be 7.5bps\"\n            ],\n            \"type\": \"i16\"\n          },\n          {\n            \"name\": \"fuel_boost_position\",\n            \"docs\": [\"fuel multiplier for perp funding\", \"precision: 10\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fuel_boost_taker\",\n            \"docs\": [\"fuel multiplier for perp taker\", \"precision: 10\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fuel_boost_maker\",\n            \"docs\": [\"fuel multiplier for perp maker\", \"precision: 10\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"pool_id\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"high_leverage_margin_ratio_initial\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"high_leverage_margin_ratio_maintenance\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 38]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ProtectedMakerModeConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"max_users\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"current_users\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"reduce_only\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 31]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PythLazerOracle\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"publish_time\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"posted_slot\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"exponent\",\n            \"type\": \"i32\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 4]\n            }\n          },\n          {\n            \"name\": \"conf\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SignedMsgUserOrders\",\n      \"docs\": [\n        \"* This struct is a duplicate of SignedMsgUserOrdersZeroCopy\\n * It is used to give anchor an struct to generate the idl for clients\\n * The struct SignedMsgUserOrdersZeroCopy is used to load the data in efficiently\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority_pubkey\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"signed_msg_order_data\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"SignedMsgOrderId\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SignedMsgWsDelegates\",\n      \"docs\": [\n        \"* Used to store authenticated delegates for swift-like ws connections\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"delegates\",\n            \"type\": {\n              \"vec\": \"pubkey\"\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotMarket\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"pubkey\",\n            \"docs\": [\n              \"The address of the spot market. It is a pda of the market index\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"oracle\",\n            \"docs\": [\"The oracle used to price the markets deposits/borrows\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"docs\": [\"The token mint of the market\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"docs\": [\n              \"The vault used to store the market's deposits\",\n              \"The amount in the vault should be equal to or greater than deposits - borrows\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"name\",\n            \"docs\": [\"The encoded display name for the market e.g. SOL\"],\n            \"type\": {\n              \"array\": [\"u8\", 32]\n            }\n          },\n          {\n            \"name\": \"historical_oracle_data\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"HistoricalOracleData\"\n              }\n            }\n          },\n          {\n            \"name\": \"historical_index_data\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"HistoricalIndexData\"\n              }\n            }\n          },\n          {\n            \"name\": \"revenue_pool\",\n            \"docs\": [\n              \"Revenue the protocol has collected in this markets token\",\n              \"e.g. for SOL-PERP, funds can be settled in usdc and will flow into the USDC revenue pool\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PoolBalance\"\n              }\n            }\n          },\n          {\n            \"name\": \"spot_fee_pool\",\n            \"docs\": [\n              \"The fees collected from swaps between this market and the quote market\",\n              \"Is settled to the quote markets revenue pool\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PoolBalance\"\n              }\n            }\n          },\n          {\n            \"name\": \"insurance_fund\",\n            \"docs\": [\n              \"Details on the insurance fund covering bankruptcies in this markets token\",\n              \"Covers bankruptcies for borrows with this markets token and perps settling in this markets token\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"InsuranceFund\"\n              }\n            }\n          },\n          {\n            \"name\": \"total_spot_fee\",\n            \"docs\": [\n              \"The total spot fees collected for this market\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"deposit_balance\",\n            \"docs\": [\n              \"The sum of the scaled balances for deposits across users and pool balances\",\n              \"To convert to the deposit token amount, multiply by the cumulative deposit interest\",\n              \"precision: SPOT_BALANCE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrow_balance\",\n            \"docs\": [\n              \"The sum of the scaled balances for borrows across users and pool balances\",\n              \"To convert to the borrow token amount, multiply by the cumulative borrow interest\",\n              \"precision: SPOT_BALANCE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"cumulative_deposit_interest\",\n            \"docs\": [\n              \"The cumulative interest earned by depositors\",\n              \"Used to calculate the deposit token amount from the deposit balance\",\n              \"precision: SPOT_CUMULATIVE_INTEREST_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"cumulative_borrow_interest\",\n            \"docs\": [\n              \"The cumulative interest earned by borrowers\",\n              \"Used to calculate the borrow token amount from the borrow balance\",\n              \"precision: SPOT_CUMULATIVE_INTEREST_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_social_loss\",\n            \"docs\": [\n              \"The total socialized loss from borrows, in the mint's token\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_quote_social_loss\",\n            \"docs\": [\n              \"The total socialized loss from borrows, in the quote market's token\",\n              \"preicision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"withdraw_guard_threshold\",\n            \"docs\": [\n              \"no withdraw limits/guards when deposits below this threshold\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_token_deposits\",\n            \"docs\": [\n              \"The max amount of token deposits in this market\",\n              \"0 if there is no limit\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deposit_token_twap\",\n            \"docs\": [\n              \"24hr average of deposit token amount\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrow_token_twap\",\n            \"docs\": [\n              \"24hr average of borrow token amount\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"utilization_twap\",\n            \"docs\": [\n              \"24hr average of utilization\",\n              \"which is borrow amount over token amount\",\n              \"precision: SPOT_UTILIZATION_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_interest_ts\",\n            \"docs\": [\n              \"Last time the cumulative deposit and borrow interest was updated\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_twap_ts\",\n            \"docs\": [\n              \"Last time the deposit/borrow/utilization averages were updated\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"expiry_ts\",\n            \"docs\": [\n              \"The time the market is set to expire. Only set if market is in reduce only mode\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"order_step_size\",\n            \"docs\": [\n              \"Spot orders must be a multiple of the step size\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"order_tick_size\",\n            \"docs\": [\n              \"Spot orders must be a multiple of the tick size\",\n              \"precision: PRICE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_order_size\",\n            \"docs\": [\n              \"The minimum order size\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_position_size\",\n            \"docs\": [\n              \"The maximum spot position size\",\n              \"if the limit is 0, there is no limit\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"next_fill_record_id\",\n            \"docs\": [\n              \"Every spot trade has a fill record id. This is the next id to use\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"next_deposit_record_id\",\n            \"docs\": [\n              \"Every deposit has a deposit record id. This is the next id to use\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"initial_asset_weight\",\n            \"docs\": [\n              \"The initial asset weight used to calculate a deposits contribution to a users initial total collateral\",\n              \"e.g. if the asset weight is .8, $100 of deposits contributes $80 to the users initial total collateral\",\n              \"precision: SPOT_WEIGHT_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"maintenance_asset_weight\",\n            \"docs\": [\n              \"The maintenance asset weight used to calculate a deposits contribution to a users maintenance total collateral\",\n              \"e.g. if the asset weight is .9, $100 of deposits contributes $90 to the users maintenance total collateral\",\n              \"precision: SPOT_WEIGHT_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"initial_liability_weight\",\n            \"docs\": [\n              \"The initial liability weight used to calculate a borrows contribution to a users initial margin requirement\",\n              \"e.g. if the liability weight is .9, $100 of borrows contributes $90 to the users initial margin requirement\",\n              \"precision: SPOT_WEIGHT_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"maintenance_liability_weight\",\n            \"docs\": [\n              \"The maintenance liability weight used to calculate a borrows contribution to a users maintenance margin requirement\",\n              \"e.g. if the liability weight is .8, $100 of borrows contributes $80 to the users maintenance margin requirement\",\n              \"precision: SPOT_WEIGHT_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"imf_factor\",\n            \"docs\": [\n              \"The initial margin fraction factor. Used to increase liability weight/decrease asset weight for large positions\",\n              \"precision: MARGIN_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"liquidator_fee\",\n            \"docs\": [\n              \"The fee the liquidator is paid for taking over borrow/deposit\",\n              \"precision: LIQUIDATOR_FEE_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"if_liquidation_fee\",\n            \"docs\": [\n              \"The fee the insurance fund receives from liquidation\",\n              \"precision: LIQUIDATOR_FEE_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"optimal_utilization\",\n            \"docs\": [\n              \"The optimal utilization rate for this market.\",\n              \"Used to determine the markets borrow rate\",\n              \"precision: SPOT_UTILIZATION_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"optimal_borrow_rate\",\n            \"docs\": [\n              \"The borrow rate for this market when the market has optimal utilization\",\n              \"precision: SPOT_RATE_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"max_borrow_rate\",\n            \"docs\": [\n              \"The borrow rate for this market when the market has 1000 utilization\",\n              \"precision: SPOT_RATE_PRECISION\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"decimals\",\n            \"docs\": [\n              \"The market's token mint's decimals. To from decimals to a precision, 10^decimals\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"orders_enabled\",\n            \"docs\": [\"Whether or not spot trading is enabled\"],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"oracle_source\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OracleSource\"\n              }\n            }\n          },\n          {\n            \"name\": \"status\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarketStatus\"\n              }\n            }\n          },\n          {\n            \"name\": \"asset_tier\",\n            \"docs\": [\n              \"The asset tier affects how a deposit can be used as collateral and the priority for a borrow being liquidated\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"AssetTier\"\n              }\n            }\n          },\n          {\n            \"name\": \"paused_operations\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"if_paused_operations\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fee_adjustment\",\n            \"type\": \"i16\"\n          },\n          {\n            \"name\": \"max_token_borrows_fraction\",\n            \"docs\": [\n              \"What fraction of max_token_deposits\",\n              \"disabled when 0, 1 => 1/10000 => .01% of max_token_deposits\",\n              \"precision: X/10000\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"flash_loan_amount\",\n            \"docs\": [\n              \"For swaps, the amount of token loaned out in the begin_swap ix\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"flash_loan_initial_token_amount\",\n            \"docs\": [\n              \"For swaps, the amount in the users token account in the begin_swap ix\",\n              \"Used to calculate how much of the token left the system in end_swap ix\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_swap_fee\",\n            \"docs\": [\n              \"The total fees received from swaps\",\n              \"precision: token mint precision\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"scale_initial_asset_weight_start\",\n            \"docs\": [\n              \"When to begin scaling down the initial asset weight\",\n              \"disabled when 0\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_borrow_rate\",\n            \"docs\": [\n              \"The min borrow rate for this market when the market regardless of utilization\",\n              \"1 => 1/200 => .5%\",\n              \"precision: X/200\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fuel_boost_deposits\",\n            \"docs\": [\"fuel multiplier for spot deposits\", \"precision: 10\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fuel_boost_borrows\",\n            \"docs\": [\"fuel multiplier for spot borrows\", \"precision: 10\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fuel_boost_taker\",\n            \"docs\": [\"fuel multiplier for spot taker\", \"precision: 10\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fuel_boost_maker\",\n            \"docs\": [\"fuel multiplier for spot maker\", \"precision: 10\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fuel_boost_insurance\",\n            \"docs\": [\n              \"fuel multiplier for spot insurance stake\",\n              \"precision: 10\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"token_program\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"pool_id\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 40]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"State\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"whitelist_mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"discount_mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"signer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"srm_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"perp_fee_structure\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"FeeStructure\"\n              }\n            }\n          },\n          {\n            \"name\": \"spot_fee_structure\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"FeeStructure\"\n              }\n            }\n          },\n          {\n            \"name\": \"oracle_guard_rails\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OracleGuardRails\"\n              }\n            }\n          },\n          {\n            \"name\": \"number_of_authorities\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"number_of_sub_accounts\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lp_cooldown_time\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"liquidation_margin_buffer_ratio\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"settlement_duration\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"number_of_markets\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"number_of_spot_markets\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"signer_nonce\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"min_perp_auction_duration\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"default_market_order_time_in_force\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"default_spot_auction_duration\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"exchange_status\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"liquidation_duration\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"initial_pct_to_liquidate\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"max_number_of_sub_accounts\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"max_initialize_user_fee\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 10]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"User\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority\",\n            \"docs\": [\"The owner/authority of the account\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"delegate\",\n            \"docs\": [\n              \"An addresses that can control the account on the authority's behalf. Has limited power, cant withdraw\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"name\",\n            \"docs\": [\"Encoded display name e.g. \\\"toly\\\"\"],\n            \"type\": {\n              \"array\": [\"u8\", 32]\n            }\n          },\n          {\n            \"name\": \"spot_positions\",\n            \"docs\": [\"The user's spot positions\"],\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"SpotPosition\"\n                  }\n                },\n                8\n              ]\n            }\n          },\n          {\n            \"name\": \"perp_positions\",\n            \"docs\": [\"The user's perp positions\"],\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"PerpPosition\"\n                  }\n                },\n                8\n              ]\n            }\n          },\n          {\n            \"name\": \"orders\",\n            \"docs\": [\"The user's orders\"],\n            \"type\": {\n              \"array\": [\n                {\n                  \"defined\": {\n                    \"name\": \"Order\"\n                  }\n                },\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"last_add_perp_lp_shares_ts\",\n            \"docs\": [\"The last time the user added perp lp positions\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"total_deposits\",\n            \"docs\": [\n              \"The total values of deposits the user has made\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_withdraws\",\n            \"docs\": [\n              \"The total values of withdrawals the user has made\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_social_loss\",\n            \"docs\": [\n              \"The total socialized loss the users has incurred upon the protocol\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"settled_perp_pnl\",\n            \"docs\": [\n              \"Fees (taker fees, maker rebate, referrer reward, filler reward) and pnl for perps\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"cumulative_spot_fees\",\n            \"docs\": [\n              \"Fees (taker fees, maker rebate, filler reward) for spot\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"cumulative_perp_funding\",\n            \"docs\": [\n              \"Cumulative funding paid/received for perps\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"liquidation_margin_freed\",\n            \"docs\": [\n              \"The amount of margin freed during liquidation. Used to force the liquidation to occur over a period of time\",\n              \"Defaults to zero when not being liquidated\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_active_slot\",\n            \"docs\": [\n              \"The last slot a user was active. Used to determine if a user is idle\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"next_order_id\",\n            \"docs\": [\n              \"Every user order has an order id. This is the next order id to be used\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"max_margin_ratio\",\n            \"docs\": [\"Custom max initial margin ratio for the user\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"next_liquidation_id\",\n            \"docs\": [\"The next liquidation id to be used for user\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"sub_account_id\",\n            \"docs\": [\"The sub account id for this user\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"status\",\n            \"docs\": [\n              \"Whether the user is active, being liquidated or bankrupt\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"is_margin_trading_enabled\",\n            \"docs\": [\"Whether the user has enabled margin trading\"],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"idle\",\n            \"docs\": [\n              \"User is idle if they haven't interacted with the protocol in 1 week and they have no orders, perp positions or borrows\",\n              \"Off-chain keeper bots can ignore users that are idle\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"open_orders\",\n            \"docs\": [\"number of open orders\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"has_open_order\",\n            \"docs\": [\"Whether or not user has open order\"],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"open_auctions\",\n            \"docs\": [\"number of open orders with auction\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"has_open_auction\",\n            \"docs\": [\"Whether or not user has open order with auction\"],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"margin_mode\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarginMode\"\n              }\n            }\n          },\n          {\n            \"name\": \"pool_id\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\"u8\", 3]\n            }\n          },\n          {\n            \"name\": \"last_fuel_bonus_update_ts\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 12]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserStats\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority\",\n            \"docs\": [\"The authority for all of a users sub accounts\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"referrer\",\n            \"docs\": [\"The address that referred this user\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fees\",\n            \"docs\": [\"Stats on the fees paid by the user\"],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"UserFees\"\n              }\n            }\n          },\n          {\n            \"name\": \"next_epoch_ts\",\n            \"docs\": [\n              \"The timestamp of the next epoch\",\n              \"Epoch is used to limit referrer rewards earned in single epoch\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"maker_volume30d\",\n            \"docs\": [\n              \"Rolling 30day maker volume for user\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"taker_volume30d\",\n            \"docs\": [\n              \"Rolling 30day taker volume for user\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"filler_volume30d\",\n            \"docs\": [\n              \"Rolling 30day filler volume for user\",\n              \"precision: QUOTE_PRECISION\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_maker_volume30d_ts\",\n            \"docs\": [\"last time the maker volume was updated\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_taker_volume30d_ts\",\n            \"docs\": [\"last time the taker volume was updated\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_filler_volume30d_ts\",\n            \"docs\": [\"last time the filler volume was updated\"],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"if_staked_quote_asset_amount\",\n            \"docs\": [\n              \"The amount of tokens staked in the quote spot markets if\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"number_of_sub_accounts\",\n            \"docs\": [\"The current number of sub accounts\"],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"number_of_sub_accounts_created\",\n            \"docs\": [\n              \"The number of sub accounts created. Can be greater than the number of sub accounts if user\",\n              \"has deleted sub accounts\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"referrer_status\",\n            \"docs\": [\n              \"Flags for referrer status:\",\n              \"First bit (LSB): 1 if user is a referrer, 0 otherwise\",\n              \"Second bit: 1 if user was referred, 0 otherwise\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"disable_update_perp_bid_ask_twap\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"padding1\",\n            \"type\": {\n              \"array\": [\"u8\", 1]\n            }\n          },\n          {\n            \"name\": \"fuel_overflow_status\",\n            \"docs\": [\"whether the user has a FuelOverflow account\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"fuel_insurance\",\n            \"docs\": [\"accumulated fuel for token amounts of insurance\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"fuel_deposits\",\n            \"docs\": [\"accumulated fuel for notional of deposits\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"fuel_borrows\",\n            \"docs\": [\"accumulate fuel bonus for notional of borrows\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"fuel_positions\",\n            \"docs\": [\"accumulated fuel for perp open interest\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"fuel_taker\",\n            \"docs\": [\"accumulate fuel bonus for taker volume\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"fuel_maker\",\n            \"docs\": [\"accumulate fuel bonus for maker volume\"],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"if_staked_gov_token_amount\",\n            \"docs\": [\n              \"The amount of tokens staked in the governance spot markets if\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_fuel_if_bonus_update_ts\",\n            \"docs\": [\n              \"last unix ts user stats data was used to update if fuel (u32 to save space)\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u8\", 12]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ReferrerName\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_stats\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"name\",\n            \"type\": {\n              \"array\": [\"u8\", 32]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FuelOverflow\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority\",\n            \"docs\": [\"The authority of this overflow account\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fuel_insurance\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_deposits\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_borrows\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_positions\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_taker\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_maker\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"last_fuel_sweep_ts\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"last_reset_ts\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"padding\",\n            \"type\": {\n              \"array\": [\"u128\", 6]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"NewUserRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"sub_account_id\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"name\",\n            \"type\": {\n              \"array\": [\"u8\", 32]\n            }\n          },\n          {\n            \"name\": \"referrer\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"direction\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"DepositDirection\"\n              }\n            }\n          },\n          {\n            \"name\": \"deposit_record_id\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"oracle_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"market_deposit_balance\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"market_withdraw_balance\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"market_cumulative_deposit_interest\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"market_cumulative_borrow_interest\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_deposits_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_withdraws_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"explanation\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"DepositExplanation\"\n              }\n            }\n          },\n          {\n            \"name\": \"transfer_user\",\n            \"type\": {\n              \"option\": \"pubkey\"\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotInterestRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"deposit_balance\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"cumulative_deposit_interest\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrow_balance\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"cumulative_borrow_interest\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"optimal_utilization\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"optimal_borrow_rate\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"max_borrow_rate\",\n            \"type\": \"u32\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FundingPaymentRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"funding_payment\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"base_asset_amount\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_last_cumulative_funding\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"amm_cumulative_funding_long\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"amm_cumulative_funding_short\",\n            \"type\": \"i128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FundingRateRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"record_id\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"funding_rate\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"funding_rate_long\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"funding_rate_short\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"cumulative_funding_rate_long\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"cumulative_funding_rate_short\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"oracle_price_twap\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"mark_price_twap\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"period_revenue\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"base_asset_amount_with_amm\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"base_asset_amount_with_unsettled_lp\",\n            \"type\": \"i128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CurveRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"record_id\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"peg_multiplier_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"base_asset_reserve_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"quote_asset_reserve_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"sqrt_k_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"peg_multiplier_after\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"base_asset_reserve_after\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"quote_asset_reserve_after\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"sqrt_k_after\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"base_asset_amount_long\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"base_asset_amount_short\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"base_asset_amount_with_amm\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"total_fee\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"total_fee_minus_distributions\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"adjustment_cost\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"oracle_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"fill_record\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"number_of_users\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SignedMsgOrderRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"hash\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"matching_order_params\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderParams\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_order_id\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"signed_msg_order_max_slot\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"signed_msg_order_uuid\",\n            \"type\": {\n              \"array\": [\"u8\", 8]\n            }\n          },\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"order\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Order\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"OrderActionRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"action\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderAction\"\n              }\n            }\n          },\n          {\n            \"name\": \"action_explanation\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"OrderActionExplanation\"\n              }\n            }\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"market_type\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarketType\"\n              }\n            }\n          },\n          {\n            \"name\": \"filler\",\n            \"type\": {\n              \"option\": \"pubkey\"\n            }\n          },\n          {\n            \"name\": \"filler_reward\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"fill_record_id\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"base_asset_amount_filled\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"quote_asset_amount_filled\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"taker_fee\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"maker_fee\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"referrer_reward\",\n            \"type\": {\n              \"option\": \"u32\"\n            }\n          },\n          {\n            \"name\": \"quote_asset_amount_surplus\",\n            \"type\": {\n              \"option\": \"i64\"\n            }\n          },\n          {\n            \"name\": \"spot_fulfillment_method_fee\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"taker\",\n            \"type\": {\n              \"option\": \"pubkey\"\n            }\n          },\n          {\n            \"name\": \"taker_order_id\",\n            \"type\": {\n              \"option\": \"u32\"\n            }\n          },\n          {\n            \"name\": \"taker_order_direction\",\n            \"type\": {\n              \"option\": {\n                \"defined\": {\n                  \"name\": \"PositionDirection\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"taker_order_base_asset_amount\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"taker_order_cumulative_base_asset_amount_filled\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"taker_order_cumulative_quote_asset_amount_filled\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"maker\",\n            \"type\": {\n              \"option\": \"pubkey\"\n            }\n          },\n          {\n            \"name\": \"maker_order_id\",\n            \"type\": {\n              \"option\": \"u32\"\n            }\n          },\n          {\n            \"name\": \"maker_order_direction\",\n            \"type\": {\n              \"option\": {\n                \"defined\": {\n                  \"name\": \"PositionDirection\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"maker_order_base_asset_amount\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"maker_order_cumulative_base_asset_amount_filled\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"maker_order_cumulative_quote_asset_amount_filled\",\n            \"type\": {\n              \"option\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"oracle_price\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LPRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"action\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LPAction\"\n              }\n            }\n          },\n          {\n            \"name\": \"n_shares\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"delta_base_asset_amount\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"delta_quote_asset_amount\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"pnl\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LiquidationRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"liquidation_type\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LiquidationType\"\n              }\n            }\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"liquidator\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"margin_requirement\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_collateral\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"margin_freed\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"liquidation_id\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"bankrupt\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"canceled_order_ids\",\n            \"type\": {\n              \"vec\": \"u32\"\n            }\n          },\n          {\n            \"name\": \"liquidate_perp\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LiquidatePerpRecord\"\n              }\n            }\n          },\n          {\n            \"name\": \"liquidate_spot\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LiquidateSpotRecord\"\n              }\n            }\n          },\n          {\n            \"name\": \"liquidate_borrow_for_perp_pnl\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LiquidateBorrowForPerpPnlRecord\"\n              }\n            }\n          },\n          {\n            \"name\": \"liquidate_perp_pnl_for_deposit\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LiquidatePerpPnlForDepositRecord\"\n              }\n            }\n          },\n          {\n            \"name\": \"perp_bankruptcy\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PerpBankruptcyRecord\"\n              }\n            }\n          },\n          {\n            \"name\": \"spot_bankruptcy\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SpotBankruptcyRecord\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SettlePnlRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"pnl\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"base_asset_amount\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"quote_asset_amount_after\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"quote_entry_amount\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"settle_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"explanation\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"SettlePnlExplanation\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InsuranceFundRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"spot_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"perp_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"user_if_factor\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"total_if_factor\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"vault_amount_before\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"insurance_vault_amount_before\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_if_shares_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_if_shares_after\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InsuranceFundStakeRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"action\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"StakeAction\"\n              }\n            }\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"insurance_vault_amount_before\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"if_shares_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"user_if_shares_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_if_shares_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"if_shares_after\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"user_if_shares_after\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"total_if_shares_after\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SwapRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"out_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"in_market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"out_oracle_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"in_oracle_price\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"fee\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SpotMarketVaultDepositRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"market_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"deposit_balance\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"cumulative_deposit_interest_before\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"cumulative_deposit_interest_after\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"deposit_token_amount_before\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DeleteUserRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"sub_account_id\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"keeper\",\n            \"type\": {\n              \"option\": \"pubkey\"\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FuelSweepRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_stats_fuel_insurance\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"user_stats_fuel_deposits\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"user_stats_fuel_borrows\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"user_stats_fuel_positions\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"user_stats_fuel_taker\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"user_stats_fuel_maker\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"fuel_overflow_fuel_insurance\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_overflow_fuel_deposits\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_overflow_fuel_borrows\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_overflow_fuel_positions\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_overflow_fuel_taker\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_overflow_fuel_maker\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FuelSeasonRecord\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"ts\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fuel_insurance\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_deposits\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_borrows\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_positions\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_taker\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_maker\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"fuel_total\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    }\n  ]\n}\n","import { Drift } from \"./drift\";\nimport DRIFT_IDL_JSON from \"./drift.json\";\n\nexport const DRIFT_IDL = DRIFT_IDL_JSON as Drift;\nexport type DriftIdlType = Drift;\n","import {\n  DriftUserStats,\n  DriftUserStatsJSON,\n  UserFeesJSON,\n  DriftUser,\n  DriftUserJSON,\n  DriftState,\n  DriftStateJSON,\n  DriftSpotMarket,\n  DriftSpotMarketJSON,\n  DriftSpotMarketRaw,\n  DriftRewards,\n  DriftRewardsJSON,\n} from \"../types\";\n\nexport function driftUserStatsRawToDto(\n  userStatsRaw: DriftUserStats\n): DriftUserStatsJSON {\n  return {\n    authority: userStatsRaw.authority.toBase58(),\n    referrer: userStatsRaw.referrer.toBase58(),\n    fees: userFeesToDto(userStatsRaw.fees),\n    nextEpochTs: userStatsRaw.nextEpochTs.toString(),\n    makerVolume30d: userStatsRaw.makerVolume30d.toString(),\n    takerVolume30d: userStatsRaw.takerVolume30d.toString(),\n    fillerVolume30d: userStatsRaw.fillerVolume30d.toString(),\n    lastMakerVolume30dTs: userStatsRaw.lastMakerVolume30dTs.toString(),\n    lastTakerVolume30dTs: userStatsRaw.lastTakerVolume30dTs.toString(),\n    lastFillerVolume30dTs: userStatsRaw.lastFillerVolume30dTs.toString(),\n    ifStakedQuoteAssetAmount: userStatsRaw.ifStakedQuoteAssetAmount.toString(),\n    numberOfSubAccounts: userStatsRaw.numberOfSubAccounts,\n    numberOfSubAccountsCreated: userStatsRaw.numberOfSubAccountsCreated,\n    referrerStatus: userStatsRaw.referrerStatus,\n    disableUpdatePerpBidAskTwap: userStatsRaw.disableUpdatePerpBidAskTwap,\n    padding1: userStatsRaw.padding1,\n    fuelOverflowStatus: userStatsRaw.fuelOverflowStatus,\n    fuelInsurance: userStatsRaw.fuelInsurance,\n    fuelDeposits: userStatsRaw.fuelDeposits,\n    fuelBorrows: userStatsRaw.fuelBorrows,\n    fuelPositions: userStatsRaw.fuelPositions,\n    fuelTaker: userStatsRaw.fuelTaker,\n    fuelMaker: userStatsRaw.fuelMaker,\n    ifStakedGovTokenAmount: userStatsRaw.ifStakedGovTokenAmount.toString(),\n    lastFuelIfBonusUpdateTs: userStatsRaw.lastFuelIfBonusUpdateTs,\n    padding: userStatsRaw.padding,\n  };\n}\n\nexport function driftUserRawToDto(userRaw: DriftUser): DriftUserJSON {\n  return {\n    authority: userRaw.authority.toBase58(),\n    spotPositions: userRaw.spotPositions.map((p) => ({\n      scaledBalance: p.scaledBalance?.toString() ?? \"0\",\n      openBids: p.openBids?.toString() ?? \"0\",\n      openAsks: p.openAsks?.toString() ?? \"0\",\n      cumulativeDeposits: p.cumulativeDeposits?.toString() ?? \"0\",\n      marketIndex: p.marketIndex ?? 0,\n      balanceType: p.balanceType,\n      openOrders: p.openOrders ?? 0,\n      padding: p.padding ?? [],\n    })),\n  };\n}\n\nexport function driftStateRawToDto(stateRaw: DriftState): DriftStateJSON {\n  return {\n    admin: stateRaw.admin.toBase58(),\n    whitelistMint: stateRaw.whitelistMint.toBase58(),\n    discountMint: stateRaw.discountMint.toBase58(),\n    signer: stateRaw.signer.toBase58(),\n    srmVault: stateRaw.srmVault.toBase58(),\n    perpFeeStructure: stateRaw.perpFeeStructure as any,\n    spotFeeStructure: stateRaw.spotFeeStructure as any,\n    oracleGuardRails: stateRaw.oracleGuardRails as any,\n    numberOfAuthorities: stateRaw.numberOfAuthorities.toString(),\n    numberOfSubAccounts: stateRaw.numberOfSubAccounts.toString(),\n    lpCooldownTime: stateRaw.lpCooldownTime.toString(),\n    liquidationMarginBufferRatio: stateRaw.liquidationMarginBufferRatio,\n    settlementDuration: stateRaw.settlementDuration,\n    numberOfMarkets: stateRaw.numberOfMarkets,\n    numberOfSpotMarkets: stateRaw.numberOfSpotMarkets,\n    signerNonce: stateRaw.signerNonce,\n    minPerpAuctionDuration: stateRaw.minPerpAuctionDuration,\n    defaultMarketOrderTimeInForce: stateRaw.defaultMarketOrderTimeInForce,\n    defaultSpotAuctionDuration: stateRaw.defaultSpotAuctionDuration,\n    exchangeStatus: stateRaw.exchangeStatus,\n    liquidationDuration: stateRaw.liquidationDuration,\n    initialPctToLiquidate: stateRaw.initialPctToLiquidate,\n    maxNumberOfSubAccounts: stateRaw.maxNumberOfSubAccounts,\n    maxInitializeUserFee: stateRaw.maxInitializeUserFee,\n    padding: stateRaw.padding,\n  };\n}\n\nexport function driftSpotMarketRawToDto(\n  spotMarketRaw: DriftSpotMarket | DriftSpotMarketRaw\n): DriftSpotMarketJSON {\n  return {\n    pubkey: spotMarketRaw.pubkey.toBase58(),\n    oracle: spotMarketRaw.oracle.toBase58(),\n    mint: spotMarketRaw.mint.toBase58(),\n    decimals: spotMarketRaw.decimals,\n    cumulativeDepositInterest:\n      spotMarketRaw.cumulativeDepositInterest.toString(),\n    marketIndex: spotMarketRaw.marketIndex,\n\n    depositBalance: spotMarketRaw.depositBalance.toString(),\n    borrowBalance: spotMarketRaw.borrowBalance.toString(),\n    cumulativeBorrowInterest: spotMarketRaw.cumulativeBorrowInterest.toString(),\n    optimalUtilization: spotMarketRaw.optimalUtilization,\n    optimalBorrowRate: spotMarketRaw.optimalBorrowRate,\n    maxBorrowRate: spotMarketRaw.maxBorrowRate,\n    minBorrowRate: spotMarketRaw.minBorrowRate,\n    insuranceFund: {\n      totalFactor: spotMarketRaw.insuranceFund.totalFactor,\n    },\n    poolId: spotMarketRaw.poolId,\n  };\n}\n\nexport function driftRewardsRawToDto(\n  rewardsRaw: DriftRewards\n): DriftRewardsJSON {\n  return {\n    oracle: rewardsRaw.oracle.toBase58(),\n    marketIndex: rewardsRaw.marketIndex,\n    spotMarket: rewardsRaw.spotMarket.toBase58(),\n    mint: rewardsRaw.mint.toBase58(),\n    spotPosition: {\n      scaledBalance: rewardsRaw.spotPosition.scaledBalance.toString(),\n      openBids: rewardsRaw.spotPosition.openBids.toString(),\n      openAsks: rewardsRaw.spotPosition.openAsks.toString(),\n      cumulativeDeposits: rewardsRaw.spotPosition.cumulativeDeposits.toString(),\n      marketIndex: rewardsRaw.spotPosition.marketIndex,\n      balanceType: rewardsRaw.spotPosition.balanceType,\n      openOrders: rewardsRaw.spotPosition.openOrders,\n      padding: rewardsRaw.spotPosition.padding,\n    },\n  };\n}\n\nfunction userFeesToDto(feesRaw: any): UserFeesJSON {\n  return {\n    totalFeePaid: feesRaw.totalFeePaid.toString(),\n    totalFeeRebate: feesRaw.totalFeeRebate.toString(),\n    totalTokenDiscount: feesRaw.totalTokenDiscount.toString(),\n    totalRefereeDiscount: feesRaw.totalRefereeDiscount.toString(),\n    totalReferrerReward: feesRaw.totalReferrerReward.toString(),\n    currentEpochReferrerReward: feesRaw.currentEpochReferrerReward.toString(),\n  };\n}\n","import { BorshAccountsCoder } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport { DRIFT_IDL } from \"../idl\";\nimport {\n  DriftUserStats,\n  DriftUserStatsJSON,\n  DriftUser,\n  DriftUserJSON,\n  DriftState,\n  DriftStateJSON,\n  DriftSpotMarket,\n  DriftSpotMarketJSON,\n  DriftSpotMarketRaw,\n  DriftRewards,\n  DriftRewardsJSON,\n} from \"../types\";\n\nconst DRIFT_ACCOUNTS_CODER = new BorshAccountsCoder(DRIFT_IDL);\n\nconst spotMarketDiscriminator = Buffer.from([100, 177, 8, 107, 168, 65, 65, 39]);\nconst stateDiscriminator = Buffer.from([216, 146, 107, 94, 104, 75, 182, 177]);\nconst userDiscriminator = Buffer.from([159, 117, 95, 227, 239, 151, 58, 236]);\nconst userStatsDiscriminator = Buffer.from([176, 223, 136, 27, 122, 79, 32, 227]);\n\nexport function dtoToDriftUserStatsRaw(userStatsDto: DriftUserStatsJSON): DriftUserStats {\n  return {\n    authority: new PublicKey(userStatsDto.authority),\n    referrer: new PublicKey(userStatsDto.referrer),\n    fees: {\n      totalFeePaid: new BN(userStatsDto.fees.totalFeePaid),\n      totalFeeRebate: new BN(userStatsDto.fees.totalFeeRebate),\n      totalTokenDiscount: new BN(userStatsDto.fees.totalTokenDiscount),\n      totalRefereeDiscount: new BN(userStatsDto.fees.totalRefereeDiscount),\n      totalReferrerReward: new BN(userStatsDto.fees.totalReferrerReward),\n      currentEpochReferrerReward: new BN(userStatsDto.fees.currentEpochReferrerReward),\n    },\n    nextEpochTs: new BN(userStatsDto.nextEpochTs),\n    makerVolume30d: new BN(userStatsDto.makerVolume30d),\n    takerVolume30d: new BN(userStatsDto.takerVolume30d),\n    fillerVolume30d: new BN(userStatsDto.fillerVolume30d),\n    lastMakerVolume30dTs: new BN(userStatsDto.lastMakerVolume30dTs),\n    lastTakerVolume30dTs: new BN(userStatsDto.lastTakerVolume30dTs),\n    lastFillerVolume30dTs: new BN(userStatsDto.lastFillerVolume30dTs),\n    ifStakedQuoteAssetAmount: new BN(userStatsDto.ifStakedQuoteAssetAmount),\n    numberOfSubAccounts: userStatsDto.numberOfSubAccounts,\n    numberOfSubAccountsCreated: userStatsDto.numberOfSubAccountsCreated,\n    referrerStatus: userStatsDto.referrerStatus,\n    disableUpdatePerpBidAskTwap: userStatsDto.disableUpdatePerpBidAskTwap,\n    padding1: userStatsDto.padding1,\n    fuelOverflowStatus: userStatsDto.fuelOverflowStatus,\n    fuelInsurance: userStatsDto.fuelInsurance,\n    fuelDeposits: userStatsDto.fuelDeposits,\n    fuelBorrows: userStatsDto.fuelBorrows,\n    fuelPositions: userStatsDto.fuelPositions,\n    fuelTaker: userStatsDto.fuelTaker,\n    fuelMaker: userStatsDto.fuelMaker,\n    ifStakedGovTokenAmount: new BN(userStatsDto.ifStakedGovTokenAmount),\n    lastFuelIfBonusUpdateTs: userStatsDto.lastFuelIfBonusUpdateTs,\n    padding: userStatsDto.padding,\n  };\n}\n\nexport function dtoToDriftUserRaw(userDto: DriftUserJSON): DriftUser {\n  return {\n    authority: new PublicKey(userDto.authority),\n    spotPositions: userDto.spotPositions.map((p) => ({\n      scaledBalance: new BN(p.scaledBalance),\n      openBids: new BN(p.openBids),\n      openAsks: new BN(p.openAsks),\n      cumulativeDeposits: new BN(p.cumulativeDeposits),\n      marketIndex: p.marketIndex,\n      balanceType: p.balanceType,\n      openOrders: p.openOrders,\n      padding: p.padding,\n    })),\n  };\n}\n\nexport function dtoToDriftStateRaw(stateDto: DriftStateJSON): DriftState {\n  return {\n    admin: new PublicKey(stateDto.admin),\n    whitelistMint: new PublicKey(stateDto.whitelistMint),\n    discountMint: new PublicKey(stateDto.discountMint),\n    signer: new PublicKey(stateDto.signer),\n    srmVault: new PublicKey(stateDto.srmVault),\n    perpFeeStructure: stateDto.perpFeeStructure as any,\n    spotFeeStructure: stateDto.spotFeeStructure as any,\n    oracleGuardRails: stateDto.oracleGuardRails as any,\n    numberOfAuthorities: new BN(stateDto.numberOfAuthorities),\n    numberOfSubAccounts: new BN(stateDto.numberOfSubAccounts),\n    lpCooldownTime: new BN(stateDto.lpCooldownTime),\n    liquidationMarginBufferRatio: stateDto.liquidationMarginBufferRatio,\n    settlementDuration: stateDto.settlementDuration,\n    numberOfMarkets: stateDto.numberOfMarkets,\n    numberOfSpotMarkets: stateDto.numberOfSpotMarkets,\n    signerNonce: stateDto.signerNonce,\n    minPerpAuctionDuration: stateDto.minPerpAuctionDuration,\n    defaultMarketOrderTimeInForce: stateDto.defaultMarketOrderTimeInForce,\n    defaultSpotAuctionDuration: stateDto.defaultSpotAuctionDuration,\n    exchangeStatus: stateDto.exchangeStatus,\n    liquidationDuration: stateDto.liquidationDuration,\n    initialPctToLiquidate: stateDto.initialPctToLiquidate,\n    maxNumberOfSubAccounts: stateDto.maxNumberOfSubAccounts,\n    maxInitializeUserFee: stateDto.maxInitializeUserFee,\n    padding: stateDto.padding,\n  };\n}\n\nexport function dtoToDriftRewardsRaw(rewardsDto: DriftRewardsJSON): DriftRewards {\n  return {\n    oracle: new PublicKey(rewardsDto.oracle),\n    marketIndex: rewardsDto.marketIndex,\n    spotMarket: new PublicKey(rewardsDto.spotMarket),\n    mint: new PublicKey(rewardsDto.mint),\n    spotPosition: {\n      scaledBalance: new BN(rewardsDto.spotPosition.scaledBalance),\n      openBids: new BN(rewardsDto.spotPosition.openBids),\n      openAsks: new BN(rewardsDto.spotPosition.openAsks),\n      cumulativeDeposits: new BN(rewardsDto.spotPosition.cumulativeDeposits),\n      marketIndex: rewardsDto.spotPosition.marketIndex,\n      balanceType: rewardsDto.spotPosition.balanceType,\n      openOrders: rewardsDto.spotPosition.openOrders,\n      padding: rewardsDto.spotPosition.padding,\n    },\n  };\n}\n\nexport function dtoToDriftSpotMarketRaw(spotMarketDto: DriftSpotMarketJSON): DriftSpotMarket {\n  return {\n    pubkey: new PublicKey(spotMarketDto.pubkey),\n    oracle: new PublicKey(spotMarketDto.oracle),\n    mint: new PublicKey(spotMarketDto.mint),\n    decimals: spotMarketDto.decimals,\n    cumulativeDepositInterest: new BN(spotMarketDto.cumulativeDepositInterest),\n    marketIndex: spotMarketDto.marketIndex,\n    depositBalance: new BN(spotMarketDto.depositBalance),\n    borrowBalance: new BN(spotMarketDto.borrowBalance),\n    cumulativeBorrowInterest: new BN(spotMarketDto.cumulativeBorrowInterest),\n    optimalUtilization: spotMarketDto.optimalUtilization,\n    optimalBorrowRate: spotMarketDto.optimalBorrowRate,\n    maxBorrowRate: spotMarketDto.maxBorrowRate,\n    minBorrowRate: spotMarketDto.minBorrowRate,\n    insuranceFund: spotMarketDto.insuranceFund,\n    poolId: spotMarketDto.poolId,\n  };\n}\n\nexport function decodeDriftSpotMarketData(data: Buffer): DriftSpotMarketRaw {\n  if (!data.slice(0, 8).equals(spotMarketDiscriminator)) {\n    throw new Error(\"invalid account discriminator\");\n  }\n\n  // BorshAccountsCoder.decode() expects the full buffer with discriminator\n  const decoded = DRIFT_ACCOUNTS_CODER.decode(\"SpotMarket\", data);\n\n  // Transform snake_case field names from IDL to camelCase for TypeScript types\n  return {\n    pubkey: decoded.pubkey,\n    oracle: decoded.oracle,\n    mint: decoded.mint,\n    vault: decoded.vault,\n    name: decoded.name,\n    historicalOracleData: decoded.historical_oracle_data,\n    historicalIndexData: decoded.historical_index_data,\n    revenuePool: decoded.revenue_pool,\n    spotFeePool: decoded.spot_fee_pool,\n    insuranceFund: decoded.insurance_fund,\n    totalSpotFee: decoded.total_spot_fee,\n    depositBalance: decoded.deposit_balance,\n    borrowBalance: decoded.borrow_balance,\n    cumulativeDepositInterest: decoded.cumulative_deposit_interest,\n    cumulativeBorrowInterest: decoded.cumulative_borrow_interest,\n    totalSocialLoss: decoded.total_social_loss,\n    totalQuoteSocialLoss: decoded.total_quote_social_loss,\n    withdrawGuardThreshold: decoded.withdraw_guard_threshold,\n    maxTokenDeposits: decoded.max_token_deposits,\n    depositTokenTwap: decoded.deposit_token_twap,\n    borrowTokenTwap: decoded.borrow_token_twap,\n    utilizationTwap: decoded.utilization_twap,\n    lastInterestTs: decoded.last_interest_ts,\n    lastTwapTs: decoded.last_twap_ts,\n    expiryTs: decoded.expiry_ts,\n    orderStepSize: decoded.order_step_size,\n    orderTickSize: decoded.order_tick_size,\n    minOrderSize: decoded.min_order_size,\n    maxPositionSize: decoded.max_position_size,\n    nextFillRecordId: decoded.next_fill_record_id,\n    nextDepositRecordId: decoded.next_deposit_record_id,\n    initialAssetWeight: decoded.initial_asset_weight,\n    maintenanceAssetWeight: decoded.maintenance_asset_weight,\n    initialLiabilityWeight: decoded.initial_liability_weight,\n    maintenanceLiabilityWeight: decoded.maintenance_liability_weight,\n    imfFactor: decoded.imf_factor,\n    liquidatorFee: decoded.liquidator_fee,\n    ifLiquidationFee: decoded.if_liquidation_fee,\n    optimalUtilization: decoded.optimal_utilization,\n    optimalBorrowRate: decoded.optimal_borrow_rate,\n    maxBorrowRate: decoded.max_borrow_rate,\n    decimals: decoded.decimals,\n    marketIndex: decoded.market_index,\n    ordersEnabled: decoded.orders_enabled,\n    oracleSource: decoded.oracle_source,\n    status: decoded.status,\n    assetTier: decoded.asset_tier,\n    pausedOperations: decoded.paused_operations,\n    ifPausedOperations: decoded.if_paused_operations,\n    feeAdjustment: decoded.fee_adjustment,\n    maxTokenBorrowsFraction: decoded.max_token_borrows_fraction,\n    flashLoanAmount: decoded.flash_loan_amount,\n    flashLoanInitialTokenAmount: decoded.flash_loan_initial_token_amount,\n    totalSwapFee: decoded.total_swap_fee,\n    scaleInitialAssetWeightStart: decoded.scale_initial_asset_weight_start,\n    minBorrowRate: decoded.min_borrow_rate,\n    fuelBoostDeposits: decoded.fuel_boost_deposits,\n    fuelBoostBorrows: decoded.fuel_boost_borrows,\n    fuelBoostTaker: decoded.fuel_boost_taker,\n    fuelBoostMaker: decoded.fuel_boost_maker,\n    fuelBoostInsurance: decoded.fuel_boost_insurance,\n    tokenProgram: decoded.token_program,\n    poolId: decoded.pool_id,\n    padding: decoded.padding,\n  } as DriftSpotMarketRaw;\n}\n\nexport function decodeDriftStateData(data: Buffer): DriftState {\n  if (!data.slice(0, 8).equals(stateDiscriminator)) {\n    throw new Error(\"invalid account discriminator\");\n  }\n\n  const decoded = DRIFT_ACCOUNTS_CODER.decode(\"State\", data);\n\n  // Transform snake_case field names from IDL to camelCase for TypeScript types\n  return {\n    admin: decoded.admin,\n    whitelistMint: decoded.whitelist_mint,\n    discountMint: decoded.discount_mint,\n    signer: decoded.signer,\n    srmVault: decoded.srm_vault,\n    perpFeeStructure: decoded.perp_fee_structure,\n    spotFeeStructure: decoded.spot_fee_structure,\n    oracleGuardRails: decoded.oracle_guard_rails,\n    numberOfAuthorities: decoded.number_of_authorities,\n    numberOfSubAccounts: decoded.number_of_sub_accounts,\n    lpCooldownTime: decoded.lp_cooldown_time,\n    liquidationMarginBufferRatio: decoded.liquidation_margin_buffer_ratio,\n    settlementDuration: decoded.settlement_duration,\n    numberOfMarkets: decoded.number_of_markets,\n    numberOfSpotMarkets: decoded.number_of_spot_markets,\n    signerNonce: decoded.signer_nonce,\n    minPerpAuctionDuration: decoded.min_perp_auction_duration,\n    defaultMarketOrderTimeInForce: decoded.default_market_order_time_in_force,\n    defaultSpotAuctionDuration: decoded.default_spot_auction_duration,\n    exchangeStatus: decoded.exchange_status,\n    liquidationDuration: decoded.liquidation_duration,\n    initialPctToLiquidate: decoded.initial_pct_to_liquidate,\n    maxNumberOfSubAccounts: decoded.max_number_of_sub_accounts,\n    maxInitializeUserFee: decoded.max_initialize_user_fee,\n    padding: decoded.padding,\n  } as DriftState;\n}\n\nexport function decodeDriftUserData(data: Buffer): DriftUser {\n  if (!data.slice(0, 8).equals(userDiscriminator)) {\n    throw new Error(\"invalid account discriminator\");\n  }\n\n  const decoded = DRIFT_ACCOUNTS_CODER.decode(\"User\", data);\n\n  // Transform snake_case field names from IDL to camelCase for TypeScript types\n  return {\n    authority: decoded.authority,\n    spotPositions: decoded.spot_positions.map((p: any) => ({\n      scaledBalance: new BN(p.scaled_balance),\n      openBids: new BN(p.open_bids),\n      openAsks: new BN(p.open_asks),\n      cumulativeDeposits: new BN(p.cumulative_deposits),\n      marketIndex: p.market_index,\n      balanceType: p.balance_type,\n      openOrders: p.open_orders,\n      padding: p.padding,\n    })),\n    // delegate: decoded.delegate,\n    // name: decoded.name,\n    // perpPositions: decoded.perp_positions,\n    // orders: decoded.orders,\n    // lastAddPerpLpSharesTs: decoded.last_add_perp_lp_shares_ts,\n    // totalDeposits: decoded.total_deposits,\n    // totalWithdraws: decoded.total_withdraws,\n    // totalSocialLoss: decoded.total_social_loss,\n    // settledPerpPnl: decoded.settled_perp_pnl,\n    // cumulativeSpotFees: decoded.cumulative_spot_fees,\n    // cumulativePerpFunding: decoded.cumulative_perp_funding,\n    // liquidationMarginFreed: decoded.liquidation_margin_freed,\n    // lastActiveSlot: decoded.last_active_slot,\n    // nextOrderId: decoded.next_order_id,\n    // maxMarginRatio: decoded.max_margin_ratio,\n    // nextLiquidationId: decoded.next_liquidation_id,\n    // subAccountId: decoded.sub_account_id,\n    // status: decoded.status,\n    // isMarginTradingEnabled: decoded.is_margin_trading_enabled,\n    // idle: decoded.idle,\n    // openOrders: decoded.open_orders,\n    // hasOpenOrder: decoded.has_open_order,d\n    // openAuctions: decoded.open_auctions,\n    // hasOpenAuction: decoded.has_open_auction,\n    // marginMode: decoded.margin_mode,\n    // poolId: decoded.pool_id,\n    // padding1: decoded.padding1,\n    // lastFuelBonusUpdateTs: decoded.last_fuel_bonus_update_ts,\n    // padding: decoded.padding,\n  } as DriftUser;\n}\n\nexport function decodeDriftUserStatsData(data: Buffer): DriftUserStats {\n  if (!data.slice(0, 8).equals(userStatsDiscriminator)) {\n    throw new Error(\"invalid account discriminator\");\n  }\n\n  const decoded = DRIFT_ACCOUNTS_CODER.decode(\"UserStats\", data);\n\n  // Transform snake_case field names from IDL to camelCase for TypeScript types\n  return {\n    authority: decoded.authority,\n    referrer: decoded.referrer,\n    fees: decoded.fees,\n    nextEpochTs: decoded.next_epoch_ts,\n    makerVolume30d: decoded.maker_volume_30d,\n    takerVolume30d: decoded.taker_volume_30d,\n    fillerVolume30d: decoded.filler_volume_30d,\n    lastMakerVolume30dTs: decoded.last_maker_volume_30d_ts,\n    lastTakerVolume30dTs: decoded.last_taker_volume_30d_ts,\n    lastFillerVolume30dTs: decoded.last_filler_volume_30d_ts,\n    ifStakedQuoteAssetAmount: decoded.if_staked_quote_asset_amount,\n    numberOfSubAccounts: decoded.number_of_sub_accounts,\n    numberOfSubAccountsCreated: decoded.number_of_sub_accounts_created,\n    referrerStatus: decoded.referrer_status,\n    disableUpdatePerpBidAskTwap: decoded.disable_update_perp_bid_ask_twap,\n    padding1: decoded.padding1,\n    fuelOverflowStatus: decoded.fuel_overflow_status,\n    fuelInsurance: decoded.fuel_insurance,\n    fuelDeposits: decoded.fuel_deposits,\n    fuelBorrows: decoded.fuel_borrows,\n    fuelPositions: decoded.fuel_positions,\n    fuelTaker: decoded.fuel_taker,\n    fuelMaker: decoded.fuel_maker,\n    ifStakedGovTokenAmount: decoded.if_staked_gov_token_amount,\n    lastFuelIfBonusUpdateTs: decoded.last_fuel_if_bonus_update_ts,\n    padding: decoded.padding,\n  } as DriftUserStats;\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const DRIFT_PROGRAM_ID = new PublicKey(\n  \"dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH\"\n);\n","import { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport { DRIFT_PROGRAM_ID } from \"../constants\";\n\nexport const SEED_DRIFT_STATE = \"drift_state\";\nexport const SEED_USER = \"user\";\nexport const SEED_USER_STATS = \"user_stats\";\nexport const SEED_SPOT_MARKET = \"spot_market\";\nexport const SEED_SPOT_MARKET_VAULT = \"spot_market_vault\";\nexport const SEED_DRIFT_SIGNER = \"drift_signer\";\n\nexport function getAllDerivedDriftAccounts(marketIndex: number) {\n  return {\n    driftState: deriveDriftState()[0],\n    driftSigner: deriveDriftSigner()[0],\n    driftSpotMarket: deriveDriftSpotMarket(marketIndex)[0],\n    driftSpotMarketVault: deriveDriftSpotMarketVault(marketIndex)[0],\n  };\n}\n\nexport function deriveDriftState(programId: PublicKey = DRIFT_PROGRAM_ID): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync([Buffer.from(SEED_DRIFT_STATE)], programId);\n}\n\nexport function deriveDriftSigner(programId: PublicKey = DRIFT_PROGRAM_ID): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync([Buffer.from(SEED_DRIFT_SIGNER)], programId);\n}\n\nexport function deriveDriftUser(\n  authority: PublicKey,\n  subAccountId: number,\n  programId: PublicKey = DRIFT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [\n      Buffer.from(SEED_USER),\n      authority.toBuffer(),\n      new BN(subAccountId).toArrayLike(Buffer, \"le\", 2),\n    ],\n    programId\n  );\n}\n\nexport function deriveDriftUserStats(\n  authority: PublicKey,\n  programId: PublicKey = DRIFT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_USER_STATS), authority.toBuffer()],\n    programId\n  );\n}\n\nexport function deriveDriftSpotMarket(\n  marketIndex: number,\n  programId: PublicKey = DRIFT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_SPOT_MARKET), new BN(marketIndex).toArrayLike(Buffer, \"le\", 2)],\n    programId\n  );\n}\n\nexport function deriveDriftSpotMarketVault(\n  marketIndex: number,\n  programId: PublicKey = DRIFT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_SPOT_MARKET_VAULT), new BN(marketIndex).toArrayLike(Buffer, \"le\", 2)],\n    programId\n  );\n}\n","import BN from \"bn.js\";\n\nimport { DriftSpotBalanceType, DriftSpotMarket, isSpotBalanceTypeVariant } from \"../types\";\n\n/**\n * All-in-one APY/APR calculation module for Drift Protocol\n *\n * This file contains:\n * - Constants\n * - Core rate calculations (APR)\n * - APY calculations (with compounding)\n */\n\n// ============================================================================\n// CONSTANTS\n// ============================================================================\n\nexport const ZERO = new BN(0);\nexport const ONE = new BN(1);\nexport const TEN = new BN(10);\n\n// Precision constants\nexport const PERCENTAGE_PRECISION_EXP = new BN(6);\nexport const PERCENTAGE_PRECISION = new BN(10).pow(PERCENTAGE_PRECISION_EXP);\n\nexport const SPOT_MARKET_RATE_PRECISION_EXP = new BN(6);\nexport const SPOT_MARKET_RATE_PRECISION = new BN(10).pow(SPOT_MARKET_RATE_PRECISION_EXP);\n\nexport const SPOT_MARKET_UTILIZATION_PRECISION_EXP = new BN(6);\nexport const SPOT_MARKET_UTILIZATION_PRECISION = new BN(10).pow(\n  SPOT_MARKET_UTILIZATION_PRECISION_EXP\n);\n\n// Time constants\nexport const ONE_YEAR = new BN(31536000); // seconds in a year\n\n// ============================================================================\n// HELPER FUNCTIONS\n// ============================================================================\n\n/**\n * Ceiling division helper\n */\nfunction divCeil(a: BN, b: BN): BN {\n  const quotient = a.div(b);\n  const remainder = a.mod(b);\n  if (remainder.gt(ZERO)) {\n    return quotient.add(ONE);\n  }\n  return quotient;\n}\n\n/**\n * Calculates the spot token amount including any accumulated interest.\n */\nexport function getDriftTokenAmount(\n  balanceAmount: BN,\n  spotMarket: DriftSpotMarket,\n  balanceType: DriftSpotBalanceType\n): BN {\n  const precisionDecrease = TEN.pow(new BN(19 - spotMarket.decimals));\n\n  if (isSpotBalanceTypeVariant(balanceType, \"deposit\")) {\n    return balanceAmount.mul(spotMarket.cumulativeDepositInterest).div(precisionDecrease);\n  } else {\n    // For borrows, use ceiling division\n    return divCeil(balanceAmount.mul(spotMarket.cumulativeBorrowInterest), precisionDecrease);\n  }\n}\n\n// ============================================================================\n// CORE RATE CALCULATIONS (APR)\n// ============================================================================\n\n/**\n * Calculates the utilization rate of a spot market\n * Utilization = borrows / deposits\n */\nexport function calculateDriftUtilization(bank: DriftSpotMarket, delta: BN = ZERO): BN {\n  let tokenDepositAmount = getDriftTokenAmount(\n    bank.depositBalance,\n    bank,\n    DriftSpotBalanceType.DEPOSIT\n  );\n  let tokenBorrowAmount = getDriftTokenAmount(\n    bank.borrowBalance,\n    bank,\n    DriftSpotBalanceType.BORROW\n  );\n\n  if (delta.gt(ZERO)) {\n    tokenDepositAmount = tokenDepositAmount.add(delta);\n  } else if (delta.lt(ZERO)) {\n    tokenBorrowAmount = tokenBorrowAmount.add(delta.abs());\n  }\n\n  let utilization: BN;\n  if (tokenBorrowAmount.eq(ZERO) && tokenDepositAmount.eq(ZERO)) {\n    utilization = ZERO;\n  } else if (tokenDepositAmount.eq(ZERO)) {\n    utilization = SPOT_MARKET_UTILIZATION_PRECISION;\n  } else {\n    utilization = tokenBorrowAmount.mul(SPOT_MARKET_UTILIZATION_PRECISION).div(tokenDepositAmount);\n  }\n\n  return utilization;\n}\n\n/**\n * Calculates the interest rate based on utilization using a piecewise curve\n */\nexport function calculateDriftInterestRate(\n  bank: DriftSpotMarket,\n  delta: BN = ZERO,\n  currentUtilization: BN | null = null\n): BN {\n  const utilization = currentUtilization || calculateDriftUtilization(bank, delta);\n\n  const optimalUtil = new BN(bank.optimalUtilization);\n  const optimalRate = new BN(bank.optimalBorrowRate);\n  const maxRate = new BN(bank.maxBorrowRate);\n  const minRate = new BN(bank.minBorrowRate).mul(PERCENTAGE_PRECISION.divn(200));\n\n  const weightsDivisor = new BN(1000);\n  const segments: [BN, BN][] = [\n    [new BN(850_000), new BN(50)],\n    [new BN(900_000), new BN(100)],\n    [new BN(950_000), new BN(150)],\n    [new BN(990_000), new BN(200)],\n    [new BN(995_000), new BN(250)],\n    [SPOT_MARKET_UTILIZATION_PRECISION, new BN(250)],\n  ];\n\n  let rate: BN;\n  if (utilization.lte(optimalUtil)) {\n    // below optimal: linear ramp from 0 to optimalRate\n    const slope = optimalRate.mul(SPOT_MARKET_UTILIZATION_PRECISION).div(optimalUtil);\n    rate = utilization.mul(slope).div(SPOT_MARKET_UTILIZATION_PRECISION);\n  } else {\n    // above optimal: piecewise segments\n    const totalExtraRate = maxRate.sub(optimalRate);\n\n    rate = optimalRate.clone();\n    let prevUtil = optimalUtil.clone();\n\n    for (const [bp, weight] of segments) {\n      const segmentEnd = bp.gt(SPOT_MARKET_UTILIZATION_PRECISION)\n        ? SPOT_MARKET_UTILIZATION_PRECISION\n        : bp;\n      const segmentRange = segmentEnd.sub(prevUtil);\n\n      const segmentRateTotal = totalExtraRate.mul(weight).div(weightsDivisor);\n\n      if (utilization.lte(segmentEnd)) {\n        const partialUtil = utilization.sub(prevUtil);\n        const partialRate = segmentRateTotal.mul(partialUtil).div(segmentRange);\n        rate = rate.add(partialRate);\n        break;\n      } else {\n        rate = rate.add(segmentRateTotal);\n        prevUtil = segmentEnd;\n      }\n    }\n  }\n\n  return BN.max(minRate, rate);\n}\n\n/**\n * Calculates the borrow rate (APR) for a spot market\n */\nexport function calculateDriftBorrowRate(\n  bank: DriftSpotMarket,\n  delta: BN = ZERO,\n  currentUtilization: BN | null = null\n): BN {\n  return calculateDriftInterestRate(bank, delta, currentUtilization);\n}\n\n/**\n * Calculates the deposit rate (APR) for a spot market\n * This is the annualized interest rate lenders earn\n */\nexport function calculateDriftDepositRate(\n  bank: DriftSpotMarket,\n  delta: BN = ZERO,\n  currentUtilization: BN | null = null\n): BN {\n  // positive delta => adding to deposit\n  // negative delta => adding to borrow\n\n  const utilization = currentUtilization || calculateDriftUtilization(bank, delta);\n  const borrowRate = calculateDriftBorrowRate(bank, delta, utilization);\n  const depositRate = borrowRate\n    .mul(PERCENTAGE_PRECISION.sub(new BN(bank.insuranceFund.totalFactor)))\n    .mul(utilization)\n    .div(SPOT_MARKET_UTILIZATION_PRECISION)\n    .div(PERCENTAGE_PRECISION);\n  return depositRate;\n}\n\n// ============================================================================\n// APY CALCULATIONS (WITH COMPOUNDING)\n// ============================================================================\n\n/**\n * Calculates the Annual Percentage Yield (APY) for a lending/deposit position.\n *\n * APY accounts for compounding effects, unlike the simple deposit rate (APR).\n *\n * Formula: APY = e^(rate) - 1 (for continuous compounding approximation)\n *\n * @param bank - The SpotMarketAccount for the market\n * @param delta - Optional delta to simulate a deposit/borrow change (default: ZERO)\n * @param currentUtilization - Optional pre-calculated utilization (default: null, will be calculated)\n * @param compoundingPeriodsPerYear - Number of times interest compounds per year (default: 365 for daily)\n * @returns APY as a percentage scaled by PERCENTAGE_PRECISION (e.g., 5% = 5_000_000)\n *\n * @example\n * ```typescript\n * const bank = driftClient.getSpotMarketAccount(0); // USDC\n * const apy = calculateLendingAPY(bank);\n * const apyPercent = apy.toNumber() / PERCENTAGE_PRECISION.toNumber(); // Convert to decimal\n * console.log(`Lending APY: ${apyPercent.toFixed(2)}%`);\n * ```\n */\nexport function calculateDriftLendingAPY(\n  bank: DriftSpotMarket,\n  delta: BN = ZERO,\n  currentUtilization: BN | null = null,\n  _compoundingPeriodsPerYear: number = 365\n): BN {\n  // Get the annualized deposit rate (APR)\n  const depositRate = calculateDriftDepositRate(bank, delta, currentUtilization);\n\n  if (depositRate.eq(ZERO)) {\n    return ZERO;\n  }\n\n  // Calculate e^r using Taylor series expansion\n  // e^r = 1 + r + r^2/2! + r^3/3! + r^4/4! + r^5/5! + r^6/6! + r^7/7! + r^8/8!\n  const CALC_PRECISION = new BN(10).pow(new BN(18));\n\n  const rateInCalcPrecisionDecimal = depositRate\n    .mul(CALC_PRECISION)\n    .div(SPOT_MARKET_RATE_PRECISION);\n\n  // Calculate terms of Taylor series (first 8 terms for accuracy)\n  let expResult = CALC_PRECISION; // Start with 1\n  let term = rateInCalcPrecisionDecimal; // First term is r\n\n  // Add r\n  expResult = expResult.add(term);\n\n  // Add r^2/2!\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(2);\n  expResult = expResult.add(term);\n\n  // Add r^3/3!\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(3);\n  expResult = expResult.add(term);\n\n  // Add r^4/4!\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(4);\n  expResult = expResult.add(term);\n\n  // Add r^5/5!\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(5);\n  expResult = expResult.add(term);\n\n  // Add r^6/6!\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(6);\n  expResult = expResult.add(term);\n\n  // Add r^7/7!\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(7);\n  expResult = expResult.add(term);\n\n  // Add r^8/8!\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(8);\n  expResult = expResult.add(term);\n\n  // APY = e^r - 1\n  const apyInCalcPrecision = expResult.sub(CALC_PRECISION);\n\n  // Convert back to PERCENTAGE_PRECISION\n  const apy = apyInCalcPrecision.mul(PERCENTAGE_PRECISION).div(CALC_PRECISION);\n\n  return apy;\n}\n\n/**\n * Calculates a simplified lending APY without compounding (essentially the APR).\n * This is faster but less accurate than calculateLendingAPY.\n *\n * @param bank - The SpotMarketAccount for the market\n * @param delta - Optional delta to simulate a deposit/borrow change (default: ZERO)\n * @param currentUtilization - Optional pre-calculated utilization (default: null)\n * @returns APR as a percentage scaled by PERCENTAGE_PRECISION\n */\nexport function calculateDriftLendingAPR(\n  bank: DriftSpotMarket,\n  delta: BN = ZERO,\n  currentUtilization: BN | null = null\n): BN {\n  const depositRate = calculateDriftDepositRate(bank, delta, currentUtilization);\n\n  // Convert from SPOT_MARKET_RATE_PRECISION to PERCENTAGE_PRECISION\n  // depositRate is already annualized, just need to convert precision\n  const apr = depositRate.mul(PERCENTAGE_PRECISION).div(SPOT_MARKET_RATE_PRECISION);\n\n  return apr;\n}\n\n/**\n * Calculates the borrowing APY for a borrow position.\n *\n * @param bank - The SpotMarketAccount for the market\n * @param delta - Optional delta to simulate a deposit/borrow change (default: ZERO)\n * @param currentUtilization - Optional pre-calculated utilization (default: null)\n * @param compoundingPeriodsPerYear - Number of times interest compounds per year (default: 365)\n * @returns APY as a percentage scaled by PERCENTAGE_PRECISION\n */\nexport function calculateDriftBorrowAPY(\n  bank: DriftSpotMarket,\n  delta: BN = ZERO,\n  currentUtilization: BN | null = null,\n  _compoundingPeriodsPerYear: number = 365\n): BN {\n  const borrowRate = calculateDriftBorrowRate(bank, delta, currentUtilization);\n\n  if (borrowRate.eq(ZERO)) {\n    return ZERO;\n  }\n\n  // Same logic as lending APY but using borrow rate\n  const CALC_PRECISION = new BN(10).pow(new BN(18));\n\n  const rateInCalcPrecisionDecimal = borrowRate.mul(CALC_PRECISION).div(SPOT_MARKET_RATE_PRECISION);\n\n  let expResult = CALC_PRECISION;\n  let term = rateInCalcPrecisionDecimal;\n\n  expResult = expResult.add(term);\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(2);\n  expResult = expResult.add(term);\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(3);\n  expResult = expResult.add(term);\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(4);\n  expResult = expResult.add(term);\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(5);\n  expResult = expResult.add(term);\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(6);\n  expResult = expResult.add(term);\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(7);\n  expResult = expResult.add(term);\n  term = term.mul(rateInCalcPrecisionDecimal).div(CALC_PRECISION).divn(8);\n  expResult = expResult.add(term);\n\n  const apyInCalcPrecision = expResult.sub(CALC_PRECISION);\n\n  const apy = apyInCalcPrecision.mul(PERCENTAGE_PRECISION).div(CALC_PRECISION);\n\n  return apy;\n}\n\n/**\n * Calculates the borrowing APR (without compounding).\n *\n * @param bank - The SpotMarketAccount for the market\n * @param delta - Optional delta to simulate a deposit/borrow change (default: ZERO)\n * @param currentUtilization - Optional pre-calculated utilization (default: null)\n * @returns APR as a percentage scaled by PERCENTAGE_PRECISION\n */\nexport function calculateDriftBorrowAPR(\n  bank: DriftSpotMarket,\n  delta: BN = ZERO,\n  currentUtilization: BN | null = null\n): BN {\n  const borrowRate = calculateDriftBorrowRate(bank, delta, currentUtilization);\n\n  // Convert from SPOT_MARKET_RATE_PRECISION to PERCENTAGE_PRECISION\n  const apr = borrowRate.mul(PERCENTAGE_PRECISION).div(SPOT_MARKET_RATE_PRECISION);\n\n  return apr;\n}\n\n// ============================================================================\n// INTEREST RATE CURVE GENERATION\n// ============================================================================\n\n/**\n * Interest rate curve point for visualization\n */\nexport interface DriftInterestRateCurvePoint {\n  utilization: number; // 0-100 percentage\n  borrowAPY: number; // percentage\n  supplyAPY: number; // percentage\n}\n\n// Solana slots per year (same as Kamino for consistency)\n// 2 slots/second * 60 seconds * 60 minutes * 24 hours * 365 days\nconst SLOTS_PER_YEAR = 63072000;\n\n/**\n * Convert APR to APY using discrete compounding formula\n * APY = (1 + APR/n)^n - 1, where n = SLOTS_PER_YEAR\n * This matches Kamino's approach for consistent curve generation\n *\n * @param apr - Annual Percentage Rate as decimal (e.g., 0.05 for 5%)\n * @returns Annual Percentage Yield as decimal\n */\nfunction calculateAPYFromAPR(apr: number): number {\n  if (apr === 0) return 0;\n  return Math.pow(1 + apr / SLOTS_PER_YEAR, SLOTS_PER_YEAR) - 1;\n}\n\n/**\n * Generate complete interest rate curve for a Drift spot market\n * Creates 101 data points from 0% to 100% utilization\n *\n * @param spotMarket - The Drift spot market account\n * @returns Array of curve points with utilization, borrow APY, and supply APY\n *\n * @example\n * ```typescript\n * const spotMarket = getDriftSpotMarket(0); // USDC market\n * const curve = generateDriftReserveCurve(spotMarket);\n *\n * curve.forEach(point => {\n *   console.log(`Utilization: ${point.utilization}%`);\n *   console.log(`Borrow APY: ${point.borrowAPY.toFixed(2)}%`);\n *   console.log(`Supply APY: ${point.supplyAPY.toFixed(2)}%`);\n * });\n * ```\n */\nexport function generateDriftReserveCurve(\n  spotMarket: DriftSpotMarket\n): DriftInterestRateCurvePoint[] {\n  return Array.from({ length: 101 }, (_, i) => {\n    const utilizationPercent = i / 100; // 0.00 to 1.00\n\n    // Convert to BN with SPOT_MARKET_UTILIZATION_PRECISION (1e6)\n    const utilizationBN = new BN(\n      Math.floor(utilizationPercent * SPOT_MARKET_UTILIZATION_PRECISION.toNumber())\n    );\n\n    // Calculate borrow rate (APR) at this utilization\n    const borrowRateBN = calculateDriftBorrowRate(spotMarket, ZERO, utilizationBN);\n\n    // Calculate deposit rate (APR) at this utilization\n    const depositRateBN = calculateDriftDepositRate(spotMarket, ZERO, utilizationBN);\n\n    // Convert from SPOT_MARKET_RATE_PRECISION to decimal\n    // SPOT_MARKET_RATE_PRECISION is 1e6, representing rates as integers\n    const borrowAPR = borrowRateBN.toNumber() / SPOT_MARKET_RATE_PRECISION.toNumber();\n    const supplyAPR = depositRateBN.toNumber() / SPOT_MARKET_RATE_PRECISION.toNumber();\n\n    // Convert APR to APY with compounding\n    const borrowAPY = calculateAPYFromAPR(borrowAPR);\n    const supplyAPY = calculateAPYFromAPR(supplyAPR);\n\n    return {\n      utilization: utilizationPercent * 100, // Convert to percentage (0-100)\n      borrowAPY: borrowAPY * 100, // Convert to percentage\n      supplyAPY: supplyAPY * 100, // Convert to percentage\n    };\n  });\n}\n","import { PublicKey, Connection } from \"@solana/web3.js\";\n\nimport {\n  DriftUser,\n  DriftRewards,\n  DriftSpotMarket,\n  DriftSpotMarketRaw,\n  SpotPosition,\n} from \"../types\";\n\nimport { deriveDriftSpotMarket } from \"./derive.utils\";\nimport { decodeDriftSpotMarketData } from \"./deserialize.utils\";\n\nimport { USDC_MINT } from \"~/constants\";\n\n/*\n *   Drift rewards get distributed to users in the form of spot positions.\n *   The spotPositions array in the DriftUser struct is an array of all the spot positions a user has.\n *   The first two positions are always [USDC, token]. The rest are the rewards\n *   (unless if bank is USDC then it's [USDC, ...rewards])\n *\n *   This function returns the rewards for each bank\n *\n *   NOTE: if bank has more then 2 Drift rewards, program will brick\n */\nexport async function getDriftRewards(\n  spotMarkets: DriftSpotMarket[],\n  userStates: {\n    bankAddress: PublicKey;\n    marketMint: PublicKey;\n    driftUser: DriftUser;\n  }[],\n  connection: Connection\n) {\n  // Not all rewards will be in spot markets we have fetched, so need to fetch seperately\n  const missingMarketIndexes: Set<number> = new Set();\n\n  const spotMarketsMap = new Map(spotMarkets.map((market) => [market.marketIndex, market]));\n\n  // Get all active rewards\n  const userStatesWithRewards = userStates.map((userState) => {\n    const spotPositions = userState.driftUser.spotPositions;\n    const isUsdc = userState.marketMint.equals(USDC_MINT);\n    const rewardIndex = isUsdc ? 1 : 2;\n    const rewards: SpotPosition[] = spotPositions\n      .slice(rewardIndex)\n      .filter((p) => p.marketIndex !== 0);\n\n    if (rewards.length > 0) {\n      rewards.forEach((reward) => {\n        const index = reward.marketIndex;\n        const market = spotMarketsMap.get(index);\n        if (!market) {\n          missingMarketIndexes.add(index);\n        }\n      });\n    }\n\n    return {\n      userState,\n      rewards,\n    };\n  });\n\n  const missingMarketIndexesArray = Array.from(missingMarketIndexes);\n\n  const missingMarketKeys = missingMarketIndexesArray.map(\n    (index) => deriveDriftSpotMarket(index)[0]\n  );\n\n  // Fetch missing markets\n  const missingMarketsAccounts = missingMarketKeys.length\n    ? await connection.getMultipleAccountsInfo(missingMarketKeys)\n    : [];\n\n  // Any console error here should not be ignored and indicate something seriously wrong\n  const missingMarketsMap: Map<number, DriftSpotMarketRaw> = new Map([\n    // Include all existing spot markets\n    ...spotMarkets.map((market) => [market.marketIndex, market] as [number, DriftSpotMarketRaw]),\n    // Add newly fetched missing markets\n    ...missingMarketsAccounts\n      .map((account, idx) => {\n        const marketIndex = missingMarketIndexesArray[idx];\n\n        if (!marketIndex) {\n          console.error(\"Missing market index, for \", marketIndex);\n          return null;\n        }\n\n        if (!account) {\n          console.error(\"Missing market account, for \", missingMarketKeys[idx]?.toBase58());\n          return null;\n        } else {\n          const decodedMarket = decodeDriftSpotMarketData(account.data);\n          return [marketIndex, decodedMarket];\n        }\n      })\n      .filter((market): market is [number, DriftSpotMarketRaw] => market !== null),\n  ]);\n\n  // Formats the rewards by bank\n  const driftRewardsByBank = new Map(\n    userStatesWithRewards.map((userStateWithRewards) => {\n      const { userState, rewards } = userStateWithRewards;\n      const driftRewards: DriftRewards[] = [];\n      rewards.forEach((reward) => {\n        const marketIndex = reward.marketIndex;\n        const market = missingMarketsMap.get(marketIndex);\n        if (!market) {\n          console.error(\"Missing market, for \", marketIndex);\n        } else {\n          driftRewards.push({\n            oracle: market.oracle,\n            marketIndex,\n            spotMarket: deriveDriftSpotMarket(marketIndex)[0],\n            mint: market.mint,\n            spotPosition: reward,\n          });\n        }\n      });\n      return [userState.bankAddress.toBase58(), driftRewards];\n    })\n  );\n\n  return driftRewardsByBank;\n}\n\nexport async function getAllRequiredMarkets(\n  spotMarkets: DriftSpotMarket[],\n  driftUsers: DriftUser[],\n  connection: Connection\n): Promise<DriftSpotMarketRaw[]> {\n  const allKeys = driftUsers.map((user) =>\n    user.spotPositions.map((position) => position.marketIndex)\n  );\n\n  const allKeysFlattened = new Set(allKeys.flat());\n\n  const missingMarketIndexes = Array.from(allKeysFlattened).filter(\n    (index) => !spotMarkets.some((market) => market.marketIndex === index)\n  );\n\n  const missingMarketKeys = missingMarketIndexes.map((index) => deriveDriftSpotMarket(index)[0]);\n\n  const missingMarketsAccounts = missingMarketKeys.length\n    ? await connection.getMultipleAccountsInfo(missingMarketKeys)\n    : [];\n\n  // Use a Map internally to deduplicate by marketIndex\n  const allMarketsMap: Map<number, DriftSpotMarketRaw> = new Map([\n    // Include all existing spot markets\n    ...spotMarkets.map((market) => [market.marketIndex, market] as [number, DriftSpotMarketRaw]),\n    // Add newly fetched missing markets\n    ...missingMarketsAccounts\n      .map((account, idx) => {\n        const marketIndex = missingMarketIndexes[idx];\n\n        if (!marketIndex) {\n          console.error(\"Missing market index, for \", marketIndex);\n          return null;\n        }\n\n        if (!account) {\n          console.error(\"Missing market account, for \", missingMarketKeys[idx]?.toBase58());\n          return null;\n        } else {\n          const decodedMarket = decodeDriftSpotMarketData(account.data);\n          return [marketIndex, decodedMarket];\n        }\n      })\n      .filter((market): market is [number, DriftSpotMarketRaw] => market !== null),\n  ]);\n\n  return Array.from(allMarketsMap.values());\n}\n","import { AccountMeta, PublicKey, TransactionInstruction } from \"@solana/web3.js\";\n\nimport { DRIFT_PROGRAM_ID } from \"./constants\";\n\n/**\n * Update Drift spot market cumulative interest\n * This instruction should be called periodically to update the cumulative interest\n * for a spot market based on current utilization and interest rates.\n */\nconst UPDATE_SPOT_MARKET_CUMULATIVE_INTEREST_DISCRIMINATOR = Buffer.from([\n  39, 166, 139, 243, 158, 165, 155, 225,\n]);\n\nexport const makeUpdateSpotMarketCumulativeInterestIx = (\n  state: PublicKey,\n  spotMarket: PublicKey,\n  oracle: PublicKey,\n  spotMarketVault: PublicKey\n): TransactionInstruction => {\n  const keys: AccountMeta[] = [\n    // state: read-only, not a signer\n    { pubkey: state, isSigner: false, isWritable: false },\n\n    // spotMarket: writable, not a signer (being updated)\n    { pubkey: spotMarket, isSigner: false, isWritable: true },\n\n    // oracle: read-only, not a signer\n    { pubkey: oracle, isSigner: false, isWritable: false },\n\n    // spotMarketVault: read-only, not a signer\n    { pubkey: spotMarketVault, isSigner: false, isWritable: false },\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: DRIFT_PROGRAM_ID,\n    data: UPDATE_SPOT_MARKET_CUMULATIVE_INTEREST_DISCRIMINATOR,\n  });\n};\n\nconst driftInstructions = {\n  makeUpdateSpotMarketCumulativeInterestIx,\n};\n\nexport default driftInstructions;\n","import driftInstructions from \"../instructions\";\nimport { DriftSpotMarket } from \"../types\";\nimport { deriveDriftSpotMarketVault, deriveDriftState } from \"../utils\";\n\ntype MakeUpdateSpotMarketIxParams = {\n  spotMarket: DriftSpotMarket;\n};\n\nexport function makeUpdateSpotMarketIx({ spotMarket }: MakeUpdateSpotMarketIxParams) {\n  const spotMarketKey = spotMarket.pubkey;\n  const spotMarketOracle = spotMarket.oracle;\n  const driftState = deriveDriftState()[0];\n  const spotMarketVault = deriveDriftSpotMarketVault(spotMarket.marketIndex)[0];\n\n  return driftInstructions.makeUpdateSpotMarketCumulativeInterestIx(\n    driftState,\n    spotMarketKey,\n    spotMarketOracle,\n    spotMarketVault\n  );\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nexport const JUP_LEND_PROGRAM_ID = new PublicKey(\"jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9\");\n\nexport const JUP_LIQUIDITY_PROGRAM_ID = new PublicKey(\n  \"jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC\"\n);\n\nexport const JUP_REWARDS_PROGRAM_ID = new PublicKey(\"jup7TthsMgcR9Y3L277b8Eo9uboVSmu1utkuXHNUKar\");\n","{\n  \"address\": \"jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC\",\n  \"metadata\": {\n    \"name\": \"liquidity\",\n    \"version\": \"0.1.5\",\n    \"spec\": \"0.1.0\",\n    \"description\": \"Created with Anchor\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"change_status\",\n      \"discriminator\": [236, 145, 131, 228, 227, 17, 192, 255],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"status\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"claim\",\n      \"discriminator\": [62, 198, 214, 193, 213, 159, 108, 210],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"signer\": true,\n          \"relations\": [\"claim_account\"]\n        },\n        {\n          \"name\": \"liquidity\"\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"token_reserve\", \"claim_account\"]\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true,\n          \"relations\": [\"token_reserve\"]\n        },\n        {\n          \"name\": \"claim_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"recipient\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"close_claim_account\",\n      \"discriminator\": [241, 146, 203, 216, 58, 222, 91, 118],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"writable\": true,\n          \"signer\": true,\n          \"relations\": [\"claim_account\"]\n        },\n        {\n          \"name\": \"claim_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"_mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"collect_revenue\",\n      \"discriminator\": [87, 96, 211, 36, 240, 43, 246, 87],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidity\"\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"token_reserve\"]\n        },\n        {\n          \"name\": \"revenue_collector_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"revenue_collector\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"revenue_collector\"\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"liquidity\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          },\n          \"relations\": [\"token_reserve\"]\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"init_claim_account\",\n      \"discriminator\": [112, 141, 47, 170, 42, 99, 144, 145],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"claim_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [117, 115, 101, 114, 95, 99, 108, 97, 105, 109]\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"mint\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mint\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"user\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"init_liquidity\",\n      \"discriminator\": [95, 189, 216, 183, 188, 62, 244, 108],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [108, 105, 113, 117, 105, 100, 105, 116, 121]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"auth_list\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [97, 117, 116, 104, 95, 108, 105, 115, 116]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"authority\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"revenue_collector\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"init_new_protocol\",\n      \"discriminator\": [193, 147, 5, 32, 138, 135, 213, 158],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"user_supply_position\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  117, 115, 101, 114, 95, 115, 117, 112, 112, 108, 121, 95, 112,\n                  111, 115, 105, 116, 105, 111, 110\n                ]\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"supply_mint\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"protocol\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"user_borrow_position\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  117, 115, 101, 114, 95, 98, 111, 114, 114, 111, 119, 95, 112,\n                  111, 115, 105, 116, 105, 111, 110\n                ]\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"borrow_mint\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"protocol\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"supply_mint\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"borrow_mint\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"protocol\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"init_token_reserve\",\n      \"discriminator\": [228, 235, 65, 129, 159, 15, 6, 84],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidity\"\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"mint\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"liquidity\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"rate_model\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [114, 97, 116, 101, 95, 109, 111, 100, 101, 108]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [114, 101, 115, 101, 114, 118, 101]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"operate\",\n      \"discriminator\": [217, 106, 208, 99, 116, 151, 42, 135],\n      \"accounts\": [\n        {\n          \"name\": \"protocol\",\n          \"signer\": true,\n          \"relations\": [\"user_supply_position\", \"user_borrow_position\"]\n        },\n        {\n          \"name\": \"liquidity\"\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\n            \"token_reserve\",\n            \"rate_model\",\n            \"borrow_claim_account\",\n            \"withdraw_claim_account\"\n          ]\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true,\n          \"relations\": [\"token_reserve\"]\n        },\n        {\n          \"name\": \"user_supply_position\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"user_borrow_position\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"withdraw_to_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"borrow_to_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"borrow_claim_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"withdraw_claim_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"supply_amount\",\n          \"type\": \"i128\"\n        },\n        {\n          \"name\": \"borrow_amount\",\n          \"type\": \"i128\"\n        },\n        {\n          \"name\": \"withdraw_to\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"borrow_to\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"transfer_type\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"TransferType\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"pause_token\",\n      \"discriminator\": [226, 150, 72, 211, 159, 51, 226, 39],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"_mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"pause_user\",\n      \"discriminator\": [18, 63, 43, 94, 239, 53, 101, 14],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"user_supply_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_borrow_position\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"protocol\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"supply_mint\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"borrow_mint\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"supply_status\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        },\n        {\n          \"name\": \"borrow_status\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"pre_operate\",\n      \"discriminator\": [129, 205, 158, 155, 198, 155, 72, 133],\n      \"accounts\": [\n        {\n          \"name\": \"protocol\",\n          \"signer\": true,\n          \"relations\": [\"user_supply_position\", \"user_borrow_position\"]\n        },\n        {\n          \"name\": \"liquidity\"\n        },\n        {\n          \"name\": \"user_supply_position\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"user_borrow_position\",\n          \"optional\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"relations\": [\"token_reserve\"]\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"unpause_token\",\n      \"discriminator\": [108, 117, 62, 30, 200, 92, 255, 202],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"_mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"unpause_user\",\n      \"discriminator\": [71, 115, 128, 252, 182, 126, 234, 62],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"user_supply_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_borrow_position\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"protocol\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"supply_mint\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"borrow_mint\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"supply_status\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        },\n        {\n          \"name\": \"borrow_status\",\n          \"type\": {\n            \"option\": \"u8\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_authority\",\n      \"discriminator\": [32, 46, 64, 28, 149, 75, 243, 88],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"auth_list\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_authority\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_auths\",\n      \"discriminator\": [93, 96, 178, 156, 57, 117, 253, 209],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidity\"\n        },\n        {\n          \"name\": \"auth_list\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"auth_status\",\n          \"type\": {\n            \"vec\": {\n              \"defined\": {\n                \"name\": \"AddressBool\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_exchange_price\",\n      \"discriminator\": [239, 244, 10, 248, 116, 25, 53, 150],\n      \"accounts\": [\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"_mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_guardians\",\n      \"discriminator\": [43, 62, 250, 138, 141, 117, 132, 97],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidity\"\n        },\n        {\n          \"name\": \"auth_list\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"guardian_status\",\n          \"type\": {\n            \"vec\": {\n              \"defined\": {\n                \"name\": \"AddressBool\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_rate_data_v1\",\n      \"discriminator\": [6, 20, 34, 122, 22, 150, 180, 22],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"rate_model\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"rate_model\", \"token_reserve\"]\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"rate_data\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"RateDataV1Params\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_rate_data_v2\",\n      \"discriminator\": [116, 73, 53, 146, 216, 45, 228, 124],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"rate_model\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"rate_model\", \"token_reserve\"]\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"rate_data\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"RateDataV2Params\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_revenue_collector\",\n      \"discriminator\": [167, 142, 124, 240, 220, 113, 141, 59],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"revenue_collector\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_token_config\",\n      \"discriminator\": [231, 122, 181, 79, 255, 79, 144, 167],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"rate_model\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"rate_model\", \"token_reserve\"]\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"token_config\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"TokenConfig\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_borrow_config\",\n      \"discriminator\": [100, 176, 201, 174, 247, 2, 54, 168],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"protocol\",\n          \"relations\": [\"user_borrow_position\"]\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"rate_model\", \"token_reserve\", \"user_borrow_position\"]\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_borrow_position\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"user_borrow_config\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"UserBorrowConfig\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_class\",\n      \"discriminator\": [12, 206, 68, 135, 63, 212, 48, 119],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"user_class\",\n          \"type\": {\n            \"vec\": {\n              \"defined\": {\n                \"name\": \"AddressU8\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_supply_config\",\n      \"discriminator\": [217, 239, 225, 218, 33, 49, 234, 183],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"protocol\",\n          \"relations\": [\"user_supply_position\"]\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"rate_model\", \"token_reserve\", \"user_supply_position\"]\n        },\n        {\n          \"name\": \"token_reserve\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_supply_position\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"user_supply_config\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"UserSupplyConfig\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_user_withdrawal_limit\",\n      \"discriminator\": [162, 9, 186, 9, 213, 30, 173, 78],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"auth_list\"\n        },\n        {\n          \"name\": \"user_supply_position\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_limit\",\n          \"type\": \"u128\"\n        },\n        {\n          \"name\": \"protocol\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"AuthorizationList\",\n      \"discriminator\": [19, 157, 117, 43, 236, 167, 251, 69]\n    },\n    {\n      \"name\": \"Liquidity\",\n      \"discriminator\": [54, 252, 249, 226, 137, 172, 121, 58]\n    },\n    {\n      \"name\": \"RateModel\",\n      \"discriminator\": [94, 3, 203, 219, 107, 137, 4, 162]\n    },\n    {\n      \"name\": \"TokenReserve\",\n      \"discriminator\": [21, 18, 59, 135, 120, 20, 31, 12]\n    },\n    {\n      \"name\": \"UserBorrowPosition\",\n      \"discriminator\": [73, 126, 65, 123, 220, 126, 197, 24]\n    },\n    {\n      \"name\": \"UserClaim\",\n      \"discriminator\": [228, 142, 195, 181, 228, 147, 32, 209]\n    },\n    {\n      \"name\": \"UserSupplyPosition\",\n      \"discriminator\": [202, 219, 136, 118, 61, 177, 21, 146]\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"LogBorrowRateCap\",\n      \"discriminator\": [156, 131, 232, 94, 254, 156, 14, 117]\n    },\n    {\n      \"name\": \"LogChangeStatus\",\n      \"discriminator\": [89, 77, 37, 172, 141, 31, 74, 42]\n    },\n    {\n      \"name\": \"LogClaim\",\n      \"discriminator\": [238, 50, 157, 85, 151, 58, 231, 45]\n    },\n    {\n      \"name\": \"LogCollectRevenue\",\n      \"discriminator\": [64, 198, 22, 194, 123, 87, 166, 82]\n    },\n    {\n      \"name\": \"LogOperate\",\n      \"discriminator\": [180, 8, 81, 71, 19, 132, 173, 8]\n    },\n    {\n      \"name\": \"LogPauseUser\",\n      \"discriminator\": [100, 17, 114, 224, 180, 30, 52, 170]\n    },\n    {\n      \"name\": \"LogTokenLockdown\",\n      \"discriminator\": [2, 103, 171, 11, 0, 27, 20, 40]\n    },\n    {\n      \"name\": \"LogUnpauseUser\",\n      \"discriminator\": [170, 91, 132, 96, 179, 77, 168, 26]\n    },\n    {\n      \"name\": \"LogUpdateAuthority\",\n      \"discriminator\": [150, 152, 157, 143, 6, 135, 193, 101]\n    },\n    {\n      \"name\": \"LogUpdateAuths\",\n      \"discriminator\": [88, 80, 109, 48, 111, 203, 76, 251]\n    },\n    {\n      \"name\": \"LogUpdateExchangePrices\",\n      \"discriminator\": [190, 194, 69, 204, 30, 86, 181, 163]\n    },\n    {\n      \"name\": \"LogUpdateGuardians\",\n      \"discriminator\": [231, 28, 191, 51, 53, 140, 79, 142]\n    },\n    {\n      \"name\": \"LogUpdateRateDataV1\",\n      \"discriminator\": [30, 102, 131, 192, 0, 30, 85, 223]\n    },\n    {\n      \"name\": \"LogUpdateRateDataV2\",\n      \"discriminator\": [206, 53, 195, 70, 113, 211, 92, 129]\n    },\n    {\n      \"name\": \"LogUpdateRevenueCollector\",\n      \"discriminator\": [44, 143, 80, 250, 211, 147, 180, 159]\n    },\n    {\n      \"name\": \"LogUpdateTokenConfigs\",\n      \"discriminator\": [24, 205, 191, 130, 47, 40, 233, 218]\n    },\n    {\n      \"name\": \"LogUpdateUserBorrowConfigs\",\n      \"discriminator\": [210, 251, 242, 159, 205, 33, 154, 74]\n    },\n    {\n      \"name\": \"LogUpdateUserClass\",\n      \"discriminator\": [185, 193, 106, 248, 11, 53, 0, 136]\n    },\n    {\n      \"name\": \"LogUpdateUserSupplyConfigs\",\n      \"discriminator\": [142, 160, 21, 90, 87, 88, 18, 51]\n    },\n    {\n      \"name\": \"LogUpdateUserWithdrawalLimit\",\n      \"discriminator\": [114, 131, 152, 189, 120, 253, 88, 105]\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"UserClassNotPausable\",\n      \"msg\": \"ADMIN_MODULE_USER_CLASS_NOT_PAUSABLE\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"UserClassNotFound\",\n      \"msg\": \"ADMIN_MODULE_USER_CLASS_NOT_FOUND\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"UserAlreadyPaused\",\n      \"msg\": \"ADMIN_MODULE_USER_ALREADY_PAUSED\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"UserAlreadyUnpaused\",\n      \"msg\": \"ADMIN_MODULE_USER_ALREADY_UNPAUSED\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"OnlyLiquidityAuthority\",\n      \"msg\": \"ADMIN_MODULE_ONLY_LIQUIDITY_AUTHORITY\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"OnlyAuth\",\n      \"msg\": \"ADMIN_MODULE_ONLY_AUTH\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"OnlyGuardians\",\n      \"msg\": \"ADMIN_MODULE_ONLY_GUARDIANS\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"InvalidParams\",\n      \"msg\": \"ADMIN_MODULE_INVALID_PARAMS\"\n    },\n    {\n      \"code\": 6008,\n      \"name\": \"InvalidConfigOrder\",\n      \"msg\": \"ADMIN_MODULE_INVALID_CONFIG_ORDER\"\n    },\n    {\n      \"code\": 6009,\n      \"name\": \"StatusAlreadySet\",\n      \"msg\": \"ADMIN_MODULE_STATUS_ALREADY_SET\"\n    },\n    {\n      \"code\": 6010,\n      \"name\": \"LimitsCannotBeZero\",\n      \"msg\": \"ADMIN_MODULE_LIMITS_CAN_NOT_BE_ZERO\"\n    },\n    {\n      \"code\": 6011,\n      \"name\": \"MaxAuthCountReached\",\n      \"msg\": \"ADMIN_MODULE_MAX_AUTH_COUNT\"\n    },\n    {\n      \"code\": 6012,\n      \"name\": \"MaxUserClassesReached\",\n      \"msg\": \"ADMIN_MODULE_MAX_USER_CLASSES\"\n    },\n    {\n      \"code\": 6013,\n      \"name\": \"InsufficientBalance\",\n      \"msg\": \"USER_MODULE_INSUFFICIENT_BALANCE\"\n    },\n    {\n      \"code\": 6014,\n      \"name\": \"UserSupplyPositionRequired\",\n      \"msg\": \"USER_MODULE_USER_SUPPLY_POSITION_REQUIRED\"\n    },\n    {\n      \"code\": 6015,\n      \"name\": \"UserBorrowPositionRequired\",\n      \"msg\": \"USER_MODULE_USER_BORROW_POSITION_REQUIRED\"\n    },\n    {\n      \"code\": 6016,\n      \"name\": \"ClaimAccountRequired\",\n      \"msg\": \"USER_MODULE_CLAIM_ACCOUNT_REQUIRED\"\n    },\n    {\n      \"code\": 6017,\n      \"name\": \"WithdrawToAccountRequired\",\n      \"msg\": \"USER_MODULE_WITHDRAW_TO_ACCOUNT_REQUIRED\"\n    },\n    {\n      \"code\": 6018,\n      \"name\": \"BorrowToAccountRequired\",\n      \"msg\": \"USER_MODULE_BORROW_TO_ACCOUNT_REQUIRED\"\n    },\n    {\n      \"code\": 6019,\n      \"name\": \"InvalidClaimAmount\",\n      \"msg\": \"USER_MODULE_INVALID_CLAIM_AMOUNT\"\n    },\n    {\n      \"code\": 6020,\n      \"name\": \"NoAmountToClaim\",\n      \"msg\": \"USER_MODULE_NO_AMOUNT_TO_CLAIM\"\n    },\n    {\n      \"code\": 6021,\n      \"name\": \"AmountNotZero\",\n      \"msg\": \"USER_MODULE_AMOUNT_NOT_ZERO\"\n    },\n    {\n      \"code\": 6022,\n      \"name\": \"ValueOverflow\",\n      \"msg\": \"USER_MODULE_VALUE_OVERFLOW\"\n    },\n    {\n      \"code\": 6023,\n      \"name\": \"InvalidTransferType\",\n      \"msg\": \"USER_MODULE_INVALID_TRANSFER_TYPE\"\n    },\n    {\n      \"code\": 6024,\n      \"name\": \"MintMismatch\",\n      \"msg\": \"USER_MODULE_MINT_MISMATCH\"\n    },\n    {\n      \"code\": 6025,\n      \"name\": \"UserNotDefined\",\n      \"msg\": \"USER_MODULE_USER_NOT_DEFINED\"\n    },\n    {\n      \"code\": 6026,\n      \"name\": \"InvalidUserClaim\",\n      \"msg\": \"USER_MODULE_INVALID_USER_CLAIM\"\n    },\n    {\n      \"code\": 6027,\n      \"name\": \"UserPaused\",\n      \"msg\": \"USER_MODULE_USER_PAUSED\"\n    },\n    {\n      \"code\": 6028,\n      \"name\": \"WithdrawalLimitReached\",\n      \"msg\": \"USER_MODULE_WITHDRAWAL_LIMIT_REACHED\"\n    },\n    {\n      \"code\": 6029,\n      \"name\": \"BorrowLimitReached\",\n      \"msg\": \"USER_MODULE_BORROW_LIMIT_REACHED\"\n    },\n    {\n      \"code\": 6030,\n      \"name\": \"OperateAmountsNearlyZero\",\n      \"msg\": \"USER_MODULE_OPERATE_AMOUNTS_ZERO\"\n    },\n    {\n      \"code\": 6031,\n      \"name\": \"OperateAmountTooBig\",\n      \"msg\": \"USER_MODULE_OPERATE_AMOUNTS_TOO_BIG\"\n    },\n    {\n      \"code\": 6032,\n      \"name\": \"OperateAmountsInsufficient\",\n      \"msg\": \"USER_MODULE_OPERATE_AMOUNTS_INSUFFICIENT\"\n    },\n    {\n      \"code\": 6033,\n      \"name\": \"TransferAmountOutOfBounds\",\n      \"msg\": \"USER_MODULE_TRANSFER_AMOUNT_OUT_OF_BOUNDS\"\n    },\n    {\n      \"code\": 6034,\n      \"name\": \"ForbiddenOperateCall\",\n      \"msg\": \"FORBIDDEN_OPERATE_CALL\"\n    },\n    {\n      \"code\": 6035,\n      \"name\": \"MaxUtilizationReached\",\n      \"msg\": \"USER_MODULE_MAX_UTILIZATION_REACHED\"\n    },\n    {\n      \"code\": 6036,\n      \"name\": \"ValueOverflowTotalSupply\",\n      \"msg\": \"USER_MODULE_VALUE_OVERFLOW_TOTAL_SUPPLY\"\n    },\n    {\n      \"code\": 6037,\n      \"name\": \"ValueOverflowTotalBorrow\",\n      \"msg\": \"USER_MODULE_VALUE_OVERFLOW_TOTAL_BORROW\"\n    },\n    {\n      \"code\": 6038,\n      \"name\": \"DepositExpected\",\n      \"msg\": \"USER_MODULE_DEPOSIT_EXPECTED\"\n    },\n    {\n      \"code\": 6039,\n      \"name\": \"ExchangePriceZero\",\n      \"msg\": \"LIQUIDITY_CALCS_EXCHANGE_PRICE_ZERO\"\n    },\n    {\n      \"code\": 6040,\n      \"name\": \"UnsupportedRateVersion\",\n      \"msg\": \"LIQUIDITY_CALCS_UNSUPPORTED_RATE_VERSION\"\n    },\n    {\n      \"code\": 6041,\n      \"name\": \"BorrowRateNegative\",\n      \"msg\": \"LIQUIDITY_CALCS_BORROW_RATE_NEGATIVE\"\n    },\n    {\n      \"code\": 6042,\n      \"name\": \"ProtocolLockdown\",\n      \"msg\": \"PROTOCOL_LOCKDOWN\"\n    },\n    {\n      \"code\": 6043,\n      \"name\": \"TokenLockDown\",\n      \"msg\": \"TOKEN_LOCKED_DOWN\"\n    },\n    {\n      \"code\": 6044,\n      \"name\": \"TokenAlreadyLocked\",\n      \"msg\": \"TOKEN_ALREADY_LOCKED\"\n    },\n    {\n      \"code\": 6045,\n      \"name\": \"TokenAlreadyUnlocked\",\n      \"msg\": \"TOKEN_ALREADY_UNLOCKED\"\n    },\n    {\n      \"code\": 6046,\n      \"name\": \"OperateSkipTransferInvalid\",\n      \"msg\": \"USER_MODULE_OPERATE_SKIP_TRANSFER_INVALID\"\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"AddressBool\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"addr\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"value\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AddressU8\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"addr\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"value\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AuthorizationList\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"auth_users\",\n            \"type\": {\n              \"vec\": \"pubkey\"\n            }\n          },\n          {\n            \"name\": \"guardians\",\n            \"type\": {\n              \"vec\": \"pubkey\"\n            }\n          },\n          {\n            \"name\": \"user_classes\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"UserClass\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Liquidity\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"revenue_collector\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogBorrowRateCap\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogChangeStatus\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"new_status\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogClaim\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"recipient\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogCollectRevenue\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"revenue_amount\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogOperate\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"supply_amount\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"borrow_amount\",\n            \"type\": \"i128\"\n          },\n          {\n            \"name\": \"withdraw_to\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"borrow_to\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"supply_exchange_price\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrow_exchange_price\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogPauseUser\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogTokenLockdown\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"suspend\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUnpauseUser\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateAuthority\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"new_authority\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateAuths\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"auth_status\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"AddressBool\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateExchangePrices\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"supply_exchange_price\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrow_exchange_price\",\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"borrow_rate\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"utilization\",\n            \"type\": \"u16\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateGuardians\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"guardian_status\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"AddressBool\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateRateDataV1\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"rate_data\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"RateDataV1Params\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateRateDataV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"rate_data\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"RateDataV2Params\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateRevenueCollector\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"revenue_collector\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateTokenConfigs\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token_config\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"TokenConfig\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateUserBorrowConfigs\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_borrow_config\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"UserBorrowConfig\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateUserClass\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_class\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"AddressU8\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateUserSupplyConfigs\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_supply_config\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"UserSupplyConfig\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateUserWithdrawalLimit\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"new_limit\",\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"RateDataV1Params\",\n      \"docs\": [\"@notice struct to set borrow rate data for version 1\"],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"kink\",\n            \"docs\": [\n              \"\",\n              \"@param kink in borrow rate. in 1e2: 100% = 10_000; 1% = 100\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"rate_at_utilization_zero\",\n            \"docs\": [\n              \"\",\n              \"@param rateAtUtilizationZero desired borrow rate when utilization is zero. in 1e2: 100% = 10_000; 1% = 100\",\n              \"i.e. constant minimum borrow rate\",\n              \"e.g. at utilization = 0.01% rate could still be at least 4% (rateAtUtilizationZero would be 400 then)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"rate_at_utilization_kink\",\n            \"docs\": [\n              \"\",\n              \"@param rateAtUtilizationKink borrow rate when utilization is at kink. in 1e2: 100% = 10_000; 1% = 100\",\n              \"e.g. when rate should be 7% at kink then rateAtUtilizationKink would be 700\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"rate_at_utilization_max\",\n            \"docs\": [\n              \"\",\n              \"@param rateAtUtilizationMax borrow rate when utilization is maximum at 100%. in 1e2: 100% = 10_000; 1% = 100\",\n              \"e.g. when rate should be 125% at 100% then rateAtUtilizationMax would be 12_500\"\n            ],\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"RateDataV2Params\",\n      \"docs\": [\"@notice struct to set borrow rate data for version 2\"],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"kink1\",\n            \"docs\": [\n              \"\",\n              \"@param kink1 first kink in borrow rate. in 1e2: 100% = 10_000; 1% = 100\",\n              \"utilization below kink 1 usually means slow increase in rate, once utilization is above kink 1 borrow rate increases faster\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"kink2\",\n            \"docs\": [\n              \"\",\n              \"@param kink2 second kink in borrow rate. in 1e2: 100% = 10_000; 1% = 100\",\n              \"utilization below kink 2 usually means slow / medium increase in rate, once utilization is above kink 2 borrow rate increases fast\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"rate_at_utilization_zero\",\n            \"docs\": [\n              \"\",\n              \"@param rateAtUtilizationZero desired borrow rate when utilization is zero. in 1e2: 100% = 10_000; 1% = 100\",\n              \"i.e. constant minimum borrow rate\",\n              \"e.g. at utilization = 0.01% rate could still be at least 4% (rateAtUtilizationZero would be 400 then)\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"rate_at_utilization_kink1\",\n            \"docs\": [\n              \"\",\n              \"@param rateAtUtilizationKink1 desired borrow rate when utilization is at first kink. in 1e2: 100% = 10_000; 1% = 100\",\n              \"e.g. when rate should be 7% at first kink then rateAtUtilizationKink would be 700\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"rate_at_utilization_kink2\",\n            \"docs\": [\n              \"\",\n              \"@param rateAtUtilizationKink2 desired borrow rate when utilization is at second kink. in 1e2: 100% = 10_000; 1% = 100\",\n              \"e.g. when rate should be 7% at second kink then rateAtUtilizationKink would be 1_200\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"rate_at_utilization_max\",\n            \"docs\": [\n              \"\",\n              \"@param rateAtUtilizationMax desired borrow rate when utilization is maximum at 100%. in 1e2: 100% = 10_000; 1% = 100\",\n              \"e.g. when rate should be 125% at 100% then rateAtUtilizationMax would be 12_500\"\n            ],\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"RateModel\",\n      \"docs\": [\"Interest rate model data\"],\n      \"serialization\": \"bytemuck\",\n      \"repr\": {\n        \"kind\": \"c\",\n        \"packed\": true\n      },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"version\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"rate_at_zero\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"kink1_utilization\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"rate_at_kink1\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"rate_at_max\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"kink2_utilization\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"rate_at_kink2\",\n            \"type\": \"u16\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TokenConfig\",\n      \"docs\": [\"@notice struct to set token config\"],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token\",\n            \"docs\": [\"\", \"@param token address\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fee\",\n            \"docs\": [\n              \"\",\n              \"@param fee charges on borrower's interest. in 1e2: 100% = 10_000; 1% = 100\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"max_utilization\",\n            \"docs\": [\n              \"\",\n              \"@param maxUtilization maximum allowed utilization. in 1e2: 100% = 10_000; 1% = 100\",\n              \"set to 100% to disable and have default limit of 100% (avoiding SLOAD).\"\n            ],\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TokenReserve\",\n      \"docs\": [\"Token configuration and exchange prices\"],\n      \"serialization\": \"bytemuck\",\n      \"repr\": {\n        \"kind\": \"c\",\n        \"packed\": true\n      },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"borrow_rate\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"fee_on_interest\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"last_utilization\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"last_update_timestamp\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"supply_exchange_price\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrow_exchange_price\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_utilization\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"total_supply_with_interest\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_supply_interest_free\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_borrow_with_interest\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_borrow_interest_free\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_claim_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"interacting_protocol\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"interacting_timestamp\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"interacting_balance\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TransferType\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"SKIP\"\n          },\n          {\n            \"name\": \"DIRECT\"\n          },\n          {\n            \"name\": \"CLAIM\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserBorrowConfig\",\n      \"docs\": [\"@notice struct to set user borrow & payback config\"],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mode\",\n            \"docs\": [\n              \"\",\n              \"@param mode: 0 = without interest. 1 = with interest\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"expand_percent\",\n            \"docs\": [\n              \"\",\n              \"@param expandPercent debt limit expand percent. in 1e2: 100% = 10_000; 1% = 100\",\n              \"Also used to calculate rate at which debt limit should decrease (instant).\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"expand_duration\",\n            \"docs\": [\n              \"\",\n              \"@param expandDuration debt limit expand duration in seconds.\",\n              \"used to calculate rate together with expandPercent\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"base_debt_ceiling\",\n            \"docs\": [\n              \"\",\n              \"@param baseDebtCeiling base borrow limit. until here, borrow limit remains as baseDebtCeiling\",\n              \"(user can borrow until this point at once without stepped expansion). Above this, automated limit comes in place.\",\n              \"amount in raw (to be multiplied with exchange price) or normal depends on configured mode in user config for the token:\",\n              \"with interest -> raw, without interest -> normal\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"max_debt_ceiling\",\n            \"docs\": [\n              \"\",\n              \"@param maxDebtCeiling max borrow ceiling, maximum amount the user can borrow.\",\n              \"amount in raw (to be multiplied with exchange price) or normal depends on configured mode in user config for the token:\",\n              \"with interest -> raw, without interest -> normal\"\n            ],\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserBorrowPosition\",\n      \"docs\": [\"User borrow position\"],\n      \"serialization\": \"bytemuck\",\n      \"repr\": {\n        \"kind\": \"c\",\n        \"packed\": true\n      },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"protocol\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"with_interest\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"debt_ceiling\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_update\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"expand_pct\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"expand_duration\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"base_debt_ceiling\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_debt_ceiling\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserClaim\",\n      \"serialization\": \"bytemuck\",\n      \"repr\": {\n        \"kind\": \"c\",\n        \"packed\": true\n      },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserClass\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"addr\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"class\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserSupplyConfig\",\n      \"docs\": [\"@notice struct to set user supply & withdrawal config\"],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mode\",\n            \"docs\": [\n              \"\",\n              \"@param mode: 0 = without interest. 1 = with interest\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"expand_percent\",\n            \"docs\": [\n              \"\",\n              \"@param expandPercent withdrawal limit expand percent. in 1e2: 100% = 10_000; 1% = 100\",\n              \"Also used to calculate rate at which withdrawal limit should decrease (instant).\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"expand_duration\",\n            \"docs\": [\n              \"\",\n              \"@param expandDuration withdrawal limit expand duration in seconds.\",\n              \"used to calculate rate together with expandPercent\"\n            ],\n            \"type\": \"u128\"\n          },\n          {\n            \"name\": \"base_withdrawal_limit\",\n            \"docs\": [\n              \"\",\n              \"@param baseWithdrawalLimit base limit, below this, user can withdraw the entire amount.\",\n              \"amount in raw (to be multiplied with exchange price) or normal depends on configured mode in user config for the token:\",\n              \"with interest -> raw, without interest -> normal\"\n            ],\n            \"type\": \"u128\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserSupplyPosition\",\n      \"docs\": [\"User supply position\"],\n      \"serialization\": \"bytemuck\",\n      \"repr\": {\n        \"kind\": \"c\",\n        \"packed\": true\n      },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"protocol\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"with_interest\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"withdrawal_limit\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"decay_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_update\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"expand_pct\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"expand_duration\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"decay_duration\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"base_withdrawal_limit\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    }\n  ]\n}\n","{\n  \"address\": \"jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9\",\n  \"metadata\": {\n    \"name\": \"lending\",\n    \"version\": \"0.1.4\",\n    \"spec\": \"0.1.0\",\n    \"description\": \"Created with Anchor\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"deposit\",\n      \"discriminator\": [242, 35, 198, 137, 82, 225, 242, 182],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"depositor_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"optional\": true,\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"assets\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": \"u64\"\n    },\n    {\n      \"name\": \"deposit_with_min_amount_out\",\n      \"discriminator\": [116, 144, 16, 97, 118, 109, 40, 119],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"depositor_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"optional\": true,\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"assets\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_amount_out\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"init_lending\",\n      \"discriminator\": [156, 224, 67, 46, 89, 189, 157, 209],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_admin\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"token_reserves_liquidity\"]\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  102, 95, 116, 111, 107, 101, 110, 95, 109, 105, 110, 116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"metadata_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [109, 101, 116, 97, 100, 97, 116, 97]\n              },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  11, 112, 101, 177, 227, 209, 124, 69, 56, 157, 82, 127, 107,\n                  4, 195, 205, 88, 184, 108, 115, 26, 160, 253, 181, 73, 182,\n                  209, 188, 3, 248, 41, 70\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"f_token_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                11, 112, 101, 177, 227, 209, 124, 69, 56, 157, 82, 127, 107, 4,\n                195, 205, 88, 184, 108, 115, 26, 160, 253, 181, 73, 182, 209,\n                188, 3, 248, 41, 70\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [108, 101, 110, 100, 105, 110, 103]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"f_token_mint\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"token_reserves_liquidity\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"sysvar_instruction\",\n          \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n        },\n        {\n          \"name\": \"metadata_program\",\n          \"address\": \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n        },\n        {\n          \"name\": \"rent\",\n          \"address\": \"SysvarRent111111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"symbol\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"init_lending_admin\",\n      \"discriminator\": [203, 185, 241, 165, 56, 254, 33, 9],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_admin\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  108, 101, 110, 100, 105, 110, 103, 95, 97, 100, 109, 105, 110\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"liquidity_program\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"rebalancer\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"authority\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"mint\",\n      \"discriminator\": [51, 57, 225, 47, 182, 146, 137, 166],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"depositor_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"optional\": true,\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"shares\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": \"u64\"\n    },\n    {\n      \"name\": \"mint_with_max_assets\",\n      \"discriminator\": [6, 94, 69, 122, 30, 179, 146, 171],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"depositor_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"optional\": true,\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"shares\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"max_assets\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": \"u64\"\n    },\n    {\n      \"name\": \"rebalance\",\n      \"discriminator\": [108, 158, 77, 9, 210, 52, 88, 62],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"depositor_token_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"signer\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"rebalance_with_amounts\",\n      \"discriminator\": [190, 33, 144, 182, 86, 4, 141, 73],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"depositor_token_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"signer\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140, 151, 37, 143, 78, 36, 137, 241, 187, 61, 16, 41, 20, 142,\n                13, 131, 11, 90, 19, 153, 218, 255, 16, 132, 4, 142, 123, 216,\n                219, 233, 248, 89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": {\n            \"option\": \"u64\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"redeem\",\n      \"discriminator\": [184, 12, 86, 149, 70, 196, 97, 225],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"owner_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"claim_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"optional\": true,\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"shares\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": \"u64\"\n    },\n    {\n      \"name\": \"redeem_with_min_amount_out\",\n      \"discriminator\": [235, 189, 237, 56, 166, 180, 184, 149],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"owner_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"claim_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"optional\": true,\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"shares\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_amount_out\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"set_rewards_rate_model\",\n      \"discriminator\": [174, 231, 116, 203, 8, 58, 143, 203],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"new_rewards_rate_model\"\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"mint\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_authority\",\n      \"discriminator\": [32, 46, 64, 28, 149, 75, 243, 88],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_admin\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_authority\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_auths\",\n      \"discriminator\": [93, 96, 178, 156, 57, 117, 253, 209],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_admin\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"auth_status\",\n          \"type\": {\n            \"vec\": {\n              \"defined\": {\n                \"name\": \"AddressBool\"\n              }\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"update_rate\",\n      \"discriminator\": [24, 225, 53, 189, 72, 212, 225, 178],\n      \"accounts\": [\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"supply_token_reserves_liquidity\"]\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\"\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_rebalancer\",\n      \"discriminator\": [206, 187, 54, 228, 145, 8, 203, 111],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"lending_admin\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_rebalancer\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw\",\n      \"discriminator\": [183, 18, 70, 156, 148, 109, 161, 34],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"owner_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"claim_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"optional\": true,\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": \"u64\"\n    },\n    {\n      \"name\": \"withdraw_with_max_shares_burn\",\n      \"discriminator\": [47, 197, 183, 171, 239, 18, 245, 171],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"owner_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"recipient_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_admin\"\n        },\n        {\n          \"name\": \"lending\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\",\n          \"relations\": [\"lending\", \"rewards_rate_model\"]\n        },\n        {\n          \"name\": \"f_token_mint\",\n          \"writable\": true,\n          \"relations\": [\"lending\"]\n        },\n        {\n          \"name\": \"supply_token_reserves_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lending_supply_position_on_liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"rate_model\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"claim_account\",\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"liquidity\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"liquidity_program\",\n          \"relations\": [\"lending_admin\"]\n        },\n        {\n          \"name\": \"rewards_rate_model\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"optional\": true,\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"max_shares_burn\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": \"u64\"\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"Lending\",\n      \"discriminator\": [135, 199, 82, 16, 249, 131, 182, 241]\n    },\n    {\n      \"name\": \"LendingAdmin\",\n      \"discriminator\": [42, 8, 33, 220, 163, 40, 210, 5]\n    },\n    {\n      \"name\": \"LendingRewardsRateModel\",\n      \"discriminator\": [166, 72, 71, 131, 172, 74, 166, 181]\n    },\n    {\n      \"name\": \"TokenReserve\",\n      \"discriminator\": [21, 18, 59, 135, 120, 20, 31, 12]\n    },\n    {\n      \"name\": \"UserSupplyPosition\",\n      \"discriminator\": [202, 219, 136, 118, 61, 177, 21, 146]\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"LogDeposit\",\n      \"discriminator\": [176, 243, 1, 56, 142, 206, 1, 106]\n    },\n    {\n      \"name\": \"LogRebalance\",\n      \"discriminator\": [90, 67, 219, 41, 181, 118, 132, 9]\n    },\n    {\n      \"name\": \"LogUpdateAuthority\",\n      \"discriminator\": [150, 152, 157, 143, 6, 135, 193, 101]\n    },\n    {\n      \"name\": \"LogUpdateAuths\",\n      \"discriminator\": [88, 80, 109, 48, 111, 203, 76, 251]\n    },\n    {\n      \"name\": \"LogUpdateRates\",\n      \"discriminator\": [222, 11, 113, 60, 147, 15, 68, 217]\n    },\n    {\n      \"name\": \"LogUpdateRebalancer\",\n      \"discriminator\": [66, 79, 144, 204, 26, 217, 153, 225]\n    },\n    {\n      \"name\": \"LogUpdateRewards\",\n      \"discriminator\": [37, 13, 111, 186, 47, 245, 162, 121]\n    },\n    {\n      \"name\": \"LogWithdraw\",\n      \"discriminator\": [49, 9, 176, 179, 222, 190, 6, 117]\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"FTokenDepositInsignificant\",\n      \"msg\": \"F_TOKEN_DEPOSIT_INSIGNIFICANT\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"FTokenMinAmountOut\",\n      \"msg\": \"F_TOKEN_MIN_AMOUNT_OUT\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"FTokenMaxAmount\",\n      \"msg\": \"F_TOKEN_MAX_AMOUNT\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"FTokenInvalidParams\",\n      \"msg\": \"F_TOKEN_INVALID_PARAMS\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"FTokenRewardsRateModelAlreadySet\",\n      \"msg\": \"F_TOKEN_REWARDS_RATE_MODEL_ALREADY_SET\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"FTokenMaxAuthCountReached\",\n      \"msg\": \"F_TOKEN_MAX_AUTH_COUNT\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"FTokenLiquidityExchangePriceUnexpected\",\n      \"msg\": \"F_TOKEN_LIQUIDITY_EXCHANGE_PRICE_UNEXPECTED\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"FTokenCpiToLiquidityFailed\",\n      \"msg\": \"F_TOKEN_CPI_TO_LIQUIDITY_FAILED\"\n    },\n    {\n      \"code\": 6008,\n      \"name\": \"FTokenOnlyAuth\",\n      \"msg\": \"F_TOKEN_ONLY_AUTH\"\n    },\n    {\n      \"code\": 6009,\n      \"name\": \"FTokenOnlyAuthority\",\n      \"msg\": \"F_TOKEN_ONLY_AUTHORITY\"\n    },\n    {\n      \"code\": 6010,\n      \"name\": \"FTokenOnlyRebalancer\",\n      \"msg\": \"F_TOKEN_ONLY_REBALANCER\"\n    },\n    {\n      \"code\": 6011,\n      \"name\": \"FTokenUserSupplyPositionRequired\",\n      \"msg\": \"F_TOKEN_USER_SUPPLY_POSITION_REQUIRED\"\n    },\n    {\n      \"code\": 6012,\n      \"name\": \"FTokenLiquidityProgramMismatch\",\n      \"msg\": \"F_TOKEN_LIQUIDITY_PROGRAM_MISMATCH\"\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"AddressBool\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"addr\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"value\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Lending\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"f_token_mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lending_id\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"decimals\",\n            \"docs\": [\"@dev number of decimals for the fToken, same as ASSET\"],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"rewards_rate_model\",\n            \"docs\": [\n              \"@dev To read PDA of rewards rate model to get_rate instruction\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"liquidity_exchange_price\",\n            \"docs\": [\n              \"@dev exchange price for the underlying asset in the liquidity protocol (without rewards)\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"token_exchange_price\",\n            \"docs\": [\n              \"@dev exchange price between fToken and the underlying asset (with rewards)\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_update_timestamp\",\n            \"docs\": [\n              \"@dev timestamp when exchange prices were updated the last time\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"token_reserves_liquidity\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"supply_position_on_liquidity\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LendingAdmin\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"liquidity_program\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"rebalancer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"next_lending_id\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"auths\",\n            \"type\": {\n              \"vec\": \"pubkey\"\n            }\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LendingRewardsRateModel\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint\",\n            \"docs\": [\"@dev mint address\"],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"start_tvl\",\n            \"docs\": [\n              \"@dev tvl below which rewards rate is 0. If current TVL is below this value, triggering `update_rate()` on the fToken\",\n              \"might bring the total TVL above this cut-off.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"duration\",\n            \"docs\": [\"@dev for how long current rewards should run\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"start_time\",\n            \"docs\": [\"@dev when current rewards got started\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"yearly_reward\",\n            \"docs\": [\n              \"@dev current annualized reward based on input params (duration, rewardAmount)\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"next_duration\",\n            \"docs\": [\"@dev Duration for the next rewards phase\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"next_reward_amount\",\n            \"docs\": [\"@dev Amount of rewards for the next phase\"],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogDeposit\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"sender\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"receiver\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"shares_minted\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogRebalance\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"assets\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateAuthority\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"new_authority\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateAuths\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"auth_status\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"AddressBool\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateRates\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token_exchange_price\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"liquidity_exchange_price\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateRebalancer\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"new_rebalancer\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogUpdateRewards\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"rewards_rate_model\",\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LogWithdraw\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"sender\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"receiver\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"shares_burned\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TokenReserve\",\n      \"docs\": [\"Token configuration and exchange prices\"],\n      \"serialization\": \"bytemuck\",\n      \"repr\": {\n        \"kind\": \"c\",\n        \"packed\": true\n      },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"borrow_rate\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"fee_on_interest\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"last_utilization\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"last_update_timestamp\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"supply_exchange_price\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"borrow_exchange_price\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_utilization\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"total_supply_with_interest\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_supply_interest_free\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_borrow_with_interest\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_borrow_interest_free\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_claim_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"interacting_protocol\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"interacting_timestamp\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"interacting_balance\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"UserSupplyPosition\",\n      \"docs\": [\"User supply position\"],\n      \"serialization\": \"bytemuck\",\n      \"repr\": {\n        \"kind\": \"c\",\n        \"packed\": true\n      },\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"protocol\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"with_interest\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"withdrawal_limit\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"decay_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"last_update\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"expand_pct\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"expand_duration\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"decay_duration\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"base_withdrawal_limit\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    }\n  ]\n}\n","import { JupLend } from \"./jup-lend\";\nimport { Liquidity } from \"./jup-lend-liquidity\";\nimport JUP_LIQUIDITY_IDL_JSON from \"./jup-lend-liquidity.json\";\nimport JUP_LEND_IDL_JSON from \"./jup-lend.json\";\n\nexport const JUP_LEND_IDL = JUP_LEND_IDL_JSON as unknown as JupLend;\nexport type JupLendIdlType = JupLend;\n\nexport const JUP_LIQUIDITY_IDL = JUP_LIQUIDITY_IDL_JSON as unknown as Liquidity;\nexport type JupLiquidityIdlType = Liquidity;\n","import {\n  JupLendingState,\n  JupLendingStateJSON,\n  JupLendingRewardsRateModel,\n  JupLendingRewardsRateModelJSON,\n  JupTokenReserve,\n  JupTokenReserveJSON,\n  JupRateModel,\n  JupRateModelJSON,\n} from \"../types\";\n\n// ============================================================================\n// RAW → DTO CONVERTERS\n// ============================================================================\n\nexport function jupLendingStateRawToDto(raw: JupLendingState): JupLendingStateJSON {\n  return {\n    pubkey: raw.pubkey.toBase58(),\n    mint: raw.mint.toBase58(),\n    fTokenMint: raw.fTokenMint.toBase58(),\n    lendingId: raw.lendingId,\n    decimals: raw.decimals,\n    rewardsRateModel: raw.rewardsRateModel.toBase58(),\n    liquidityExchangePrice: raw.liquidityExchangePrice.toString(),\n    tokenExchangePrice: raw.tokenExchangePrice.toString(),\n    lastUpdateTimestamp: raw.lastUpdateTimestamp.toString(),\n    tokenReservesLiquidity: raw.tokenReservesLiquidity.toBase58(),\n    supplyPositionOnLiquidity: raw.supplyPositionOnLiquidity.toBase58(),\n  };\n}\n\nexport function jupTokenReserveRawToDto(raw: JupTokenReserve): JupTokenReserveJSON {\n  return {\n    pubkey: raw.pubkey.toBase58(),\n    borrowRate: raw.borrowRate,\n    feeOnInterest: raw.feeOnInterest,\n    lastUtilization: raw.lastUtilization,\n    supplyExchangePrice: raw.supplyExchangePrice.toString(),\n    borrowExchangePrice: raw.borrowExchangePrice.toString(),\n    totalSupplyWithInterest: raw.totalSupplyWithInterest.toString(),\n    totalSupplyInterestFree: raw.totalSupplyInterestFree.toString(),\n    totalBorrowWithInterest: raw.totalBorrowWithInterest.toString(),\n    totalBorrowInterestFree: raw.totalBorrowInterestFree.toString(),\n  };\n}\n\nexport function jupLendingRewardsRateModelRawToDto(\n  raw: JupLendingRewardsRateModel\n): JupLendingRewardsRateModelJSON {\n  return {\n    startTvl: raw.startTvl.toString(),\n    duration: raw.duration.toString(),\n    startTime: raw.startTime.toString(),\n    yearlyReward: raw.yearlyReward.toString(),\n  };\n}\n\nexport function jupRateModelRawToDto(raw: JupRateModel): JupRateModelJSON {\n  return {\n    version: raw.version,\n    rateAtZero: raw.rateAtZero,\n    kink1Utilization: raw.kink1Utilization,\n    rateAtKink1: raw.rateAtKink1,\n    rateAtMax: raw.rateAtMax,\n    kink2Utilization: raw.kink2Utilization,\n    rateAtKink2: raw.rateAtKink2,\n  };\n}\n","import { BorshAccountsCoder } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport { JUP_LEND_IDL } from \"../idl\";\nimport {\n  JupLendingState,\n  JupLendingStateRaw,\n  JupLendingStateJSON,\n  JupLendingRewardsRateModel,\n  JupLendingRewardsRateModelRaw,\n  JupLendingRewardsRateModelJSON,\n  JupTokenReserve,\n  JupTokenReserveRaw,\n  JupTokenReserveJSON,\n  JupRateModel,\n  JupRateModelRaw,\n  JupRateModelJSON,\n} from \"../types\";\n\nconst JUP_LEND_ACCOUNTS_CODER = new BorshAccountsCoder(JUP_LEND_IDL);\n\nconst lendingDiscriminator = Buffer.from([135, 199, 82, 16, 249, 131, 182, 241]);\nconst lendingRewardsRateModelDiscriminator = Buffer.from([166, 72, 71, 131, 172, 74, 166, 181]);\nconst rateModelDiscriminator = Buffer.from([94, 3, 203, 219, 107, 137, 4, 162]);\n\n// ============================================================================\n// BUFFER → RAW DECODERS\n// ============================================================================\n\nexport function decodeJupLendingStateData(data: Buffer, pubkey: PublicKey): JupLendingStateRaw {\n  if (!data.slice(0, 8).equals(lendingDiscriminator)) {\n    throw new Error(\"invalid Lending account discriminator\");\n  }\n\n  const decoded = JUP_LEND_ACCOUNTS_CODER.decode(\"Lending\", data);\n\n  return {\n    pubkey,\n    mint: decoded.mint,\n    fTokenMint: decoded.f_token_mint ?? decoded.fTokenMint,\n    lendingId: decoded.lending_id ?? decoded.lendingId,\n    decimals: decoded.decimals,\n    rewardsRateModel: decoded.rewards_rate_model ?? decoded.rewardsRateModel,\n    liquidityExchangePrice: decoded.liquidity_exchange_price ?? decoded.liquidityExchangePrice,\n    tokenExchangePrice: decoded.token_exchange_price ?? decoded.tokenExchangePrice,\n    lastUpdateTimestamp: decoded.last_update_timestamp ?? decoded.lastUpdateTimestamp,\n    tokenReservesLiquidity: decoded.token_reserves_liquidity ?? decoded.tokenReservesLiquidity,\n    supplyPositionOnLiquidity:\n      decoded.supply_position_on_liquidity ?? decoded.supplyPositionOnLiquidity,\n    bump: decoded.bump,\n  };\n}\n\nexport function decodeJupLendingRewardsRateModelData(\n  data: Buffer,\n  pubkey: PublicKey\n): JupLendingRewardsRateModelRaw {\n  if (!data.slice(0, 8).equals(lendingRewardsRateModelDiscriminator)) {\n    throw new Error(\"invalid LendingRewardsRateModel account discriminator\");\n  }\n\n  const decoded = JUP_LEND_ACCOUNTS_CODER.decode(\"LendingRewardsRateModel\", data);\n\n  return {\n    pubkey,\n    mint: decoded.mint,\n    startTvl: decoded.start_tvl ?? decoded.startTvl,\n    duration: decoded.duration,\n    startTime: decoded.start_time ?? decoded.startTime,\n    yearlyReward: decoded.yearly_reward ?? decoded.yearlyReward,\n    nextDuration: decoded.next_duration ?? decoded.nextDuration,\n    nextRewardAmount: decoded.next_reward_amount ?? decoded.nextRewardAmount,\n    bump: decoded.bump,\n  };\n}\n\n/**\n * Decode a TokenReserve account from raw buffer data.\n * TokenReserve uses bytemuck (packed C repr) — manual fixed-offset reads.\n * Layout (after 8-byte discriminator):\n *   mint[32] vault[32] borrow_rate[2] fee_on_interest[2] last_utilization[2]\n *   last_update_timestamp[8] supply_exchange_price[8] borrow_exchange_price[8]\n *   max_utilization[2] total_supply_with_interest[8] total_supply_interest_free[8]\n *   total_borrow_with_interest[8] total_borrow_interest_free[8] total_claim_amount[8]\n *   interacting_protocol[32] interacting_timestamp[8] interacting_balance[8]\n */\nexport function decodeJupTokenReserveData(data: Buffer, pubkey: PublicKey): JupTokenReserveRaw {\n  let offset = 8; // skip 8-byte discriminator\n\n  const mint = new PublicKey(data.slice(offset, offset + 32));\n  offset += 32;\n  const vault = new PublicKey(data.slice(offset, offset + 32));\n  offset += 32;\n  const borrowRate = data.readUInt16LE(offset);\n  offset += 2;\n  const feeOnInterest = data.readUInt16LE(offset);\n  offset += 2;\n  const lastUtilization = data.readUInt16LE(offset);\n  offset += 2;\n  const lastUpdateTimestamp = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const supplyExchangePrice = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const borrowExchangePrice = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const maxUtilization = data.readUInt16LE(offset);\n  offset += 2;\n  const totalSupplyWithInterest = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const totalSupplyInterestFree = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const totalBorrowWithInterest = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const totalBorrowInterestFree = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const totalClaimAmount = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const interactingProtocol = new PublicKey(data.slice(offset, offset + 32));\n  offset += 32;\n  const interactingTimestamp = new BN(data.slice(offset, offset + 8), \"le\");\n  offset += 8;\n  const interactingBalance = new BN(data.slice(offset, offset + 8), \"le\");\n\n  return {\n    pubkey,\n    mint,\n    vault,\n    borrowRate,\n    feeOnInterest,\n    lastUtilization,\n    lastUpdateTimestamp,\n    supplyExchangePrice,\n    borrowExchangePrice,\n    maxUtilization,\n    totalSupplyWithInterest,\n    totalSupplyInterestFree,\n    totalBorrowWithInterest,\n    totalBorrowInterestFree,\n    totalClaimAmount,\n    interactingProtocol,\n    interactingTimestamp,\n    interactingBalance,\n  };\n}\n\n/**\n * Decode a RateModel account from raw buffer data.\n * RateModel uses bytemuck (packed C repr) — manual fixed-offset reads.\n * Layout (after 8-byte discriminator):\n *   mint[32] version[1] rate_at_zero[2] kink1_utilization[2]\n *   rate_at_kink1[2] rate_at_max[2] kink2_utilization[2] rate_at_kink2[2]\n */\nexport function decodeJupRateModelData(data: Buffer, pubkey: PublicKey): JupRateModelRaw {\n  if (!data.slice(0, 8).equals(rateModelDiscriminator)) {\n    throw new Error(\"invalid RateModel account discriminator\");\n  }\n\n  let offset = 8; // skip 8-byte discriminator\n\n  const mint = new PublicKey(data.slice(offset, offset + 32));\n  offset += 32;\n  const version = data.readUInt8(offset);\n  offset += 1;\n  const rateAtZero = data.readUInt16LE(offset);\n  offset += 2;\n  const kink1Utilization = data.readUInt16LE(offset);\n  offset += 2;\n  const rateAtKink1 = data.readUInt16LE(offset);\n  offset += 2;\n  const rateAtMax = data.readUInt16LE(offset);\n  offset += 2;\n  const kink2Utilization = data.readUInt16LE(offset);\n  offset += 2;\n  const rateAtKink2 = data.readUInt16LE(offset);\n\n  return {\n    pubkey,\n    mint,\n    version,\n    rateAtZero,\n    kink1Utilization,\n    rateAtKink1,\n    rateAtMax,\n    kink2Utilization,\n    rateAtKink2,\n  };\n}\n\n// ============================================================================\n// DTO → RAW CONVERTERS\n// ============================================================================\n\nexport function dtoToJupLendingStateRaw(dto: JupLendingStateJSON): JupLendingState {\n  return {\n    pubkey: new PublicKey(dto.pubkey),\n    mint: new PublicKey(dto.mint),\n    fTokenMint: new PublicKey(dto.fTokenMint),\n    lendingId: dto.lendingId,\n    decimals: dto.decimals,\n    rewardsRateModel: new PublicKey(dto.rewardsRateModel),\n    liquidityExchangePrice: new BN(dto.liquidityExchangePrice),\n    tokenExchangePrice: new BN(dto.tokenExchangePrice),\n    lastUpdateTimestamp: new BN(dto.lastUpdateTimestamp),\n    tokenReservesLiquidity: new PublicKey(dto.tokenReservesLiquidity),\n    supplyPositionOnLiquidity: new PublicKey(dto.supplyPositionOnLiquidity),\n  };\n}\n\nexport function dtoToJupTokenReserveRaw(dto: JupTokenReserveJSON): JupTokenReserve {\n  return {\n    pubkey: new PublicKey(dto.pubkey),\n    borrowRate: dto.borrowRate,\n    feeOnInterest: dto.feeOnInterest,\n    lastUtilization: dto.lastUtilization,\n    supplyExchangePrice: new BN(dto.supplyExchangePrice),\n    borrowExchangePrice: new BN(dto.borrowExchangePrice),\n    totalSupplyWithInterest: new BN(dto.totalSupplyWithInterest),\n    totalSupplyInterestFree: new BN(dto.totalSupplyInterestFree),\n    totalBorrowWithInterest: new BN(dto.totalBorrowWithInterest),\n    totalBorrowInterestFree: new BN(dto.totalBorrowInterestFree),\n  };\n}\n\nexport function dtoToJupLendingRewardsRateModelRaw(\n  dto: JupLendingRewardsRateModelJSON\n): JupLendingRewardsRateModel {\n  return {\n    startTvl: new BN(dto.startTvl),\n    duration: new BN(dto.duration),\n    startTime: new BN(dto.startTime),\n    yearlyReward: new BN(dto.yearlyReward),\n  };\n}\n\nexport function dtoToJupRateModelRaw(dto: JupRateModelJSON): JupRateModel {\n  return {\n    version: dto.version,\n    rateAtZero: dto.rateAtZero,\n    kink1Utilization: dto.kink1Utilization,\n    rateAtKink1: dto.rateAtKink1,\n    rateAtMax: dto.rateAtMax,\n    kink2Utilization: dto.kink2Utilization,\n    rateAtKink2: dto.rateAtKink2,\n  };\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nimport {\n  JUP_LEND_PROGRAM_ID,\n  JUP_LIQUIDITY_PROGRAM_ID,\n  JUP_REWARDS_PROGRAM_ID,\n} from \"../constants\";\n\nimport {\n  ASSOCIATED_TOKEN_PROGRAM_ID,\n  getAssociatedTokenAddressSync,\n  TOKEN_PROGRAM_ID,\n} from \"~/vendor/spl\";\n\n// Lending Program Seeds\nexport const SEED_LENDING_ADMIN = \"lending_admin\";\nexport const SEED_F_TOKEN_MINT = \"f_token_mint\";\nexport const SEED_LENDING = \"lending\";\n\n// Liquidity Program Seeds\nexport const SEED_LIQUIDITY = \"liquidity\";\nexport const SEED_RESERVE = \"reserve\";\nexport const SEED_RATE_MODEL = \"rate_model\";\nexport const SEED_USER_SUPPLY_POSITION = \"user_supply_position\";\nexport const SEED_USER_CLAIM = \"user_claim\";\n\n// Rewards Program Seeds\nexport const SEED_LENDING_REWARDS_RATE_MODEL = \"lending_rewards_rate_model\";\n\nexport function getAllDerivedJupLendAccounts(mint: PublicKey, tokenProgram?: PublicKey) {\n  const [fTokenMint] = deriveJupLendFTokenMint(mint);\n  const [lending] = deriveJupLendLending(mint, fTokenMint);\n  const [liquidity] = deriveJupLendLiquidity();\n\n  return {\n    fTokenMint,\n    lendingAdmin: deriveJupLendLendingAdmin()[0],\n    supplyTokenReservesLiquidity: deriveJupLendTokenReserve(mint)[0],\n    lendingSupplyPositionOnLiquidity: deriveJupLendLiquiditySupplyPositionPda(mint, lending)[0],\n    rateModel: deriveJupLendRateModel(mint)[0],\n    vault: deriveJupLendLiquidityVaultAta(mint, liquidity, tokenProgram),\n    liquidity: liquidity,\n    rewardsRateModel: deriveJupLendLendingRewardsRateModel(mint)[0],\n  };\n}\n\n// ============================================================================\n// LENDING PROGRAM PDAs\n// ============================================================================\n\nexport function deriveJupLendLendingPdas(\n  underlyingMint: PublicKey,\n  lendingProgramId: PublicKey = JUP_LEND_PROGRAM_ID\n): {\n  lendingAdmin: PublicKey;\n  lendingAdminBump: number;\n  fTokenMint: PublicKey;\n  fTokenMintBump: number;\n  lending: PublicKey;\n  lendingBump: number;\n} {\n  const [lendingAdmin, lendingAdminBump] = deriveJupLendLendingAdmin(lendingProgramId);\n  const [fTokenMint, fTokenMintBump] = deriveJupLendFTokenMint(underlyingMint, lendingProgramId);\n  const [lending, lendingBump] = deriveJupLendLending(underlyingMint, fTokenMint, lendingProgramId);\n\n  return {\n    lendingAdmin,\n    lendingAdminBump,\n    fTokenMint,\n    fTokenMintBump,\n    lending,\n    lendingBump,\n  };\n}\n\n/**\n * Derive the fToken mint PDA for a given asset.\n * Seeds: [\"f_token_mint\", asset]\n */\nexport function deriveJupLendFTokenMint(\n  asset: PublicKey,\n  lendingProgramId: PublicKey = JUP_LEND_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_F_TOKEN_MINT), asset.toBuffer()],\n    lendingProgramId\n  );\n}\n\n/**\n * Derive the Lending state PDA for a given asset.\n * Seeds: [\"lending\", asset, fTokenMint]\n */\nexport function deriveJupLendLending(\n  asset: PublicKey,\n  fTokenMint?: PublicKey,\n  lendingProgramId: PublicKey = JUP_LEND_PROGRAM_ID\n): [PublicKey, number] {\n  const [_fTokenMint] = fTokenMint\n    ? [fTokenMint]\n    : deriveJupLendFTokenMint(asset, lendingProgramId);\n\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_LENDING), asset.toBuffer(), _fTokenMint.toBuffer()],\n    lendingProgramId\n  );\n}\n\n/**\n * Derive the LendingAdmin PDA (singleton).\n * Seeds: [\"lending_admin\"]\n */\nexport function deriveJupLendLendingAdmin(\n  lendingProgramId: PublicKey = JUP_LEND_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync([Buffer.from(SEED_LENDING_ADMIN)], lendingProgramId);\n}\n\n// ============================================================================\n// REWARDS PROGRAM PDAs\n// ============================================================================\n\n/**\n * Derive the LendingRewardsRateModel PDA for a given asset.\n * Seeds: [\"lending_rewards_rate_model\", asset]\n * Note: This PDA lives on the rewards program, not the lending program.\n */\nexport function deriveJupLendLendingRewardsRateModel(\n  asset: PublicKey,\n  rewardsProgramId: PublicKey = JUP_REWARDS_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_LENDING_REWARDS_RATE_MODEL), asset.toBuffer()],\n    rewardsProgramId\n  );\n}\n\n// ============================================================================\n// LIQUIDITY PROGRAM PDAs\n// ============================================================================\n\n/**\n * Derive the TokenReserve PDA for a given asset on the liquidity layer.\n * Seeds: [\"reserve\", asset]\n */\nexport function deriveJupLendTokenReserve(\n  asset: PublicKey,\n  liquidityProgramId: PublicKey = JUP_LIQUIDITY_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_RESERVE), asset.toBuffer()],\n    liquidityProgramId\n  );\n}\n\nexport function deriveJupLendLiquidityVaultAta(\n  underlyingMint: PublicKey,\n  liquidityPda: PublicKey,\n  tokenProgramId: PublicKey = TOKEN_PROGRAM_ID\n): PublicKey {\n  return getAssociatedTokenAddressSync(\n    underlyingMint,\n    liquidityPda,\n    true,\n    tokenProgramId,\n    ASSOCIATED_TOKEN_PROGRAM_ID\n  );\n}\n\n/**\n * Derive the interest rate model PDA for a given asset on the liquidity layer.\n * Seeds: [\"rate_model\", asset]\n */\nexport function deriveJupLendRateModel(\n  asset: PublicKey,\n  liquidityProgramId: PublicKey = JUP_LIQUIDITY_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_RATE_MODEL), asset.toBuffer()],\n    liquidityProgramId\n  );\n}\n\n/**\n * Derive the global Liquidity state PDA (singleton).\n * Seeds: [\"liquidity\"]\n */\nexport function deriveJupLendLiquidity(\n  liquidityProgramId: PublicKey = JUP_LIQUIDITY_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync([Buffer.from(SEED_LIQUIDITY)], liquidityProgramId);\n}\n\n/**\n * Derive the claim account PDA for a given owner and mint on the liquidity program.\n * Seeds: [\"user_claim\", owner, mint]\n */\nexport function deriveJupLendClaimAccount(\n  owner: PublicKey,\n  mint: PublicKey,\n  liquidityProgramId: PublicKey = JUP_LIQUIDITY_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_USER_CLAIM), owner.toBuffer(), mint.toBuffer()],\n    liquidityProgramId\n  );\n}\n\nexport function deriveJupLendLiquiditySupplyPositionPda(\n  underlyingMint: PublicKey,\n  lendingPda: PublicKey,\n  liquidityProgramId: PublicKey = JUP_LIQUIDITY_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_USER_SUPPLY_POSITION), underlyingMint.toBuffer(), lendingPda.toBuffer()],\n    liquidityProgramId\n  );\n}\n","import { HOURS_PER_YEAR } from \"../constants\";\n\n// ================ interest rate helpers ================\n\n/**\n * Formula source: http://www.linked8.com/blog/158-apy-to-apr-and-apr-to-apy-calculation-methodologies\n *\n * @param apy {Number} APY (i.e. 0.06 for 6%)\n * @param compoundingFrequency {Number} Compounding frequency (times a year)\n * @returns {Number} APR (i.e. 0.0582 for APY of 0.06)\n */\nconst apyToApr = (apy: number, compoundingFrequency: number = HOURS_PER_YEAR): number =>\n  ((1 + apy) ** (1 / compoundingFrequency) - 1) * compoundingFrequency;\n\n/**\n * Formula source: http://www.linked8.com/blog/158-apy-to-apr-and-apr-to-apy-calculation-methodologies\n *\n *\n * @param apr {Number} APR (i.e. 0.0582 for 5.82%)\n * @param compoundingFrequency {Number} Compounding frequency (times a year)\n * @returns {Number} APY (i.e. 0.06 for APR of 0.0582)\n */\nconst aprToApy = (apr: number, compoundingFrequency: number = HOURS_PER_YEAR, apyCap: number = 3): number =>\n  Math.min((1 + apr / compoundingFrequency) ** compoundingFrequency - 1, apyCap);\n\nfunction calculateInterestFromApy(principal: number, durationInYears: number, apy: number): number {\n  return principal * apy * durationInYears;\n}\n\nfunction calculateApyFromInterest(principal: number, durationInYears: number, interest: number): number {\n  return interest / (principal * durationInYears);\n}\n\nexport { apyToApr, aprToApy, calculateInterestFromApy, calculateApyFromInterest };\n","import BN from \"bn.js\";\n\nimport {\n  JupLendingState,\n  JupLendingRewardsRateModel,\n  JupTokenReserve,\n  JupRateModel,\n} from \"../types\";\n\nimport { aprToApy } from \"~/utils\";\n\n/**\n * Jup-Lend Interest Rate & Exchange Price Utilities\n *\n * Extracted from the compiled @jup-ag/lend SDK (earn/index.mjs).\n * All functions work on pre-fetched state — no RPC calls.\n */\n\n// ============================================================================\n// CONSTANTS\n// ============================================================================\n\nexport const JUP_EXCHANGE_PRICES_PRECISION = new BN(\"1000000000000\"); // 1e12\nexport const JUP_SECONDS_PER_YEAR = new BN(31_536_000);\nexport const JUP_MAX_REWARDS_RATE = new BN(\"50000000000000\"); // 50 * 1e12 = 50%\n\n// ============================================================================\n// TOTAL ASSETS\n// ============================================================================\n\n/**\n * Calculate total assets for a jup-lend market.\n * Formula: tokenExchangePrice * fTokenTotalSupply / EXCHANGE_PRICES_PRECISION\n *\n * @param lendingState - The on-chain Lending account\n * @param fTokenTotalSupply - Total supply of the fToken (from getTokenSupply)\n * @returns Total assets as BN in underlying token lamports\n */\nexport function calculateJupLendTotalAssets(\n  lendingState: JupLendingState,\n  fTokenTotalSupply: BN\n): BN {\n  return lendingState.tokenExchangePrice.mul(fTokenTotalSupply).div(JUP_EXCHANGE_PRICES_PRECISION);\n}\n\n// ============================================================================\n// REWARDS RATE\n// ============================================================================\n\nexport interface JupLendRewardsResult {\n  rewardsRate: BN;\n  rewardsEnded: boolean;\n  rewardsStartTime: BN;\n}\n\n/**\n * Calculate the rewards rate from a LendingRewardsRateModel.\n * Extracted from compiled SDK's `calculateRewardsRate`.\n *\n * @param rewardsModel - The on-chain LendingRewardsRateModel account\n * @param totalAssets - Total assets in the market (from calculateJupLendTotalAssets)\n * @param currentTimestamp - Current unix timestamp (seconds)\n * @returns Rewards rate, whether rewards ended, and start time\n */\nexport function calculateJupLendRewardsRate(\n  rewardsModel: JupLendingRewardsRateModel,\n  totalAssets: BN,\n  currentTimestamp: BN\n): JupLendRewardsResult {\n  const defaultResult: JupLendRewardsResult = {\n    rewardsRate: new BN(0),\n    rewardsEnded: false,\n    rewardsStartTime: rewardsModel.startTime,\n  };\n\n  if (rewardsModel.startTime.isZero() || rewardsModel.duration.isZero()) {\n    return defaultResult;\n  }\n\n  if (currentTimestamp.gt(rewardsModel.startTime.add(rewardsModel.duration))) {\n    return { ...defaultResult, rewardsEnded: true };\n  }\n\n  if (totalAssets.lt(rewardsModel.startTvl)) {\n    return defaultResult;\n  }\n\n  let rewardsRate = rewardsModel.yearlyReward.mul(new BN(1e4)).div(totalAssets);\n\n  if (rewardsRate.gt(JUP_MAX_REWARDS_RATE)) {\n    rewardsRate = JUP_MAX_REWARDS_RATE;\n  }\n\n  return {\n    rewardsRate,\n    rewardsEnded: false,\n    rewardsStartTime: rewardsModel.startTime,\n  };\n}\n\n// ============================================================================\n// REWARDS RATE FOR EXCHANGE PRICE (1e12 precision)\n// ============================================================================\n\n/**\n * Calculate the rewards rate at 1e12 precision for use in exchange price projection.\n * Mirrors SDK's `getRewardsRate` (earn/index.mjs line 261), NOT `calculateRewardsRate`.\n *\n * This is distinct from `calculateJupLendRewardsRate` which uses 1e4 precision for APR display.\n *\n * @param rewardsModel - The on-chain LendingRewardsRateModel account\n * @param totalAssets - Total assets in the market (from calculateJupLendTotalAssets)\n * @param currentTimestamp - Current unix timestamp (seconds)\n * @returns Rate at 1e12 precision and rewards start time\n */\nexport function calculateJupLendRewardsRateForExchangePrice(\n  rewardsModel: JupLendingRewardsRateModel,\n  totalAssets: BN,\n  currentTimestamp: BN\n): { rate: BN; rewardsStartTime: BN } {\n  const defaultResult = { rate: new BN(0), rewardsStartTime: rewardsModel.startTime };\n\n  if (rewardsModel.startTime.isZero() || rewardsModel.duration.isZero()) {\n    return defaultResult;\n  }\n\n  if (currentTimestamp.gt(rewardsModel.startTime.add(rewardsModel.duration))) {\n    return defaultResult;\n  }\n\n  if (totalAssets.lt(rewardsModel.startTvl)) {\n    return defaultResult;\n  }\n\n  let rate = rewardsModel.yearlyReward.mul(JUP_EXCHANGE_PRICES_PRECISION).div(totalAssets);\n\n  if (rate.gt(JUP_MAX_REWARDS_RATE)) {\n    rate = JUP_MAX_REWARDS_RATE;\n  }\n\n  return { rate, rewardsStartTime: rewardsModel.startTime };\n}\n\n// ============================================================================\n// EXCHANGE PRICE PROJECTION\n// ============================================================================\n\n/**\n * Project the new token exchange price offline (no RPC calls).\n * Extracted from compiled SDK's `getNewExchangePrice` (earn/index.mjs line 316).\n *\n * This combines:\n * 1. Rewards rate contribution (time-weighted, 1e12 precision via getRewardsRate)\n * 2. Liquidity exchange price delta (scaled to 1e14)\n *\n * Both components are accumulated in 1e14 space before being applied.\n *\n * @param lendingState - The on-chain Lending account\n * @param tokenReserve - The on-chain TokenReserve account (provides current supplyExchangePrice)\n * @param rewardsModel - The on-chain LendingRewardsRateModel (or null if no rewards)\n * @param fTokenTotalSupply - Total supply of the fToken (for totalAssets calculation)\n * @param currentTimestamp - Current unix timestamp (seconds)\n * @returns Projected token exchange price as BN (1e12 precision)\n */\nexport function calculateJupLendNewExchangePrice(\n  lendingState: JupLendingState,\n  tokenReserve: JupTokenReserve,\n  rewardsModel: JupLendingRewardsRateModel | null,\n  fTokenTotalSupply: BN,\n  currentTimestamp: BN\n): BN {\n  const oldTokenExchangePrice = lendingState.tokenExchangePrice;\n  const oldLiquidityExchangePrice = lendingState.liquidityExchangePrice;\n  const currentLiquidityExchangePrice = tokenReserve.supplyExchangePrice;\n\n  // Rewards component — must use 1e12-precision rate (mirrors SDK getRewardsRate, not calculateRewardsRate)\n  let rewardsRate = new BN(0);\n  let rewardsStartTime = lendingState.lastUpdateTimestamp;\n\n  if (rewardsModel) {\n    const totalAssets = calculateJupLendTotalAssets(lendingState, fTokenTotalSupply);\n    const result = calculateJupLendRewardsRateForExchangePrice(\n      rewardsModel,\n      totalAssets,\n      currentTimestamp\n    );\n    rewardsRate = result.rate;\n    rewardsStartTime = result.rewardsStartTime;\n  }\n\n  let lastUpdateTime = lendingState.lastUpdateTimestamp;\n  if (lastUpdateTime.lt(rewardsStartTime)) {\n    lastUpdateTime = rewardsStartTime;\n  }\n\n  const secondsElapsed = currentTimestamp.sub(lastUpdateTime);\n\n  // Rewards contribution: rate (1e12) * secondsElapsed / SECONDS_PER_YEAR → ~1e12 scale\n  // Scaled up to 1e14 to match the liquidity delta component\n  let totalReturnPercent = rewardsRate\n    .mul(secondsElapsed)\n    .div(JUP_SECONDS_PER_YEAR)\n    .mul(new BN(100)); // 1e12 → 1e14\n\n  // Liquidity exchange price delta contribution (1e14 precision)\n  const delta = currentLiquidityExchangePrice.sub(oldLiquidityExchangePrice);\n  totalReturnPercent = totalReturnPercent.add(\n    delta.mul(new BN(1e14)).div(oldLiquidityExchangePrice)\n  );\n\n  return oldTokenExchangePrice.add(oldTokenExchangePrice.mul(totalReturnPercent).div(new BN(1e14)));\n}\n\n// ============================================================================\n// LIQUIDITY SUPPLY RATE\n// ============================================================================\n\n/**\n * Calculate the liquidity layer supply rate for an asset.\n * Extracted from compiled SDK's `getLiquidityAssetSupplyRate`.\n *\n * Formula: borrowRate * (1 - fee) * borrowWithInterest / supplyWithInterest\n *\n * @param tokenReserve - The on-chain TokenReserve account\n * @returns Supply rate as BN (in bps-like precision from the liquidity layer)\n */\nexport function calculateJupLendLiquiditySupplyRate(tokenReserve: JupTokenReserve): BN {\n  const borrowRate = new BN(tokenReserve.borrowRate);\n  const fee = new BN(tokenReserve.feeOnInterest);\n\n  if (tokenReserve.totalSupplyWithInterest.isZero()) {\n    return new BN(0);\n  }\n\n  const borrowWithInterestForRate = tokenReserve.totalBorrowWithInterest\n    .mul(tokenReserve.borrowExchangePrice)\n    .div(JUP_EXCHANGE_PRICES_PRECISION);\n\n  const supplyWithInterestForRate = tokenReserve.totalSupplyWithInterest\n    .mul(tokenReserve.supplyExchangePrice)\n    .div(JUP_EXCHANGE_PRICES_PRECISION);\n\n  if (supplyWithInterestForRate.isZero()) {\n    return new BN(0);\n  }\n\n  return borrowRate\n    .mul(new BN(1e4).sub(fee))\n    .mul(borrowWithInterestForRate)\n    .div(supplyWithInterestForRate.mul(new BN(1e4)));\n}\n\n// ============================================================================\n// COMBINED SUPPLY RATE (APR)\n// ============================================================================\n\n/**\n * Calculate the total supply rate (APR) for a jup-lend market,\n * combining both base liquidity supply rate and rewards rate.\n *\n * Returns a number as a decimal (e.g. 0.05 = 5% APR).\n *\n * @param lendingState - The on-chain Lending account\n * @param tokenReserve - The on-chain TokenReserve account\n * @param rewardsModel - The on-chain LendingRewardsRateModel account (or null if no rewards)\n * @param fTokenTotalSupply - Total supply of the fToken\n * @returns Supply rate as decimal number\n */\nexport function calculateJupLendSupplyRate(\n  lendingState: JupLendingState,\n  tokenReserve: JupTokenReserve,\n  rewardsModel: JupLendingRewardsRateModel | null,\n  fTokenTotalSupply: BN\n): number {\n  const supplyRate = calculateJupLendLiquiditySupplyRate(tokenReserve);\n\n  // supplyRate is in bps (e.g. 500 = 5%)\n  let totalRateBps = supplyRate.toNumber();\n\n  if (rewardsModel) {\n    const totalAssets = calculateJupLendTotalAssets(lendingState, fTokenTotalSupply);\n    const currentTimestamp = new BN(Math.floor(Date.now() / 1000));\n    const { rewardsRate } = calculateJupLendRewardsRate(\n      rewardsModel,\n      totalAssets,\n      currentTimestamp\n    );\n    // rewardsRate is scaled by 1e4 relative to totalAssets\n    totalRateBps += rewardsRate.toNumber();\n  }\n\n  return totalRateBps / 10_000;\n}\n\n// ============================================================================\n// SUPPLY APY\n// ============================================================================\n\n/**\n * Calculate the supply APY for a jup-lend market (base rate only, no rewards).\n *\n * Uses hourly compounding: (1 + apr/HOURS_PER_YEAR)^HOURS_PER_YEAR - 1\n *\n * @param tokenReserve - The on-chain TokenReserve account\n * @returns Supply APY as decimal (e.g. 0.0512 = 5.12% APY)\n */\nexport function calculateJupLendSupplyAPY(tokenReserve: JupTokenReserve): number {\n  const supplyRateBps = calculateJupLendLiquiditySupplyRate(tokenReserve);\n  const apr = supplyRateBps.toNumber() / 1e4;\n  return aprToApy(apr);\n}\n\n// ============================================================================\n// BORROW RATE FROM RATE MODEL (PIECEWISE LINEAR)\n// ============================================================================\n\n/**\n * Calculate the borrow rate at a given utilization using the on-chain RateModel.\n *\n * V1 (version=1, single kink):\n *   [0, kink1] → linear rateAtZero → rateAtKink1\n *   [kink1, 10000] → linear rateAtKink1 → rateAtMax\n *\n * V2 (version=2, dual kink):\n *   [0, kink1] → linear rateAtZero → rateAtKink1\n *   [kink1, kink2] → linear rateAtKink1 → rateAtKink2\n *   [kink2, 10000] → linear rateAtKink2 → rateAtMax\n *\n * @param rateModel - The on-chain RateModel account\n * @param utilizationBps - Utilization in bps (0–10000)\n * @returns Borrow rate in bps\n */\nexport function calculateJupLendBorrowRate(\n  rateModel: JupRateModel,\n  utilizationBps: number\n): number {\n  const u = Math.max(0, Math.min(10000, utilizationBps));\n\n  if (rateModel.version === 2) {\n    // V2: dual kink\n    if (u <= rateModel.kink1Utilization) {\n      return linearInterpolate(\n        0,\n        rateModel.rateAtZero,\n        rateModel.kink1Utilization,\n        rateModel.rateAtKink1,\n        u\n      );\n    } else if (u <= rateModel.kink2Utilization) {\n      return linearInterpolate(\n        rateModel.kink1Utilization,\n        rateModel.rateAtKink1,\n        rateModel.kink2Utilization,\n        rateModel.rateAtKink2,\n        u\n      );\n    } else {\n      return linearInterpolate(\n        rateModel.kink2Utilization,\n        rateModel.rateAtKink2,\n        10000,\n        rateModel.rateAtMax,\n        u\n      );\n    }\n  } else {\n    // V1: single kink\n    if (u <= rateModel.kink1Utilization) {\n      return linearInterpolate(\n        0,\n        rateModel.rateAtZero,\n        rateModel.kink1Utilization,\n        rateModel.rateAtKink1,\n        u\n      );\n    } else {\n      return linearInterpolate(\n        rateModel.kink1Utilization,\n        rateModel.rateAtKink1,\n        10000,\n        rateModel.rateAtMax,\n        u\n      );\n    }\n  }\n}\n\n/**\n * Linear interpolation between two points.\n */\nfunction linearInterpolate(x0: number, y0: number, x1: number, y1: number, x: number): number {\n  if (x1 === x0) return y0;\n  return y0 + ((y1 - y0) * (x - x0)) / (x1 - x0);\n}\n\n// ============================================================================\n// SUPPLY INTEREST RATE CURVE\n// ============================================================================\n\n/**\n * Interest rate curve point for visualization (supply only).\n */\nexport interface JupLendInterestRateCurvePoint {\n  utilization: number; // 0-100 percentage\n  supplyAPY: number; // percentage\n}\n\n/**\n * Generate a supply interest rate curve for a JupLend reserve using the on-chain RateModel.\n *\n * Uses the piecewise linear borrow rate curve from the RateModel account:\n *   borrowAPR(U) = calculateJupLendBorrowRate(rateModel, U * 10000)\n *   supplyAPR(U) = borrowAPR(U) * (1 - feeOnInterest / 1e4) * U\n *   supplyAPY(U) = aprToApy(supplyAPR(U))\n *\n * @param rateModel - The on-chain RateModel account (from liquidity program)\n * @param feeOnInterest - Fee on interest in bps (from TokenReserve.feeOnInterest)\n * @returns 101 curve points (utilization 0–100%)\n */\nexport function generateJupLendSupplyCurve(\n  rateModel: JupRateModel,\n  feeOnInterest: number\n): JupLendInterestRateCurvePoint[] {\n  const feeMultiplier = 1 - feeOnInterest / 1e4;\n\n  return Array.from({ length: 101 }, (_, i) => {\n    const utilizationFraction = i / 100; // 0.00 to 1.00\n    const utilizationBps = i * 100; // 0 to 10000\n\n    const borrowRateBps = calculateJupLendBorrowRate(rateModel, utilizationBps);\n    const borrowRateDecimal = borrowRateBps / 1e4;\n\n    const supplyAPR = borrowRateDecimal * feeMultiplier * utilizationFraction;\n    const supplyAPY = aprToApy(supplyAPR);\n\n    return {\n      utilization: i, // 0-100\n      supplyAPY: supplyAPY * 100, // Convert to percentage\n    };\n  });\n}\n","import { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport { JupLendingState, JupLendingRewardsRateModel } from \"../types\";\n\nimport {\n  calculateJupLendTotalAssets,\n  calculateJupLendRewardsRate,\n  JupLendRewardsResult,\n} from \"./interest-rate.utils\";\n\n/**\n * Calculate the rewards info for a jup-lend market from pre-fetched state.\n *\n * @param lendingState - The on-chain Lending account\n * @param rewardsModel - The on-chain LendingRewardsRateModel account\n * @param fTokenTotalSupply - Total supply of the fToken\n * @returns Rewards result with rate, ended flag, and start time\n */\nexport function getJupLendRewards(\n  lendingState: JupLendingState,\n  rewardsModel: JupLendingRewardsRateModel,\n  fTokenTotalSupply: BN\n): JupLendRewardsResult {\n  if (lendingState.rewardsRateModel.equals(PublicKey.default)) {\n    return {\n      rewardsRate: new BN(0),\n      rewardsEnded: false,\n      rewardsStartTime: new BN(0),\n    };\n  }\n\n  const totalAssets = calculateJupLendTotalAssets(lendingState, fTokenTotalSupply);\n  const currentTimestamp = new BN(Math.floor(Date.now() / 1000));\n\n  return calculateJupLendRewardsRate(rewardsModel, totalAssets, currentTimestamp);\n}\n","import { AccountMeta, PublicKey, TransactionInstruction } from \"@solana/web3.js\";\n\nimport { JUP_LEND_PROGRAM_ID } from \"./constants\";\n\n/**\n * Refresh JupLend exchange rates (permissionless crank).\n * Must run before risk-sensitive flows (liquidation, borrow, non-JupLend withdraw)\n * for every involved JupLend bank in the same tx.\n *\n * Note: juplend_deposit and juplend_withdraw call updateRate internally.\n */\nconst UPDATE_RATE_DISCRIMINATOR = Buffer.from([24, 225, 53, 189, 72, 212, 225, 178]);\n\nexport const makeUpdateJupLendRateIx = (\n  lending: PublicKey,\n  mint: PublicKey,\n  fTokenMint: PublicKey,\n  supplyTokenReservesLiquidity: PublicKey,\n  rewardsRateModel: PublicKey\n): TransactionInstruction => {\n  const keys: AccountMeta[] = [\n    // lending: writable (exchange prices are updated)\n    { pubkey: lending, isSigner: false, isWritable: true },\n\n    // mint: read-only\n    { pubkey: mint, isSigner: false, isWritable: false },\n\n    // fTokenMint: read-only\n    { pubkey: fTokenMint, isSigner: false, isWritable: false },\n\n    // supplyTokenReservesLiquidity: read-only\n    { pubkey: supplyTokenReservesLiquidity, isSigner: false, isWritable: false },\n\n    // rewardsRateModel: read-only\n    { pubkey: rewardsRateModel, isSigner: false, isWritable: false },\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: JUP_LEND_PROGRAM_ID,\n    data: UPDATE_RATE_DISCRIMINATOR,\n  });\n};\n\nconst jupLendInstructions = {\n  makeUpdateJupLendRateIx,\n};\n\nexport default jupLendInstructions;\n","import { makeUpdateJupLendRateIx } from \"../instructions\";\nimport { JupLendingState } from \"../types\";\n\ntype MakeUpdateJupLendRateParams = {\n  lendingState: JupLendingState;\n};\n\nexport function makeUpdateJupLendRate({ lendingState }: MakeUpdateJupLendRateParams) {\n  return makeUpdateJupLendRateIx(\n    lendingState.pubkey,\n    lendingState.mint,\n    lendingState.fTokenMint,\n    lendingState.tokenReservesLiquidity,\n    lendingState.rewardsRateModel\n  );\n}\n","// Minimal Titan V1 WebSocket client — vendored from @titanexchange/sdk-ts\n// Source: https://github.com/Titan-Pathfinder/titan-sdk-ts (MIT)\n//\n// Differences from upstream:\n// - No compression (negotiates only \"v1.api.titan.ag\" subprotocol)\n// - Uses `ws` package instead of `websocket`\n// - Only implements connect, newSwapQuoteStream, stopStream, close\n\nimport { Encoder, Decoder } from \"@msgpack/msgpack\";\nimport WebSocket from \"ws\";\n\nimport type {\n  ClientRequest,\n  SwapQuoteRequest,\n  ServerMessage,\n  ResponseSuccess,\n  ResponseError,\n  StreamData,\n  StreamEnd,\n  SwapQuotes,\n  QuoteSwapStreamResponse,\n  StopStreamResponse,\n} from \"./types\";\n\nconst SUBPROTOCOL = \"v1.api.titan.ag\";\nconst UINT64_MAX = (1n << 64n) - 1n;\n\nfunction toBigInt(value: number | bigint): bigint {\n  if (typeof value === \"bigint\") {\n    if (value < 0n || value > UINT64_MAX) {\n      throw new RangeError(`Amount out of uint64 range: ${value}`);\n    }\n    return value;\n  }\n  if (!Number.isInteger(value)) {\n    throw new TypeError(`Amount must be a whole number, got ${value}`);\n  }\n  if (value < 0) {\n    throw new RangeError(`Amount must be non-negative, got ${value}`);\n  }\n  return BigInt(value);\n}\n\n// --- Error classes ---\n\nexport class ConnectionClosed extends Error {\n  code: number;\n  reason: string;\n\n  constructor(code: number, reason: string) {\n    super(`Client WebSocket closed with code ${code}: ${reason}`);\n    this.name = \"ConnectionClosed\";\n    Object.setPrototypeOf(this, ConnectionClosed.prototype);\n    this.code = code;\n    this.reason = reason;\n  }\n}\n\nexport class ErrorResponse extends Error {\n  response: ResponseError;\n\n  constructor(response: ResponseError) {\n    super(`Request ${response.requestId} failed with code ${response.code}: ${response.message}`);\n    this.name = \"ErrorResponse\";\n    Object.setPrototypeOf(this, ErrorResponse.prototype);\n    this.response = response;\n  }\n}\n\nexport class StreamError extends Error {\n  streamId: number;\n  errorCode: number;\n  errorMessage: string;\n\n  constructor(packet: StreamEnd) {\n    const code = packet.errorCode ?? 0;\n    const message = packet.errorMessage ?? \"\";\n    super(`Stream ${packet.id} ended with error code ${code}: ${message}`);\n    this.name = \"StreamError\";\n    Object.setPrototypeOf(this, StreamError.prototype);\n    this.streamId = packet.id;\n    this.errorCode = code;\n    this.errorMessage = message;\n  }\n}\n\n// --- Response handler types ---\n\nexport interface ResponseWithStream<T, D> {\n  response: T;\n  stream: ReadableStream<D>;\n  streamId: number;\n}\n\ntype Resolver<T> = (value: T | PromiseLike<T>) => void;\ntype Rejector = (reason?: unknown) => void;\n\ninterface PendingRequest {\n  resolve: Resolver<unknown>;\n  reject: Rejector;\n  kind: \"NewSwapQuoteStream\" | \"StopStream\";\n}\n\n// --- Codec (msgpack, no compression) ---\n\nconst encoder = new Encoder({ useBigInt64: true });\nconst decoder = new Decoder({ useBigInt64: true });\n\n// --- V1Client ---\n\nexport class V1Client {\n  private socket: WebSocket;\n  private nextId = 0;\n  private _closed = false;\n  private _closing = false;\n\n  private pending = new Map<number, PendingRequest>();\n  private streams = new Map<number, ReadableStreamDefaultController<SwapQuotes>>();\n  private streamStopping = new Map<number, boolean>();\n  private closeListeners: { resolve: Resolver<void>; reject: Rejector }[] = [];\n\n  // --- Static connect ---\n\n  static connect(url: string): Promise<V1Client> {\n    return new Promise<V1Client>((resolve, reject) => {\n      const ws = new WebSocket(url, [SUBPROTOCOL]);\n\n      ws.binaryType = \"arraybuffer\";\n\n      const onOpen = () => {\n        // ws doesn't populate .protocol when using the `ws` library in Node\n        // but since we only offer one subprotocol, the server must accept it.\n        ws.off(\"error\", onError);\n        ws.off(\"close\", onClose);\n        resolve(new V1Client(ws));\n      };\n      const onError = (err: Error) => {\n        ws.off(\"open\", onOpen);\n        ws.off(\"close\", onClose);\n        reject(err);\n      };\n      // Guard against the socket closing before `open` fires without a\n      // preceding `error` (e.g. a clean close during handshake). Without this\n      // the promise would hang forever.\n      const onClose = (code: number, reason: Buffer) => {\n        ws.off(\"open\", onOpen);\n        ws.off(\"error\", onError);\n        reject(\n          new Error(\n            `WebSocket closed before open (code=${code}${\n              reason.length ? `, reason=${reason.toString()}` : \"\"\n            })`\n          )\n        );\n      };\n\n      ws.once(\"open\", onOpen);\n      ws.once(\"error\", onError);\n      ws.once(\"close\", onClose);\n    });\n  }\n\n  // --- Constructor ---\n\n  private constructor(socket: WebSocket) {\n    this.socket = socket;\n\n    this.socket.on(\"message\", (data: WebSocket.RawData) => {\n      this.handleMessage(data);\n    });\n    this.socket.on(\"close\", (code: number, reason: Buffer) => {\n      this.handleClose(code, reason.toString());\n    });\n    this.socket.on(\"error\", (err: Error) => {\n      this.handleError(err);\n    });\n  }\n\n  private nextRequestId(): number {\n    return this.nextId++;\n  }\n\n  // --- Public API ---\n\n  public get closed(): boolean {\n    return this._closed;\n  }\n\n  public close(): Promise<void> {\n    if (this._closed) return Promise.resolve();\n    return new Promise<void>((resolve, reject) => {\n      this.closeListeners.push({ resolve, reject });\n      if (!this._closing) {\n        this._closing = true;\n        this.socket.close();\n      }\n    });\n  }\n\n  public newSwapQuoteStream(\n    params: SwapQuoteRequest\n  ): Promise<ResponseWithStream<QuoteSwapStreamResponse, SwapQuotes>> {\n    const requestId = this.nextRequestId();\n\n    const promise = new Promise<ResponseWithStream<QuoteSwapStreamResponse, SwapQuotes>>(\n      (resolve, reject) => {\n        this.pending.set(requestId, {\n          resolve: resolve as Resolver<unknown>,\n          reject,\n          kind: \"NewSwapQuoteStream\",\n        });\n      }\n    );\n\n    const normalized: SwapQuoteRequest = {\n      ...params,\n      swap: { ...params.swap, amount: toBigInt(params.swap.amount) },\n    };\n\n    const message: ClientRequest = {\n      id: requestId,\n      data: { NewSwapQuoteStream: normalized },\n    };\n    this.send(message);\n\n    return promise;\n  }\n\n  public stopStream(streamId: number): Promise<StopStreamResponse> {\n    const requestId = this.nextRequestId();\n\n    const promise = new Promise<StopStreamResponse>((resolve, reject) => {\n      this.pending.set(requestId, {\n        resolve: resolve as Resolver<unknown>,\n        reject,\n        kind: \"StopStream\",\n      });\n    });\n\n    const message: ClientRequest = {\n      id: requestId,\n      data: { StopStream: { id: streamId } },\n    };\n    this.send(message);\n\n    return promise;\n  }\n\n  // --- Send ---\n\n  private send(message: ClientRequest): void {\n    try {\n      const encoded = encoder.encode(message);\n      this.socket.send(encoded);\n    } catch (err) {\n      const req = this.pending.get(message.id);\n      if (req) {\n        this.pending.delete(message.id);\n        req.reject(err);\n      }\n    }\n  }\n\n  // --- Message handling ---\n\n  private handleMessage(raw: WebSocket.RawData): void {\n    let buf: Uint8Array;\n    if (raw instanceof ArrayBuffer) {\n      buf = new Uint8Array(raw);\n    } else if (Buffer.isBuffer(raw)) {\n      buf = new Uint8Array(raw.buffer, raw.byteOffset, raw.byteLength);\n    } else if (Array.isArray(raw)) {\n      buf = new Uint8Array(Buffer.concat(raw));\n    } else {\n      return;\n    }\n\n    let message: ServerMessage;\n    try {\n      message = decoder.decode(buf) as ServerMessage;\n    } catch {\n      this.socket.close(3002, \"failed to decode message\");\n      return;\n    }\n\n    if (\"Response\" in message) {\n      this.handleResponse(message.Response);\n    } else if (\"Error\" in message) {\n      this.handleResponseError(message.Error);\n    } else if (\"StreamData\" in message) {\n      this.handleStreamData(message.StreamData);\n    } else if (\"StreamEnd\" in message) {\n      this.handleStreamEnd(message.StreamEnd);\n    }\n  }\n\n  private handleResponse(msg: ResponseSuccess): void {\n    const req = this.pending.get(msg.requestId);\n    if (!req) return;\n    this.pending.delete(msg.requestId);\n\n    if (\"NewSwapQuoteStream\" in msg.data && req.kind === \"NewSwapQuoteStream\") {\n      const streamInfo = msg.stream;\n      if (!streamInfo) {\n        req.reject(new Error(\"No stream associated with NewSwapQuoteStream response\"));\n        return;\n      }\n      const stream = new ReadableStream<SwapQuotes>({\n        start: (controller) => {\n          this.streams.set(streamInfo.id, controller);\n        },\n        cancel: () => {\n          return this.cancelStream(streamInfo.id);\n        },\n      });\n      const result: ResponseWithStream<QuoteSwapStreamResponse, SwapQuotes> = {\n        response: msg.data.NewSwapQuoteStream,\n        stream,\n        streamId: streamInfo.id,\n      };\n      req.resolve(result);\n    } else if (\"StreamStopped\" in msg.data && req.kind === \"StopStream\") {\n      req.resolve(msg.data.StreamStopped);\n    } else {\n      req.reject(new Error(`Unexpected response type for ${req.kind}`));\n    }\n  }\n\n  private handleResponseError(error: ResponseError): void {\n    const req = this.pending.get(error.requestId);\n    if (!req) return;\n    this.pending.delete(error.requestId);\n    req.reject(new ErrorResponse(error));\n  }\n\n  private handleStreamData(packet: StreamData): void {\n    const controller = this.streams.get(packet.id);\n    if (!controller) return;\n    if (packet.payload.SwapQuotes !== undefined) {\n      controller.enqueue(packet.payload.SwapQuotes);\n    }\n  }\n\n  private handleStreamEnd(packet: StreamEnd): void {\n    const controller = this.streams.get(packet.id);\n    if (!controller) return;\n    this.streams.delete(packet.id);\n    this.streamStopping.delete(packet.id);\n\n    if (packet.errorCode !== undefined) {\n      controller.error(new StreamError(packet));\n    } else {\n      controller.close();\n    }\n  }\n\n  private async cancelStream(streamId: number): Promise<void> {\n    if (this.streamStopping.get(streamId) || !this.streams.has(streamId)) return;\n    this.streamStopping.set(streamId, true);\n    await this.stopStream(streamId);\n  }\n\n  // --- Connection lifecycle ---\n\n  private rejectAll(error: Error): void {\n    for (const req of this.pending.values()) {\n      req.reject(error);\n    }\n    this.pending.clear();\n    for (const controller of this.streams.values()) {\n      controller.error(error);\n    }\n    this.streams.clear();\n    this.streamStopping.clear();\n  }\n\n  private handleClose(code: number, reason: string): void {\n    this._closed = true;\n    this.rejectAll(new ConnectionClosed(code, reason));\n    for (const listener of this.closeListeners) {\n      listener.resolve();\n    }\n    this.closeListeners = [];\n  }\n\n  private handleError(err: Error): void {\n    this.rejectAll(err);\n    this.socket.close(3002);\n  }\n}\n","// Vendored Titan protocol types — cherry-picked from @titanexchange/sdk-ts\n// Source: https://github.com/Titan-Pathfinder/titan-sdk-ts (MIT)\n\n// --- Common types ---\n\n/** A Solana account public key, encoded as 32 bytes by msgpack. */\nexport type Pubkey = Uint8Array;\n\n/** Solana account metadata for an instruction. */\nexport interface AccountMeta {\n  /** Public key for the account. */\n  p: Pubkey;\n  /** Whether the account is a signer. */\n  s: boolean;\n  /** Whether the account is writable. */\n  w: boolean;\n}\n\n/** A single instruction to be executed as part of a transaction. */\nexport interface Instruction {\n  /** Program id. */\n  p: Pubkey;\n  /** Account metadata. */\n  a: AccountMeta[];\n  /** Instruction data. */\n  d: Uint8Array;\n}\n\n/** An address lookup table referenced by a transaction template (key + inner addresses). */\nexport interface TransactionTemplateLut {\n  /** ALT account address. */\n  p: Pubkey;\n  /** Addresses stored inside the ALT, in order. */\n  a: Pubkey[];\n}\n\n/**\n * Footprint of the instructions/ALTs surrounding the swap, so the router sizes\n * routes to fit alongside them. Wire format uses single-letter fields: `i`\n * instructions, `a` ALTs, `m` extra account metas. See the gateway helper\n * `buildTitanTemplate`. Over the WebSocket this is sent as a native msgpack\n * object (no base64) — unlike the gateway GET there is no URL-length limit, so\n * large ALTs are fine.\n */\nexport interface TransactionTemplate {\n  i: Instruction[];\n  a: TransactionTemplateLut[];\n  m: AccountMeta[];\n}\n\nexport enum SwapMode {\n  ExactIn = \"ExactIn\",\n  ExactOut = \"ExactOut\",\n}\n\n// --- Client request types ---\n\nexport type Uint64 = number | bigint;\n\nexport interface ClientRequest {\n  id: number;\n  data: RequestData;\n}\n\nexport type RequestData =\n  | { NewSwapQuoteStream: SwapQuoteRequest }\n  | { StopStream: StopStreamRequest };\n\nexport interface SwapQuoteRequest {\n  swap: SwapParams;\n  transaction: TransactionParams;\n  update?: QuoteUpdateParams;\n}\n\nexport interface SwapParams {\n  inputMint: Pubkey;\n  outputMint: Pubkey;\n  amount: Uint64;\n  swapMode?: SwapMode;\n  slippageBps?: number;\n  dexes?: string[];\n  excludeDexes?: string[];\n  /**\n   * Exclude the server-configured \"vote account\" venues from routing. Those venues touch validator\n   * vote accounts, which Jito refuses to bundle — so a swap that routes through them can't land inside\n   * our flashloan/double-hop Jito bundles. Set `true` for bundled flows. Available since Titan v1.6.\n   */\n  noVoteAccounts?: boolean;\n  onlyDirectRoutes?: boolean;\n  addSizeConstraint?: boolean;\n  sizeConstraint?: number;\n  providers?: string[];\n  /** Limit total number of accounts used by routes. Default: 256. Available since v1.1. */\n  accountsLimitTotal?: number;\n  /** Limit writable accounts used by routes. Default: 64. Available since v1.1. */\n  accountsLimitWritable?: number;\n  /**\n   * Reserve room for the surrounding (non-swap) instructions + ALTs so the\n   * router sizes routes to fit. Mutually exclusive with `sizeConstraint` /\n   * `accountsLimitTotal` / `accountsLimitWritable`. Available since v1.2.\n   */\n  transactionTemplate?: TransactionTemplate;\n}\n\nexport interface TransactionParams {\n  userPublicKey: Pubkey;\n  closeInputTokenAccount?: boolean;\n  createOutputTokenAccount?: boolean;\n  feeAccount?: Pubkey;\n  feeBps?: number;\n  feeFromInputMint?: boolean;\n  outputAccount?: Pubkey;\n  titanSwapVersion?: SwapVersion;\n  /**\n   * `true` leaves a wSOL output as wrapped SOL (the wSOL SPL token) instead of\n   * unwrapping it to native lamports. Default `false`. Only has an effect when\n   * `outputMint == wSOL`; ignored otherwise. Requires `titanSwapVersion=3`.\n   */\n  outputWsol?: boolean;\n}\n\nexport enum SwapVersion {\n  V2 = 2,\n  V3 = 3,\n}\n\nexport interface QuoteUpdateParams {\n  intervalMs?: Uint64;\n  num_quotes: number;\n}\n\nexport interface StopStreamRequest {\n  id: number;\n}\n\n// --- Server message types ---\n\nexport type ServerMessage =\n  | { Response: ResponseSuccess }\n  | { Error: ResponseError }\n  | { StreamData: StreamData }\n  | { StreamEnd: StreamEnd };\n\nexport type ResponseData =\n  | { NewSwapQuoteStream: QuoteSwapStreamResponse }\n  | { StreamStopped: StopStreamResponse };\n\nexport interface StreamStart {\n  id: number;\n  dataType: string;\n}\n\nexport interface ResponseSuccess {\n  requestId: number;\n  data: ResponseData;\n  stream?: StreamStart;\n}\n\nexport interface ResponseError {\n  requestId: number;\n  code: number;\n  message: string;\n}\n\nexport type StreamDataPayload = { SwapQuotes: SwapQuotes };\n\nexport interface StreamData {\n  id: number;\n  seq: number;\n  payload: StreamDataPayload;\n}\n\nexport interface StreamEnd {\n  id: number;\n  errorCode?: number;\n  errorMessage?: string;\n}\n\nexport interface QuoteSwapStreamResponse {\n  intervalMs: number;\n}\n\nexport interface StopStreamResponse {\n  id: number;\n}\n\n// --- Quote / Route types ---\n\nexport interface SwapQuotes {\n  id: string;\n  inputMint: Uint8Array;\n  outputMint: Uint8Array;\n  swapMode: SwapMode;\n  amount: number;\n  quotes: { [key: string]: SwapRoute };\n  /** Present when DART is enabled; names the route Titan recommends. */\n  metadata?: { ExpectedWinner?: string };\n}\n\nexport interface SwapRoute {\n  inAmount: number;\n  outAmount: number;\n  slippageBps: number;\n  platformFee?: PlatformFee;\n  steps: RoutePlanStep[];\n  instructions: Instruction[];\n  addressLookupTables: Pubkey[];\n  contextSlot?: number;\n  timeTaken?: number;\n  expiresAtMs?: number;\n  expiresAfterSlot?: number;\n  computeUnits?: number;\n  computeUnitsSafe?: number;\n  transaction?: Uint8Array;\n  referenceId?: string;\n}\n\nexport interface PlatformFee {\n  amount: number;\n  fee_bps: number;\n}\n\nexport interface RoutePlanStep {\n  ammKey: Uint8Array;\n  label: string;\n  inputMint: Uint8Array;\n  outputMint: Uint8Array;\n  inAmount: number;\n  outAmount: number;\n  allocPpb: number;\n  feeMint?: Uint8Array;\n  feeAmount?: number;\n  contextSlot?: number;\n}\n","// Shared Titan proxy response helpers — used by both SDK and web app\n// to deserialize, select, and build results from the HTTP proxy's\n// base64-serialized responses.\n\nimport {\n  AddressLookupTableAccount,\n  Connection,\n  PublicKey,\n  TransactionInstruction,\n} from \"@solana/web3.js\";\n\n// --- Serialized (base64) types from the HTTP proxy ---\n\nexport interface SerializedInstruction {\n  p: string; // base64 program id\n  a: { p: string; s: boolean; w: boolean }[]; // base64 accounts\n  d: string; // base64 data\n}\n\nexport interface SerializedSwapRoute {\n  inAmount: number;\n  outAmount: number;\n  slippageBps: number;\n  platformFee?: { amount: number; fee_bps: number };\n  instructions: SerializedInstruction[];\n  addressLookupTables: string[]; // base64 encoded pubkeys\n  contextSlot?: number;\n  timeTaken?: number;\n}\n\nexport interface TitanProxySwapQuoteResponse {\n  quotes: { [providerId: string]: SerializedSwapRoute };\n  inputMint: string; // base64\n  outputMint: string; // base64\n  swapMode: string;\n  amount: number;\n}\n\nexport interface TitanProxyExactOutResponse {\n  inAmount: number;\n  outAmount: number;\n  otherAmountThreshold: string;\n  slippageBps: number;\n}\n\n// --- Deserialization ---\n\n/**\n * Titan's router stamps a read-only `jitodontfront…` MEV-guard account onto the\n * swap instruction. Jito refuses to bundle any transaction that touches a `jito*`\n * marker, so we drop it to keep the swap landable inside a Jito bundle (our\n * flashloan swaps are bundled).\n */\nexport const isJitoDontFront = (pubkey: PublicKey) =>\n  pubkey.toBase58().startsWith(\"jitodontfront\");\n\nexport function deserializeSerializedInstruction(\n  ix: SerializedInstruction,\n): TransactionInstruction {\n  return new TransactionInstruction({\n    programId: new PublicKey(Buffer.from(ix.p, \"base64\")),\n    keys: ix.a\n      .map((account) => ({\n        pubkey: new PublicKey(Buffer.from(account.p, \"base64\")),\n        isSigner: account.s,\n        isWritable: account.w,\n      }))\n      .filter((key) => !isJitoDontFront(key.pubkey)),\n    data: Buffer.from(ix.d, \"base64\"),\n  });\n}\n\n// --- Route selection ---\n\nexport function selectBestRoute<T extends { inAmount: number; outAmount: number }>(\n  quotes: { [id: string]: T },\n  swapMode: \"ExactIn\" | \"ExactOut\",\n): T | null {\n  const routes = Object.values(quotes);\n  if (routes.length === 0) return null;\n  return routes.reduce((best, route) => {\n    if (swapMode === \"ExactIn\") {\n      return route.outAmount > best.outAmount ? route : best;\n    } else {\n      return route.inAmount < best.inAmount ? route : best;\n    }\n  });\n}\n\n// --- Quote result builder ---\n\nexport interface TitanSwapQuoteResult {\n  inAmount: string;\n  outAmount: string;\n  otherAmountThreshold: string;\n  slippageBps: number;\n  platformFee?: { amount: string; feeBps: number };\n  contextSlot?: number;\n  timeTaken?: number;\n}\n\nexport function buildSwapQuoteResult(\n  route: {\n    inAmount: number | bigint;\n    outAmount: number | bigint;\n    slippageBps: number;\n    platformFee?: { amount: number | bigint; fee_bps: number };\n    contextSlot?: number;\n    timeTaken?: number;\n  },\n  swapMode: \"ExactIn\" | \"ExactOut\",\n): TitanSwapQuoteResult {\n  const slippageBps = route.slippageBps;\n  // The WebSocket/protobuf path decodes int64 amounts as BigInt; token amounts fit safely in a\n  // JS number, so coerce for the slippage float math (BigInt × number throws).\n  const outAmount = Number(route.outAmount);\n  const inAmount = Number(route.inAmount);\n\n  let otherAmountThreshold: string;\n  if (swapMode === \"ExactIn\") {\n    otherAmountThreshold = String(Math.floor(outAmount * (1 - slippageBps / 10000)));\n  } else {\n    otherAmountThreshold = String(Math.ceil(inAmount * (1 + slippageBps / 10000)));\n  }\n\n  return {\n    inAmount: String(route.inAmount),\n    outAmount: String(route.outAmount),\n    otherAmountThreshold,\n    slippageBps,\n    platformFee: route.platformFee\n      ? {\n          amount: String(route.platformFee.amount),\n          feeBps: route.platformFee.fee_bps,\n        }\n      : undefined,\n    contextSlot: route.contextSlot,\n    timeTaken: route.timeTaken,\n  };\n}\n\n// --- LUT resolution ---\n\nexport async function resolveLookupTables(\n  connection: Connection,\n  lutPubkeys: PublicKey[],\n): Promise<AddressLookupTableAccount[]> {\n  if (lutPubkeys.length === 0) return [];\n\n  const lutAccountsRaw = await connection.getMultipleAccountsInfo(lutPubkeys);\n\n  return lutAccountsRaw\n    .map((accountInfo, index) => {\n      if (!accountInfo) return null;\n      return new AddressLookupTableAccount({\n        key: lutPubkeys[index],\n        state: AddressLookupTableAccount.deserialize(accountInfo.data),\n      });\n    })\n    .filter((account): account is AddressLookupTableAccount => account !== null);\n}\n","// Titan Swap V3 gateway (REST) helpers.\n//\n// Unlike the legacy HTTP proxy path (which posts JSON to an app-side proxy that\n// translates to/from msgpack), this talks to the Titan gateway directly using\n// the msgpack wire protocol. It is meant to run server-side where the Titan API\n// key is available. V3 (`titanSwapVersion: 3`) + `transactionTemplate` let the\n// router size routes against the footprint of the rest of the transaction.\n//\n// Docs: developer-doc/swap-api/guides/transaction-template\n//       developer-doc/swap-api/reference/gateway/gateway-quote-swap\n\nimport { Encoder, decode } from \"@msgpack/msgpack\";\nimport { AddressLookupTableAccount, PublicKey, TransactionInstruction } from \"@solana/web3.js\";\n\nimport { isJitoDontFront } from \"./helpers\";\nimport type { Instruction as TitanWireInstruction, SwapRoute } from \"./types\";\n\nconst msgpackEncoder = new Encoder({ useBigInt64: true });\n\n// --- Transaction template (wire format) ---\n//\n// Single-letter field names, raw bytes for pubkeys + instruction data. See the\n// \"Transaction Template\" guide. `i` = instructions sharing the tx, `a` = ALTs\n// already referenced (order is load-bearing), `m` = extra account metas.\n\nexport interface TitanTemplateLut {\n  /** ALT account address (32 raw bytes). */\n  p: Uint8Array;\n  /** Addresses stored inside the ALT, in order (32 raw bytes each). */\n  a: Uint8Array[];\n}\n\nexport interface TitanTransactionTemplate {\n  i: TitanWireInstruction[];\n  a: TitanTemplateLut[];\n  m: { p: Uint8Array; s: boolean; w: boolean }[];\n}\n\n/** Convert a web3.js instruction into Titan wire format (raw bytes). */\nexport function instructionToTitanWire(ix: TransactionInstruction): TitanWireInstruction {\n  return {\n    p: ix.programId.toBytes(),\n    a: ix.keys.map((k) => ({\n      p: k.pubkey.toBytes(),\n      s: k.isSigner,\n      w: k.isWritable,\n    })),\n    d: Uint8Array.from(ix.data),\n  };\n}\n\n/** Convert a web3.js ALT into Titan wire format (key + inner addresses). */\nexport function lutToTitanWire(lut: AddressLookupTableAccount): TitanTemplateLut {\n  return {\n    p: lut.key.toBytes(),\n    a: lut.state.addresses.map((a) => a.toBytes()),\n  };\n}\n\n/**\n * Build a Titan `transactionTemplate` from the surrounding (non-swap) footprint.\n * ALT order is preserved — pass them in the order the final message will use.\n */\nexport function buildTitanTemplate(footprint: {\n  instructions: TransactionInstruction[];\n  luts: AddressLookupTableAccount[];\n  extraAccountMetas?: { pubkey: PublicKey; isSigner: boolean; isWritable: boolean }[];\n}): TitanTransactionTemplate {\n  return {\n    i: footprint.instructions.map(instructionToTitanWire),\n    a: footprint.luts.map(lutToTitanWire),\n    m: (footprint.extraAccountMetas ?? []).map((m) => ({\n      p: m.pubkey.toBytes(),\n      s: m.isSigner,\n      w: m.isWritable,\n    })),\n  };\n}\n\n/** msgpack-encode then base64 a template for the gateway query string. */\nexport function encodeTitanTemplate(template: TitanTransactionTemplate): string {\n  return Buffer.from(msgpackEncoder.encode(template)).toString(\"base64\");\n}\n\n// --- Gateway quote/swap (V3) ---\n\nexport interface TitanGatewayQuoteParams {\n  /** Gateway base path, e.g. `https://<host>/api/v1`. `/quote/swap` is appended. */\n  basePath: string;\n  apiKey?: string;\n  headers?: Record<string, string>;\n\n  inputMint: string;\n  outputMint: string;\n  amount: number;\n  userPublicKey: string;\n  outputAccount: string;\n  slippageBps?: number;\n  swapMode?: \"ExactIn\" | \"ExactOut\";\n  dexes?: string[];\n  excludeDexes?: string[];\n  onlyDirectRoutes?: boolean;\n  /** Allowlist of quote providers by id. The gateway has no exclude-list, so to\n   *  drop a provider (e.g. Titan-DART) we list the ones we want. */\n  providers?: string[];\n\n  /** msgpack+base64 template. Mutually exclusive with the size/account limits\n   *  below. Note: sent as a query-string value, so a template that embeds large\n   *  ALTs can exceed the gateway's URI limit (414) — prefer the numeric limits\n   *  for flashloan footprints that reference big lookup tables. */\n  transactionTemplate?: string;\n\n  /** Numeric sizing (small query params; safe for LUT-heavy footprints). */\n  addSizeConstraint?: boolean;\n  sizeConstraint?: number;\n  accountsLimitTotal?: number;\n  accountsLimitWritable?: number;\n\n  feeBps?: number;\n  feeAccount?: string;\n}\n\nexport interface TitanGatewayQuoteResponse {\n  quotes: { [id: string]: SwapRoute };\n  metadata?: { ExpectedWinner?: string };\n}\n\n/**\n * Fetch a V3 quote/swap from the Titan gateway and return the best route.\n * Honors the gateway's `ExpectedWinner` when present, otherwise falls back to\n * `selectBestRoute` semantics (max out for ExactIn, min in for ExactOut).\n */\nexport async function fetchTitanQuoteSwapV3(\n  params: TitanGatewayQuoteParams\n): Promise<{ route: SwapRoute; raw: TitanGatewayQuoteResponse }> {\n  const {\n    basePath,\n    apiKey,\n    headers,\n    inputMint,\n    outputMint,\n    amount,\n    userPublicKey,\n    outputAccount,\n    slippageBps,\n    swapMode,\n    dexes,\n    excludeDexes,\n    onlyDirectRoutes,\n    providers,\n    transactionTemplate,\n    addSizeConstraint,\n    sizeConstraint,\n    accountsLimitTotal,\n    accountsLimitWritable,\n    feeBps,\n    feeAccount,\n  } = params;\n\n  const query = new URLSearchParams({\n    inputMint,\n    outputMint,\n    amount: String(amount),\n    userPublicKey,\n    outputAccount,\n    titanSwapVersion: \"3\",\n    simulate: \"false\",\n  });\n  if (slippageBps !== undefined) query.set(\"slippageBps\", String(slippageBps));\n  if (swapMode) query.set(\"swapMode\", swapMode);\n  if (dexes?.length) query.set(\"dexes\", dexes.join(\",\"));\n  if (excludeDexes?.length) query.set(\"excludeDexes\", excludeDexes.join(\",\"));\n  if (providers?.length) query.set(\"providers\", providers.join(\",\"));\n  if (onlyDirectRoutes) query.set(\"onlyDirectRoutes\", \"true\");\n  if (transactionTemplate) {\n    query.set(\"transactionTemplate\", transactionTemplate);\n  } else {\n    // Numeric sizing (mutually exclusive with the template).\n    if (addSizeConstraint) query.set(\"addSizeConstraint\", \"true\");\n    if (sizeConstraint !== undefined) query.set(\"sizeConstraint\", String(sizeConstraint));\n    if (accountsLimitTotal !== undefined) {\n      query.set(\"accountsLimitTotal\", String(accountsLimitTotal));\n    }\n    if (accountsLimitWritable !== undefined) {\n      query.set(\"accountsLimitWritable\", String(accountsLimitWritable));\n    }\n  }\n  if (feeBps !== undefined && feeAccount) {\n    query.set(\"feeBps\", String(feeBps));\n    query.set(\"feeAccount\", feeAccount);\n  }\n\n  const response = await fetch(`${basePath}/quote/swap?${query.toString()}`, {\n    method: \"GET\",\n    headers: {\n      Accept: \"application/vnd.msgpack\",\n      ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n      ...(headers ?? {}),\n    },\n  });\n\n  if (!response.ok) {\n    const text = await response.text().catch(() => \"\");\n    throw new Error(`Titan gateway error (${response.status}): ${text || response.statusText}`);\n  }\n\n  // The gateway occasionally returns a truncated / non-msgpack body (e.g. an\n  // empty \"no route\" response); decode it defensively so callers get a clean\n  // error instead of an opaque msgpack RangeError.\n  let raw: TitanGatewayQuoteResponse;\n  try {\n    raw = decode(new Uint8Array(await response.arrayBuffer())) as TitanGatewayQuoteResponse;\n  } catch {\n    throw new Error(\n      `Titan gateway returned an undecodable response for ${inputMint} -> ${outputMint}`\n    );\n  }\n\n  const route = selectGatewayRoute(raw, swapMode ?? \"ExactIn\");\n  if (!route) {\n    throw new Error(`No Titan V3 route found for ${inputMint} -> ${outputMint}`);\n  }\n  return { route, raw };\n}\n\n/**\n * A route is only usable if it quotes a real amount. Titan occasionally returns\n * a single `Titan-DART` (RFQ / private-swap) route that quotes `outAmount: 0` —\n * DART settles via a separate auction/signature and isn't composable inside a\n * flashloan, so we treat zero-amount routes as non-viable.\n */\nfunction isViableRoute(route: SwapRoute, swapMode: \"ExactIn\" | \"ExactOut\"): boolean {\n  return swapMode === \"ExactIn\" ? route.outAmount > 0 : route.inAmount > 0;\n}\n\n/**\n * Pick the best usable route from a quotes map, honoring Titan's\n * `ExpectedWinner` when present and skipping non-viable (zero-amount) routes.\n * Shared by the gateway REST path and the WebSocket adapter.\n */\nexport function selectGatewayRoute(\n  raw: TitanGatewayQuoteResponse,\n  swapMode: \"ExactIn\" | \"ExactOut\"\n): SwapRoute | null {\n  const viable = Object.values(raw.quotes ?? {}).filter((r) => isViableRoute(r, swapMode));\n  if (viable.length === 0) return null;\n\n  // Honor Titan's recommended winner only when it is itself a viable route.\n  const winnerId = raw.metadata?.ExpectedWinner;\n  if (winnerId) {\n    const winner = raw.quotes[winnerId];\n    if (winner && isViableRoute(winner, swapMode)) return winner;\n  }\n\n  return viable.reduce((best, route) =>\n    swapMode === \"ExactIn\"\n      ? route.outAmount > best.outAmount\n        ? route\n        : best\n      : route.inAmount < best.inAmount\n        ? route\n        : best\n  );\n}\n\n/** Deserialize a Titan wire instruction (raw bytes) into a web3.js instruction. */\nexport function deserializeTitanWireInstruction(ix: TitanWireInstruction): TransactionInstruction {\n  return new TransactionInstruction({\n    programId: new PublicKey(ix.p),\n    keys: ix.a\n      .map((account) => ({\n        pubkey: new PublicKey(account.p),\n        isSigner: account.s,\n        isWritable: account.w,\n      }))\n      .filter((key) => !isJitoDontFront(key.pubkey)),\n    data: Buffer.from(ix.d),\n  });\n}\n","import {\n  AccountMeta,\n  AddressLookupTableAccount,\n  Connection,\n  PublicKey,\n} from \"@solana/web3.js\";\n\nimport { ExponentCpiInterfaceContext } from \"./market.types\";\n\n/**\n * The SY-program CPI account lists a CLMM `trade_pt` appends as remaining accounts.\n * Order (from the SDK's `ixTradePt`): `getSyState` ++ `getPositionState` ++ `depositSy`\n * ++ `withdrawSy`, then de-duplicated. Each is referenced by an index into the market's\n * address lookup table.\n */\nexport interface ExponentMarketThreeCpiAccounts {\n  getSyState: ExponentCpiInterfaceContext[];\n  getPositionState: ExponentCpiInterfaceContext[];\n  depositSy: ExponentCpiInterfaceContext[];\n  withdrawSy: ExponentCpiInterfaceContext[];\n}\n\n/** The subset of an Exponent `MarketThree` (CLMM) pool account that `trade_pt` needs. */\nexport interface ExponentMarketThree {\n  /** The pool's own address (`self_address` / the account key). */\n  selfAddress: PublicKey;\n  mintPt: PublicKey;\n  mintSy: PublicKey;\n  vault: PublicKey;\n  /** The single `ticks` account holding the pool's tick tree (not per-tick-array accounts). */\n  ticks: PublicKey;\n  /** Pool PT liquidity escrow (`token_pt_escrow`). */\n  tokenPtEscrow: PublicKey;\n  /** Pool SY liquidity escrow (`token_sy_escrow`). */\n  tokenSyEscrow: PublicKey;\n  /** SY account holding treasury fees (`token_fee_treasury_sy`). */\n  tokenFeeTreasurySy: PublicKey;\n  /** PT account holding treasury fees (`token_fee_treasury_pt`). */\n  tokenFeeTreasuryPt: PublicKey;\n  addressLookupTable: PublicKey;\n  syProgram: PublicKey;\n  statusFlags: number;\n  /** SY-program CPI account lists, referenced by ALT index. */\n  cpiAccounts: ExponentMarketThreeCpiAccounts;\n}\n\n/**\n * `SwapDirection` arg of the CLMM `trade_pt` instruction (a `u8`). `SyToPt` buys PT with\n * SY (the roll's buy leg); `PtToSy` sells PT for SY.\n */\nexport enum ExponentSwapDirection {\n  PtToSy = 0,\n  SyToPt = 1,\n}\n\n/**\n * Accounts required by the CLMM `trade_pt`. The first 14 are the fixed\n * `#[derive(Accounts)]` accounts; `remainingAccounts` are the SY-program CPI accounts\n * (already resolved from the market ALT and de-duplicated).\n */\nexport interface ExponentClmmTradePtAccounts {\n  /** Trader / signer (the marginfi account authority). */\n  trader: PublicKey;\n  /** The `MarketThree` (CLMM pool) address. */\n  market: PublicKey;\n  /** The pool's `ticks` account. */\n  ticks: PublicKey;\n  /** Trader's SY token account (source of the SY spent buying PT). */\n  tokenSyTrader: PublicKey;\n  /** Trader's PT token account (destination of the bought PT). */\n  tokenPtTrader: PublicKey;\n  /** `MarketThree.token_sy_escrow`. */\n  tokenSyEscrow: PublicKey;\n  /** `MarketThree.token_pt_escrow`. */\n  tokenPtEscrow: PublicKey;\n  /** `MarketThree.address_lookup_table`. */\n  addressLookupTable: PublicKey;\n  /** `MarketThree.sy_program`. */\n  syProgram: PublicKey;\n  /** `MarketThree.token_fee_treasury_sy`. */\n  tokenFeeTreasurySy: PublicKey;\n  /** `MarketThree.token_fee_treasury_pt`. */\n  tokenFeeTreasuryPt: PublicKey;\n  /** SPL token program for the PT/SY mints (defaults to the classic Token program). */\n  tokenProgram?: PublicKey;\n  /**\n   * SY-program CPI accounts (`getSyState` ++ `getPositionState` ++ `depositSy` ++\n   * `withdrawSy`, de-duplicated), pubkeys already resolved from the market ALT. Appended\n   * after the 14 fixed accounts.\n   */\n  remainingAccounts: AccountMeta[];\n}\n\nexport interface ResolveExponentClmmTradePtContextParams {\n  connection: Connection;\n  /** Trader / signer (the marginfi account authority). */\n  owner: PublicKey;\n  /** The successor maturity's `MarketThree` (CLMM pool) where the new PT trades. */\n  market: PublicKey;\n  /** Token program for the PT mint (Exponent uses the classic Token program). */\n  ptTokenProgram?: PublicKey;\n  /** Token program for the SY mint. Defaults to classic Token. */\n  syTokenProgram?: PublicKey;\n}\n\n/**\n * Resolved inputs for a native CLMM `trade_pt` (SY → PT) on an Exponent `MarketThree`:\n * the fully-resolved `trade_pt` accounts (including the ALT-derived SY-CPI remaining\n * accounts), the market ALT to add to the transaction's lookup tables, and the SY/PT\n * token info. Feed `tradePtAccounts` + `addressLookupTable` into the roll's buy leg.\n */\nexport interface ExponentClmmTradePtContext {\n  marketAddress: PublicKey;\n  market: ExponentMarketThree;\n  tradePtAccounts: ExponentClmmTradePtAccounts;\n  /** The market's address lookup table account — must be carried by the transaction. */\n  addressLookupTable: AddressLookupTableAccount;\n  sy: { mint: PublicKey; decimals: number; tokenProgram: PublicKey };\n  pt: { mint: PublicKey; decimals: number; tokenProgram: PublicKey };\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\n/**\n * Exponent Finance program IDs (mainnet), taken from the official SDK's\n * `@exponent-labs/exponent-sdk` `environment.js`.\n *\n * The **core** program owns the `Vault` / `MarketTwo` accounts and runs the PT\n * instructions (`merge`, `strip`, `trade_pt`, …). It is `ExponentnaRg…` — the same key as\n * the repo's `declare_id!`. (An earlier version of this file mislabelled `declare_id!` as a\n * localnet-only key and used the **generic SY** program `XP1BRLn8…` as \"core\"; that is\n * wrong — `XP1BRLn8…` is one of the per-flavor SY programs, and a `merge`/`trade_pt` sent\n * to it fails because it does not own the core-owned `Vault`/`MarketTwo` accounts. Verified\n * on mainnet: vault `78MLjM…` is owned by `ExponentnaRg…`.)\n *\n * Instruction encoding/accounts come from the committed IDL (`idl/exponent_core.json`).\n */\nexport const EXPONENT_CORE_PROGRAM_ID = new PublicKey(\n  \"ExponentnaRg3CQbW6dqQNZKXp7gtZ9DGMp1cwC4HAS7\"\n);\n\n/** CLMM (`MarketThree`) program — concentrated-liquidity PT/YT trading. */\nexport const EXPONENT_CLMM_PROGRAM_ID = new PublicKey(\n  \"XPC1MM4dYACDfykNuXYZ5una2DsMDWL24CrYubCvarC\"\n);\n\n/** Orderbook program — limit-order PT/YT trading. */\nexport const EXPONENT_ORDERBOOK_PROGRAM_ID = new PublicKey(\n  \"XPBookgQTN2p8Yw1C2La35XkPMmZTCEYH77AdReVvK1\"\n);\n\n/** Strategy-vaults program. */\nexport const EXPONENT_VAULTS_PROGRAM_ID = new PublicKey(\n  \"sVau1tXvayVWfotzm9Ahcv2qfnnfRWttt78BCnNC6dD\"\n);\n\n/**\n * Per-flavor SY programs. A `Vault.sy_program` is one of these; `merge`/`trade_pt` carry it\n * as the `sy_program` account (and CPI into it to value SY). bulkSOL uses the **generic**\n * flavor (`XP1BRLn8…`).\n */\nexport const EXPONENT_GENERIC_SY_PROGRAM_ID = new PublicKey(\n  \"XP1BRLn8eCYSygrd8er5P4GKdzqKbC3DLoSsS5UYVZy\"\n);\nexport const EXPONENT_MARGINFI_SY_PROGRAM_ID = new PublicKey(\n  \"XPMfipyhcbq3DBvgvxkbZY7GekwmGNJLMD3wdiCkBc7\"\n);\nexport const EXPONENT_KAMINO_SY_PROGRAM_ID = new PublicKey(\n  \"XPK1ndTK1xrgRg99ifvdPP1exrx8D1mRXTuxBkkroCx\"\n);\nexport const EXPONENT_JITO_RESTAKING_SY_PROGRAM_ID = new PublicKey(\n  \"XPJitopeUEhMZVF72CvswnwrS2U2akQvk5s26aEfWv2\"\n);\nexport const EXPONENT_PERENA_SY_PROGRAM_ID = new PublicKey(\n  \"XPerenaJPyvnjseLCn7rgzxFEum6zX1k89C13SPTyGZ\"\n);\n\n/** Anchor event-CPI authority seed. */\nexport const EXPONENT_EVENT_AUTHORITY_SEED = \"__event_authority\";\n","{\n    \"address\": \"XPC1MM4dYACDfykNuXYZ5una2DsMDWL24CrYubCvarC\",\n    \"metadata\": {\n        \"name\": \"exponent_clmm\",\n        \"version\": \"0.1.0\",\n        \"spec\": \"0.1.0\",\n        \"description\": \"Created with Anchor\"\n    },\n    \"instructions\": [\n        {\n            \"name\": \"add_farm\",\n            \"discriminator\": [\n                7\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"signer\",\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"fee_payer\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"mint_new\"\n                },\n                {\n                    \"name\": \"token_source\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_farm\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"token_rate\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"until_timestamp\",\n                    \"type\": \"u32\"\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"AddFarmEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"add_liquidity\",\n            \"discriminator\": [\n                25\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"owner\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_src\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_src\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\",\n                    \"docs\": [\n                        \"Address lookup table for vault\"\n                    ]\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"instructions_sysvar\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"rent\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"max_sy_in_to_add\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"max_pt_in_to_add\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"lower_tick_key_optional\",\n                    \"type\": {\n                        \"option\": \"u32\"\n                    }\n                },\n                {\n                    \"name\": \"upper_tick_key_optional\",\n                    \"type\": {\n                        \"option\": \"u32\"\n                    }\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"DepositLiquidityReturnData\"\n                }\n            }\n        },\n        {\n            \"name\": \"add_market_emission\",\n            \"discriminator\": [\n                8\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"signer\",\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"fee_payer\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"mint_new\"\n                },\n                {\n                    \"name\": \"token_emission\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"system_program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"cpi_accounts\",\n                    \"type\": {\n                        \"defined\": {\n                            \"name\": \"CpiAccounts\"\n                        }\n                    }\n                }\n            ]\n        },\n        {\n            \"name\": \"buy_pt\",\n            \"discriminator\": [\n                14\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"buyer\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"min_pt_amount\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"base_amount\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"price_spot_limit\",\n                    \"type\": {\n                        \"option\": \"f64\"\n                    }\n                },\n                {\n                    \"name\": \"mint_sy_rem_accounts_until\",\n                    \"type\": \"u8\"\n                }\n            ]\n        },\n        {\n            \"name\": \"buy_yt\",\n            \"discriminator\": [\n                12\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"trader\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_trader\",\n                    \"docs\": [\n                        \"Source account for the trader's SY tokens\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_trader\",\n                    \"docs\": [\n                        \"Destination for receiving YT tokens\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"Temporary SY account owned by market\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity owned by market\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_escrow\",\n                    \"docs\": [\n                        \"YT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"exponent_core_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"sy_in\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"min_yt_out\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"price_spot_limit\",\n                    \"type\": {\n                        \"option\": \"f64\"\n                    }\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"BuyYtEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"claim_farm_emission\",\n            \"discriminator\": [\n                6\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"owner\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\"\n                },\n                {\n                    \"name\": \"ticks\"\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_dst\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"mint\"\n                },\n                {\n                    \"name\": \"token_farm\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"amount\",\n                    \"type\": {\n                        \"defined\": {\n                            \"name\": \"Amount\"\n                        }\n                    }\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"ClaimFarmEmissionsEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"deposit_liquidity\",\n            \"discriminator\": [\n                4\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"depositor\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"token_pt_src\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_src\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\",\n                    \"docs\": [\n                        \"Address lookup table for vault\"\n                    ]\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"instructions_sysvar\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"lower_tick_key\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"upper_tick_key\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"max_sy_in\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"max_pt_in\",\n                    \"type\": \"u64\"\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"DepositLiquidityReturnData\"\n                }\n            }\n        },\n        {\n            \"name\": \"initialize_market\",\n            \"docs\": [\n                \"High-trust function to init market\"\n            ],\n            \"discriminator\": [\n                2\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"payer\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"admin_signer\",\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"admin_state\"\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"docs\": [\n                        \"There is 1 market per vault\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"vault\",\n                    \"docs\": [\n                        \"Links the mint_sy & mint_pt & sy_program together\"\n                    ]\n                },\n                {\n                    \"name\": \"mint_sy\"\n                },\n                {\n                    \"name\": \"mint_pt\"\n                },\n                {\n                    \"name\": \"mint_yt\"\n                },\n                {\n                    \"name\": \"escrow_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"escrow_sy\",\n                    \"docs\": [\n                        \"This account for SY is only a temporary pass-through account\",\n                        \"It is used to transfer SY tokens from the signer to the market\",\n                        \"And then from the market to the SY program's escrow\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"escrow_yt\",\n                    \"docs\": [\n                        \"This account for YT is only a temporary pass-through account\",\n                        \"It is used to transfer YT tokens from the signer to the market\",\n                        \"And then from the market to the core program's\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"pt_src\",\n                    \"docs\": [\n                        \"Signer's PT token account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"sy_src\",\n                    \"docs\": [\n                        \"Signer's SY token account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\",\n                    \"docs\": [\n                        \"Use Token2022 as the implementation for PT & SY & LP tokens\"\n                    ]\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"exponent_core\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"associated_token_program\"\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"token_treasury_fee_sy\"\n                },\n                {\n                    \"name\": \"token_treasury_fee_pt\"\n                },\n                {\n                    \"name\": \"instructions_sysvar\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"ln_fee_rate_root\",\n                    \"type\": \"f64\"\n                },\n                {\n                    \"name\": \"pt_init\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"sy_init\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"fee_treasury_bps\",\n                    \"type\": \"u16\"\n                },\n                {\n                    \"name\": \"cpi_accounts\",\n                    \"type\": {\n                        \"defined\": {\n                            \"name\": \"CpiAccounts\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"cpi_core_accounts\",\n                    \"type\": {\n                        \"defined\": {\n                            \"name\": \"CpiCoreAccounts\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"min_lp_tick_amount\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"epsilon_clamp\",\n                    \"type\": \"f64\"\n                },\n                {\n                    \"name\": \"max_lp_supply\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"current_price_apy\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"tick_space\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"lower_tick_key\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"upper_tick_key\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"seed_id\",\n                    \"type\": \"u8\"\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"MarketThreeInitEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"market_accrue_emission\",\n            \"discriminator\": [\n                23\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"owner\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"MarketAccrueEmissionEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"market_collect_emission\",\n            \"discriminator\": [\n                11\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"owner\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_emission_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_emission_dst\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"emission_index\",\n                    \"type\": \"u16\"\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"MarketCollectEmissionEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"modify_farm\",\n            \"discriminator\": [\n                9\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"signer\",\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"mint\"\n                },\n                {\n                    \"name\": \"token_source\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_farm\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"new_expiration_timestamp\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"new_rate\",\n                    \"type\": \"u64\"\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"ModifyFarmEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"modify_market_setting\",\n            \"discriminator\": [\n                10\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"signer\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"admin_state\"\n                },\n                {\n                    \"name\": \"system_program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"action\",\n                    \"type\": {\n                        \"defined\": {\n                            \"name\": \"MarketAdminAction\"\n                        }\n                    }\n                }\n            ]\n        },\n        {\n            \"name\": \"sell_pt\",\n            \"discriminator\": [\n                15\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"seller\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"amount_pt\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"min_base_amount\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"price_spot_limit\",\n                    \"type\": {\n                        \"option\": \"f64\"\n                    }\n                },\n                {\n                    \"name\": \"redeem_sy_rem_accounts_until\",\n                    \"type\": \"u8\"\n                }\n            ]\n        },\n        {\n            \"name\": \"sell_yt\",\n            \"discriminator\": [\n                13\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"trader\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"Account owned by market\",\n                        \"This is a temporary account that receives SY tokens from the user, after which it transfers them to the SY program\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_escrow\",\n                    \"docs\": [\n                        \"YT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"exponent_core_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"yt_in\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"min_sy_out\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"price_spot_limit\",\n                    \"type\": {\n                        \"option\": \"f64\"\n                    }\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"SellYtEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"trade_pt\",\n            \"discriminator\": [\n                3\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"trader\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_trader\",\n                    \"docs\": [\n                        \"Trader's SY token account\",\n                        \"Mint is constrained by TokenProgram\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_trader\",\n                    \"docs\": [\n                        \"Receiving PT token account\",\n                        \"Mint is constrained by TokenProgram\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"Account owned by market\",\n                        \"This is a temporary account that receives SY tokens from the user, after which it transfers them to the SY program\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"amount_in\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"swap_direction\",\n                    \"type\": {\n                        \"defined\": {\n                            \"name\": \"SwapDirection\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"amount_out_constraint\",\n                    \"type\": {\n                        \"option\": \"u64\"\n                    }\n                },\n                {\n                    \"name\": \"price_spot_limit\",\n                    \"type\": {\n                        \"option\": \"f64\"\n                    }\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"TradePtEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"trade_pt_exact_out\",\n            \"discriminator\": [\n                24\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"trader\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_trader\",\n                    \"docs\": [\n                        \"Trader's SY token account\",\n                        \"Mint is constrained by TokenProgram\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_trader\",\n                    \"docs\": [\n                        \"Receiving PT token account\",\n                        \"Mint is constrained by TokenProgram\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"Account owned by market\",\n                        \"This is a temporary account that receives SY tokens from the user, after which it transfers them to the SY program\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\"\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"amount_out\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"swap_direction\",\n                    \"type\": {\n                        \"defined\": {\n                            \"name\": \"SwapDirection\"\n                        }\n                    }\n                },\n                {\n                    \"name\": \"amount_in_constraint\",\n                    \"type\": {\n                        \"option\": \"u64\"\n                    }\n                },\n                {\n                    \"name\": \"price_spot_limit\",\n                    \"type\": {\n                        \"option\": \"f64\"\n                    }\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"TradePtEvent\"\n                }\n            }\n        },\n        {\n            \"name\": \"withdraw_liquidity\",\n            \"discriminator\": [\n                5\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"owner\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_dst\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_dst\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"Market PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"Market-owned interchange account for SY\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"address_lookup_table\",\n                    \"docs\": [\n                        \"Address lookup table for vault\"\n                    ]\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"liquidity_to_remove\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"min_pt_out\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"min_sy_out\",\n                    \"type\": \"u64\"\n                }\n            ],\n            \"returns\": {\n                \"defined\": {\n                    \"name\": \"WithdrawLiquidityReturnData\"\n                }\n            }\n        },\n        {\n            \"name\": \"wrapper_buy_yt\",\n            \"discriminator\": [\n                16\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"buyer\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"market_address_lookup_table\"\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"exponent_core_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"yt_out\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"max_base_amount\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"mint_sy_accounts_length\",\n                    \"type\": \"u8\"\n                },\n                {\n                    \"name\": \"deposit_yt_accounts_until\",\n                    \"type\": \"u8\"\n                }\n            ]\n        },\n        {\n            \"name\": \"wrapper_provide_liquidity\",\n            \"discriminator\": [\n                18\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"depositor\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_escrow\",\n                    \"docs\": [\n                        \"YT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"SY token account owned by the market\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_depositor\",\n                    \"docs\": [\n                        \"Token account for SY owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_depositor\",\n                    \"docs\": [\n                        \"Token account for YT owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_depositor\",\n                    \"docs\": [\n                        \"Token account for PT owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"mint_yt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"mint_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"market_address_lookup_table\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"exponent_core_program\"\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"instructions_sysvar\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"rent\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"lower_tick\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"upper_tick\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"amount_base\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"min_lp_out\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"mint_sy_rem_accounts_until\",\n                    \"type\": \"u8\"\n                },\n                {\n                    \"name\": \"deposit_yt_accounts_until\",\n                    \"type\": \"u8\"\n                }\n            ]\n        },\n        {\n            \"name\": \"wrapper_provide_liquidity_base\",\n            \"discriminator\": [\n                26\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"depositor\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"SY token account owned by the market\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_depositor\",\n                    \"docs\": [\n                        \"Token account for SY owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_depositor\",\n                    \"docs\": [\n                        \"Token account for PT owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"mint_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"market_address_lookup_table\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"exponent_core_program\"\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"instructions_sysvar\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"rent\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"lower_tick_key\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"upper_tick_key\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"min_lp_out\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"mint_sy_accounts_until\",\n                    \"type\": \"u8\"\n                },\n                {\n                    \"name\": \"external_pt_to_buy\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"external_sy_constraint\",\n                    \"type\": \"u64\"\n                }\n            ]\n        },\n        {\n            \"name\": \"wrapper_provide_liquidity_classic\",\n            \"discriminator\": [\n                19\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"depositor\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"SY token account owned by the market\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_depositor\",\n                    \"docs\": [\n                        \"Token account for SY owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_depositor\",\n                    \"docs\": [\n                        \"Token account for PT owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"market_address_lookup_table\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"instructions_sysvar\"\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"rent\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"lower_tick\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"upper_tick\",\n                    \"type\": \"u32\"\n                },\n                {\n                    \"name\": \"amount_base\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"amount_pt\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"min_lp_out\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"mint_sy_accounts_until\",\n                    \"type\": \"u8\"\n                }\n            ]\n        },\n        {\n            \"name\": \"wrapper_sell_yt\",\n            \"discriminator\": [\n                17\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"seller\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_trader\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_yt_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"market_address_lookup_table\"\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"exponent_core_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"yt_amount\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"min_base_amount\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"redeem_sy_accounts_until\",\n                    \"type\": \"u8\"\n                },\n                {\n                    \"name\": \"withdraw_yt_accounts_until\",\n                    \"type\": \"u8\"\n                }\n            ]\n        },\n        {\n            \"name\": \"wrapper_withdraw_liquidity\",\n            \"discriminator\": [\n                20\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"withdrawer\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"SY token account owned by the market\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_withdrawer\",\n                    \"docs\": [\n                        \"Token account for SY owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_withdrawer\",\n                    \"docs\": [\n                        \"Token account for PT owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"market_address_lookup_table\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"token_fee_treasury_sy\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_fee_treasury_pt\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"amount_lp\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"sy_constraint\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"redeem_sy_accounts_length\",\n                    \"type\": \"u8\"\n                }\n            ]\n        },\n        {\n            \"name\": \"wrapper_withdraw_liquidity_classic\",\n            \"discriminator\": [\n                21\n            ],\n            \"accounts\": [\n                {\n                    \"name\": \"withdrawer\",\n                    \"writable\": true,\n                    \"signer\": true\n                },\n                {\n                    \"name\": \"market\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"ticks\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_escrow\",\n                    \"docs\": [\n                        \"PT liquidity account\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_escrow\",\n                    \"docs\": [\n                        \"SY token account owned by the market\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_sy_withdrawer\",\n                    \"docs\": [\n                        \"Token account for SY owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_pt_withdrawer\",\n                    \"docs\": [\n                        \"Token account for PT owned by the depositor\"\n                    ],\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"token_program\"\n                },\n                {\n                    \"name\": \"market_address_lookup_table\"\n                },\n                {\n                    \"name\": \"sy_program\"\n                },\n                {\n                    \"name\": \"lp_position\",\n                    \"writable\": true\n                },\n                {\n                    \"name\": \"system_program\"\n                },\n                {\n                    \"name\": \"event_authority\"\n                },\n                {\n                    \"name\": \"program\"\n                }\n            ],\n            \"args\": [\n                {\n                    \"name\": \"amount_lp\",\n                    \"type\": \"u64\"\n                },\n                {\n                    \"name\": \"redeem_sy_accounts_length\",\n                    \"type\": \"u8\"\n                }\n            ]\n        }\n    ],\n    \"accounts\": [\n        {\n            \"name\": \"Admin\",\n            \"discriminator\": [\n                244,\n                158,\n                220,\n                65,\n                8,\n                73,\n                4,\n                65\n            ]\n        },\n        {\n            \"name\": \"LpPosition\",\n            \"discriminator\": [\n                105,\n                241,\n                37,\n                200,\n                224,\n                2,\n                252,\n                90\n            ]\n        },\n        {\n            \"name\": \"MarketThree\",\n            \"discriminator\": [\n                242,\n                240,\n                26,\n                15,\n                148,\n                186,\n                185,\n                205\n            ]\n        },\n        {\n            \"name\": \"Vault\",\n            \"discriminator\": [\n                211,\n                8,\n                232,\n                43,\n                2,\n                152,\n                117,\n                119\n            ]\n        }\n    ],\n    \"events\": [\n        {\n            \"name\": \"AddFarmEvent\",\n            \"discriminator\": [\n                128,\n                69,\n                228,\n                140,\n                211,\n                1,\n                236,\n                209\n            ]\n        },\n        {\n            \"name\": \"BuyPtEvent\",\n            \"discriminator\": [\n                62,\n                132,\n                50,\n                43,\n                219,\n                234,\n                221,\n                167\n            ]\n        },\n        {\n            \"name\": \"BuyYtEvent\",\n            \"discriminator\": [\n                172,\n                181,\n                56,\n                183,\n                219,\n                24,\n                130,\n                64\n            ]\n        },\n        {\n            \"name\": \"ClaimFarmEmissionsEvent\",\n            \"discriminator\": [\n                184,\n                10,\n                159,\n                144,\n                144,\n                194,\n                166,\n                92\n            ]\n        },\n        {\n            \"name\": \"DepositLiquidityEvent\",\n            \"discriminator\": [\n                169,\n                84,\n                67,\n                174,\n                222,\n                138,\n                16,\n                123\n            ]\n        },\n        {\n            \"name\": \"DepositLiquidityReturnData\",\n            \"discriminator\": [\n                251,\n                222,\n                183,\n                16,\n                43,\n                40,\n                133,\n                193\n            ]\n        },\n        {\n            \"name\": \"MarketAccrueEmissionEvent\",\n            \"discriminator\": [\n                62,\n                90,\n                81,\n                179,\n                105,\n                110,\n                108,\n                49\n            ]\n        },\n        {\n            \"name\": \"MarketCollectEmissionEvent\",\n            \"discriminator\": [\n                125,\n                129,\n                15,\n                139,\n                232,\n                244,\n                82,\n                67\n            ]\n        },\n        {\n            \"name\": \"MarketThreeInitEvent\",\n            \"discriminator\": [\n                247,\n                116,\n                192,\n                184,\n                106,\n                246,\n                165,\n                183\n            ]\n        },\n        {\n            \"name\": \"MergeEvent\",\n            \"discriminator\": [\n                25,\n                30,\n                29,\n                41,\n                108,\n                139,\n                103,\n                4\n            ]\n        },\n        {\n            \"name\": \"ModifyFarmEvent\",\n            \"discriminator\": [\n                140,\n                186,\n                92,\n                18,\n                4,\n                227,\n                22,\n                14\n            ]\n        },\n        {\n            \"name\": \"SellPtEvent\",\n            \"discriminator\": [\n                103,\n                139,\n                188,\n                216,\n                68,\n                124,\n                110,\n                63\n            ]\n        },\n        {\n            \"name\": \"SellYtEvent\",\n            \"discriminator\": [\n                149,\n                147,\n                29,\n                159,\n                148,\n                240,\n                129,\n                7\n            ]\n        },\n        {\n            \"name\": \"StripEvent\",\n            \"discriminator\": [\n                114,\n                189,\n                26,\n                143,\n                143,\n                50,\n                197,\n                89\n            ]\n        },\n        {\n            \"name\": \"TradePtEvent\",\n            \"discriminator\": [\n                159,\n                225,\n                96,\n                81,\n                255,\n                227,\n                233,\n                174\n            ]\n        },\n        {\n            \"name\": \"WithdrawLiquidityEvent\",\n            \"discriminator\": [\n                214,\n                6,\n                161,\n                45,\n                191,\n                142,\n                124,\n                186\n            ]\n        },\n        {\n            \"name\": \"WithdrawLiquidityReturnData\",\n            \"discriminator\": [\n                42,\n                97,\n                75,\n                157,\n                90,\n                121,\n                189,\n                110\n            ]\n        },\n        {\n            \"name\": \"WrapperBuyYtEvent\",\n            \"discriminator\": [\n                148,\n                95,\n                21,\n                54,\n                99,\n                16,\n                15,\n                40\n            ]\n        },\n        {\n            \"name\": \"WrapperProvideLiquidityBaseEvent\",\n            \"discriminator\": [\n                60,\n                121,\n                164,\n                93,\n                220,\n                13,\n                142,\n                197\n            ]\n        },\n        {\n            \"name\": \"WrapperProvideLiquidityClassicEvent\",\n            \"discriminator\": [\n                87,\n                163,\n                150,\n                162,\n                186,\n                147,\n                234,\n                200\n            ]\n        },\n        {\n            \"name\": \"WrapperProvideLiquidityEvent\",\n            \"discriminator\": [\n                209,\n                42,\n                227,\n                77,\n                187,\n                216,\n                17,\n                177\n            ]\n        },\n        {\n            \"name\": \"WrapperSellYtEvent\",\n            \"discriminator\": [\n                252,\n                140,\n                45,\n                253,\n                6,\n                94,\n                95,\n                135\n            ]\n        },\n        {\n            \"name\": \"WrapperWithdrawLiquidityClassicEvent\",\n            \"discriminator\": [\n                18,\n                154,\n                212,\n                39,\n                36,\n                23,\n                158,\n                124\n            ]\n        },\n        {\n            \"name\": \"WrapperWithdrawLiquidityEvent\",\n            \"discriminator\": [\n                52,\n                32,\n                180,\n                241,\n                36,\n                221,\n                72,\n                167\n            ]\n        }\n    ],\n    \"errors\": [\n        {\n            \"code\": 6000,\n            \"name\": \"VaultExpired\",\n            \"msg\": \"Vault is expired\"\n        },\n        {\n            \"code\": 6001,\n            \"name\": \"DeltaLZero\",\n            \"msg\": \"Delta liquidity can't be zero\"\n        },\n        {\n            \"code\": 6002,\n            \"name\": \"TickArrayAlreadyBoundToMarket\",\n            \"msg\": \"Tick array already bound to market\"\n        },\n        {\n            \"code\": 6003,\n            \"name\": \"LiquidityUnderflow\",\n            \"msg\": \"LiquidityUnderflow\"\n        },\n        {\n            \"code\": 6004,\n            \"name\": \"LiquidityOverflow\",\n            \"msg\": \"LiquidityOverflow\"\n        },\n        {\n            \"code\": 6005,\n            \"name\": \"PriceLimitViolated\",\n            \"msg\": \"Price limit violated\"\n        },\n        {\n            \"code\": 6006,\n            \"name\": \"EndOfRange\",\n            \"msg\": \"End of range\"\n        },\n        {\n            \"code\": 6007,\n            \"name\": \"Unauthorized\",\n            \"msg\": \"Unauthorized\"\n        },\n        {\n            \"code\": 6008,\n            \"name\": \"InsufficientBudgetSY\",\n            \"msg\": \"Insufficient budget SY\"\n        },\n        {\n            \"code\": 6009,\n            \"name\": \"InsufficientBudgetPT\",\n            \"msg\": \"Insufficient budget PT\"\n        },\n        {\n            \"code\": 6010,\n            \"name\": \"IntervalNotFound\",\n            \"msg\": \"Interval not found\"\n        },\n        {\n            \"code\": 6011,\n            \"name\": \"LpSupplyMaximumExceeded\",\n            \"msg\": \"lp supply maximum exceeded\"\n        },\n        {\n            \"code\": 6012,\n            \"name\": \"DepositingLiquidityDisabled\",\n            \"msg\": \"Depositing liquidity disabled\"\n        },\n        {\n            \"code\": 6013,\n            \"name\": \"BuyingPtDisabled\",\n            \"msg\": \"Buying pt disabled\"\n        },\n        {\n            \"code\": 6014,\n            \"name\": \"SellingPtDisabled\",\n            \"msg\": \"Selling pt disabled\"\n        },\n        {\n            \"code\": 6015,\n            \"name\": \"WithdrawingLiquidityDisabled\",\n            \"msg\": \"Withdrawing liquidity disabled\"\n        },\n        {\n            \"code\": 6016,\n            \"name\": \"BuyingYtDisabled\",\n            \"msg\": \"Buying YT is disabled\"\n        },\n        {\n            \"code\": 6017,\n            \"name\": \"SellingYtDisabled\",\n            \"msg\": \"Selling YT is disabled\"\n        },\n        {\n            \"code\": 6018,\n            \"name\": \"NoRightIndexForSplitedRange\",\n            \"msg\": \"No right index for splitted range\"\n        },\n        {\n            \"code\": 6019,\n            \"name\": \"ExactOutDirectionUnsupported\",\n            \"msg\": \"Exact-out swaps are unsupported for this direction\"\n        },\n        {\n            \"code\": 6020,\n            \"name\": \"WithdrawalAccountingDustExceeded\",\n            \"msg\": \"Withdrawal accounting dust exceeded limit\"\n        },\n        {\n            \"code\": 6021,\n            \"name\": \"InvalidExpirationTimestamp\",\n            \"msg\": \"Invalid expiration timestamp\"\n        },\n        {\n            \"code\": 6022,\n            \"name\": \"YieldTrackerLimitExceeded\",\n            \"msg\": \"Tracker limit exceeded\"\n        },\n        {\n            \"code\": 6023,\n            \"name\": \"InvalidTickRange\",\n            \"msg\": \"Lower and upper tick must differ\"\n        },\n        {\n            \"code\": 6024,\n            \"name\": \"TickRangeTooSmall\",\n            \"msg\": \"Tick range width below epsilon clamp\"\n        },\n        {\n            \"code\": 6025,\n            \"name\": \"LpMinNotReached\",\n            \"msg\": \"Lp min not reached\"\n        },\n        {\n            \"code\": 6026,\n            \"name\": \"EmissionsTrackerLengthMismatch\",\n            \"msg\": \"Emissions tracker length mismatch\"\n        },\n        {\n            \"code\": 6027,\n            \"name\": \"LiquidityToRemoveExceedsBalance\",\n            \"msg\": \"Liquidity to remove exceeds position balance\"\n        },\n        {\n            \"code\": 6028,\n            \"name\": \"InvalidFeeRate\",\n            \"msg\": \"Fee rate configuration must not exceed 5% annualized\"\n        },\n        {\n            \"code\": 6029,\n            \"name\": \"IntegerOverflow\",\n            \"msg\": \"Integer overflow during conversion\"\n        },\n        {\n            \"code\": 6030,\n            \"name\": \"InvalidAccountData\",\n            \"msg\": \"Invalid account data\"\n        },\n        {\n            \"code\": 6031,\n            \"name\": \"ConstraintViolation\",\n            \"msg\": \"Account constraint violation\"\n        },\n        {\n            \"code\": 6032,\n            \"name\": \"DepositTooSmallToMint\",\n            \"msg\": \"Deposit amount too small to mint shares\"\n        },\n        {\n            \"code\": 6033,\n            \"name\": \"TickNotAlignedToTickSpace\",\n            \"msg\": \"Tick key must be a multiple of tick_space\"\n        },\n        {\n            \"code\": 6034,\n            \"name\": \"AddingLiquidityCurrentlyNotAllowed\",\n            \"msg\": \"Adding liquidity currently is not allowed\"\n        },\n        {\n            \"code\": 6035,\n            \"name\": \"CrossingEqualizationInvariantViolated\",\n            \"msg\": \"Crossing equalization invariants were violated\"\n        }\n    ],\n    \"types\": [\n        {\n            \"name\": \"AddFarmEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"admin_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"farm_index\",\n                        \"type\": \"u16\"\n                    },\n                    {\n                        \"name\": \"emission_mint\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_rate\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"expiry_timestamp\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"amount_deposited\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"Admin\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"uber_admin\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"proposed_uber_admin\",\n                        \"type\": {\n                            \"option\": \"pubkey\"\n                        }\n                    },\n                    {\n                        \"name\": \"principles\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Principles\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"Amount\",\n            \"type\": {\n                \"kind\": \"enum\",\n                \"variants\": [\n                    {\n                        \"name\": \"All\"\n                    },\n                    {\n                        \"name\": \"Some\",\n                        \"fields\": [\n                            \"u64\"\n                        ]\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"BuyPtEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"buyer_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_base_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_out\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"BuyYtEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"trader_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_sy_trader\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_yt_trader\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_pt_trader\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"max_sy_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_yt_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"sy_exchange_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"amount_sy_to_strip\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_borrowed\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_repaid\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"ClaimFarmEmissionsEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"owner_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_position\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_owner\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"farm_index\",\n                        \"type\": \"u8\"\n                    },\n                    {\n                        \"name\": \"amount_claimed\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"remaining_staged\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lp_balance\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lower_tick\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"upper_tick\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_sy\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_pt\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"farms\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"share_trackers\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipalShareTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"fee_inside_last_pt\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_sy\",\n                        \"type\": \"u128\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"ClaimLimits\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"claim_window_start_timestamp\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"total_claim_amount_in_window\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"max_claim_amount_per_window\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"claim_window_duration_seconds\",\n                        \"type\": \"u32\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"ConfigurationOptions\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"ln_fee_rate_root\",\n                        \"docs\": [\n                            \"Initial log of fee rate, which decreases over time\"\n                        ],\n                        \"type\": \"f64\"\n                    },\n                    {\n                        \"name\": \"treasury_fee_bps\",\n                        \"docs\": [\n                            \"Protocol fee cut BPS\"\n                        ],\n                        \"type\": \"u16\"\n                    },\n                    {\n                        \"name\": \"min_lp_tick_amount\",\n                        \"docs\": [\n                            \"Minimum amount of LP tokens to be issued\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"epsilon_clamp\",\n                        \"docs\": [\n                            \"min denomination for reinvest liquidity\"\n                        ],\n                        \"type\": \"f64\"\n                    },\n                    {\n                        \"name\": \"max_lp_supply\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tick_space\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"_reserved\",\n                        \"type\": {\n                            \"array\": [\n                                \"u8\",\n                                1024\n                            ]\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"CpiAccounts\",\n            \"docs\": [\n                \"Account lists for validating CPI calls to the SY program\"\n            ],\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"get_sy_state\",\n                        \"docs\": [\n                            \"Fetch SY state\"\n                        ],\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"CpiInterfaceContext\"\n                                }\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"deposit_sy\",\n                        \"docs\": [\n                            \"Deposit SY into personal account owned by vault\"\n                        ],\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"CpiInterfaceContext\"\n                                }\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"withdraw_sy\",\n                        \"docs\": [\n                            \"Withdraw SY from personal account owned by vault\"\n                        ],\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"CpiInterfaceContext\"\n                                }\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"claim_emission\",\n                        \"docs\": [\n                            \"Settle rewards for vault to accounts owned by the vault\"\n                        ],\n                        \"type\": {\n                            \"vec\": {\n                                \"vec\": {\n                                    \"defined\": {\n                                        \"name\": \"CpiInterfaceContext\"\n                                    }\n                                }\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"get_position_state\",\n                        \"docs\": [\n                            \"Get personal yield position\"\n                        ],\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"CpiInterfaceContext\"\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"CpiCoreAccounts\",\n            \"docs\": [\n                \"Account lists for validating CPI calls to the SY program\"\n            ],\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"strip_sy\",\n                        \"docs\": [\n                            \"Strip sy\"\n                        ],\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"CpiInterfaceContext\"\n                                }\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"merge_sy\",\n                        \"docs\": [\n                            \"Merge sy\"\n                        ],\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"CpiInterfaceContext\"\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"CpiInterfaceContext\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"alt_index\",\n                        \"docs\": [\n                            \"Address-lookup-table index\"\n                        ],\n                        \"type\": \"u8\"\n                    },\n                    {\n                        \"name\": \"is_signer\",\n                        \"type\": \"bool\"\n                    },\n                    {\n                        \"name\": \"is_writable\",\n                        \"type\": \"bool\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"CrossingSplit\",\n            \"docs\": [\n                \"Represents the three virtual segments when a position spans the active tick.\",\n                \"This allows tracking different liquidity (L_actual vs L_target) in the crossing segment.\"\n            ],\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"cross_left_idx\",\n                        \"docs\": [\n                            \"Left boundary of the crossing tick (current_tick at deposit time)\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"cross_right_idx\",\n                        \"docs\": [\n                            \"Right boundary of the crossing tick\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"lp_balance_crossing\",\n                        \"docs\": [\n                            \"Actual liquidity for the crossing segment (L_actual, may be < L_target)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_a_pt\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_a_sy\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_b_pt\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_b_sy\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_c_pt\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_c_sy\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"farms_a\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"farms_b\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"farms_c\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"DepositLiquidityEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"depositor_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_pt_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_sy_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_pt_in\",\n                        \"docs\": [\n                            \"Total PT amount added (distributed across ticks in range)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_in\",\n                        \"docs\": [\n                            \"Total SY amount added (distributed across ticks in range)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"delta_liquidity\",\n                        \"docs\": [\n                            \"Liquidity added to the position\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lower_tick\",\n                        \"docs\": [\n                            \"Lower tick boundary of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"upper_tick\",\n                        \"docs\": [\n                            \"Upper tick boundary of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"lp_position\",\n                        \"docs\": [\n                            \"LP position account address\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_balance_after\",\n                        \"docs\": [\n                            \"Total LP balance after this deposit\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_sy\",\n                        \"docs\": [\n                            \"Accumulated unclaimed SY fees\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_pt\",\n                        \"docs\": [\n                            \"Accumulated unclaimed PT fees\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"farms\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"share_trackers\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipalShareTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"fee_inside_last_pt\",\n                        \"docs\": [\n                            \"Last snapshot of inside PT fee growth\"\n                        ],\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_sy\",\n                        \"docs\": [\n                            \"Last snapshot of inside SY fee growth\"\n                        ],\n                        \"type\": \"u128\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"DepositLiquidityReturnData\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"depositor_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_pt_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_sy_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_pt_in\",\n                        \"docs\": [\n                            \"Total PT amount added (distributed across ticks in range)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_in\",\n                        \"docs\": [\n                            \"Total SY amount added (distributed across ticks in range)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"delta_liquidity\",\n                        \"docs\": [\n                            \"Liquidity added to the position\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lower_tick\",\n                        \"docs\": [\n                            \"Lower tick boundary of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"upper_tick\",\n                        \"docs\": [\n                            \"Upper tick boundary of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"lp_position\",\n                        \"docs\": [\n                            \"LP position account address\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_balance_after\",\n                        \"docs\": [\n                            \"Total LP balance after this deposit\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_sy\",\n                        \"docs\": [\n                            \"Accumulated unclaimed SY fees\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_pt\",\n                        \"docs\": [\n                            \"Accumulated unclaimed PT fees\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_pt\",\n                        \"docs\": [\n                            \"Last snapshot of inside PT fee growth\"\n                        ],\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_sy\",\n                        \"docs\": [\n                            \"Last snapshot of inside SY fee growth\"\n                        ],\n                        \"type\": \"u128\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"EmissionInfo\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"token_account\",\n                        \"docs\": [\n                            \"The token account for the emission where the vault authority is the authority\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"initial_index\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"last_seen_index\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"final_index\",\n                        \"docs\": [\n                            \"The final index is used to track the last claimable index after the vault expires\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"treasury_token_account\",\n                        \"docs\": [\n                            \"The treasury token account for this reward\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"fee_bps\",\n                        \"docs\": [\n                            \"The fee taken from emission collecting\"\n                        ],\n                        \"type\": \"u16\"\n                    },\n                    {\n                        \"name\": \"treasury_emission\",\n                        \"docs\": [\n                            \"The lambo fund\"\n                        ],\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"FarmEmission\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"mint\",\n                        \"docs\": [\n                            \"Mint for the emission token\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_rate\",\n                        \"docs\": [\n                            \"Rate at which the emission token is emitted per second\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"expiry_timestamp\",\n                        \"docs\": [\n                            \"Expiration timestamp for the emission token\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"index\",\n                        \"docs\": [\n                            \"Index for converting LP shares into earned emissions\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"LiquidityNetBalanceLimits\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"window_start_timestamp\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"window_start_net_balance\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"max_net_balance_change_negative_percentage\",\n                        \"docs\": [\n                            \"Maximum allowed negative change in basis points (10000 = 100%)\"\n                        ],\n                        \"type\": \"u16\"\n                    },\n                    {\n                        \"name\": \"max_net_balance_change_positive_percentage\",\n                        \"docs\": [\n                            \"Maximum allowed positive change in basis points (10000 = 100%)\",\n                            \"Using u32 to allow for very large increases (up to ~429,496%)\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"window_duration_seconds\",\n                        \"type\": \"u32\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"LpFarm\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"last_seen_timestamp\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"farm_emissions\",\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"FarmEmission\"\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"LpPosition\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"owner\",\n                        \"docs\": [\n                            \"Link to address that owns this position\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market\",\n                        \"docs\": [\n                            \"Link to market that manages the LP\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_pt\",\n                        \"docs\": [\n                            \"last fee calc position snapshot Q64.64\"\n                        ],\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_sy\",\n                        \"docs\": [\n                            \"last fee calc position snapshot Q64.64\"\n                        ],\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"lp_balance\",\n                        \"docs\": [\n                            \"Track the LP balance of the user here\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_sy\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_pt\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lower_tick_idx\",\n                        \"docs\": [\n                            \"Lower tick of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"upper_tick_idx\",\n                        \"docs\": [\n                            \"Upper tick of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"farms\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"share_trackers\",\n                        \"docs\": [\n                            \"Share trackers for each tick in range\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipalShareTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"crossing_split\",\n                        \"docs\": [\n                            \"Crossing split for positions that span the active tick.\",\n                            \"When active (is_active() returns true), the position is logically split\",\n                            \"into 3 segments with the crossing segment having reduced liquidity (L_actual).\",\n                            \"When inactive, this field is ignored and standard fee calculation is used.\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"CrossingSplit\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MarketAccrueEmissionEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"owner_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_position\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_balance\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lower_tick\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"upper_tick\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_sy\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_pt\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"farms\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"share_trackers\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipalShareTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"fee_inside_last_pt\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_sy\",\n                        \"type\": \"u128\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MarketAdminAction\",\n            \"type\": {\n                \"kind\": \"enum\",\n                \"variants\": [\n                    {\n                        \"name\": \"SetStatus\",\n                        \"fields\": [\n                            \"u8\"\n                        ]\n                    },\n                    {\n                        \"name\": \"SetMaxLpSupply\",\n                        \"fields\": [\n                            \"u64\"\n                        ]\n                    },\n                    {\n                        \"name\": \"ChangeTreasuryTradeSyBpsFee\",\n                        \"fields\": [\n                            \"u16\"\n                        ]\n                    },\n                    {\n                        \"name\": \"ChangeLnFeeRateRoot\",\n                        \"fields\": [\n                            \"f64\"\n                        ]\n                    },\n                    {\n                        \"name\": \"ChangeCpiAccounts\",\n                        \"fields\": [\n                            {\n                                \"name\": \"cpi_accounts\",\n                                \"type\": {\n                                    \"defined\": {\n                                        \"name\": \"CpiAccounts\"\n                                    }\n                                }\n                            },\n                            {\n                                \"name\": \"cpi_core_accounts\",\n                                \"type\": {\n                                    \"defined\": {\n                                        \"name\": \"CpiCoreAccounts\"\n                                    }\n                                }\n                            }\n                        ]\n                    },\n                    {\n                        \"name\": \"ChangeLiquidityNetBalanceLimits\",\n                        \"fields\": [\n                            {\n                                \"name\": \"max_net_balance_change_negative_percentage\",\n                                \"type\": \"u16\"\n                            },\n                            {\n                                \"name\": \"max_net_balance_change_positive_percentage\",\n                                \"type\": \"u32\"\n                            },\n                            {\n                                \"name\": \"window_duration_seconds\",\n                                \"type\": \"u32\"\n                            }\n                        ]\n                    },\n                    {\n                        \"name\": \"ChangeAddressLookupTable\",\n                        \"fields\": [\n                            \"pubkey\"\n                        ]\n                    },\n                    {\n                        \"name\": \"ChangeEpsilonClamp\",\n                        \"fields\": [\n                            \"f64\"\n                        ]\n                    },\n                    {\n                        \"name\": \"ChangeMinLpTickAmount\",\n                        \"fields\": [\n                            \"u64\"\n                        ]\n                    },\n                    {\n                        \"name\": \"ChangeTickSpace\",\n                        \"fields\": [\n                            \"u32\"\n                        ]\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MarketCollectEmissionEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"owner_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_position\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_emission_owner\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"emission_index\",\n                        \"type\": \"u16\"\n                    },\n                    {\n                        \"name\": \"amount_collected\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lp_balance\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lower_tick\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"upper_tick\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_sy\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_pt\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"farms\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"share_trackers\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipalShareTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"fee_inside_last_pt\",\n                        \"docs\": [\n                            \"Last snapshot of inside PT fee growth\"\n                        ],\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_sy\",\n                        \"docs\": [\n                            \"Last snapshot of inside SY fee growth\"\n                        ],\n                        \"type\": \"u128\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MarketEmission\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"token_escrow\",\n                        \"docs\": [\n                            \"Escrow account that receives the emissions from the SY program\",\n                            \"And then passes them through to the user\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_share_index\",\n                        \"docs\": [\n                            \"Index for converting LP shares into earned emissions\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"last_seen_staged\",\n                        \"docs\": [\n                            \"The difference between the staged amount and collected emission amount\"\n                        ],\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MarketEmissions\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"trackers\",\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"MarketEmission\"\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MarketFinancials\",\n            \"docs\": [\n                \"Financial parameters for the market\"\n            ],\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"expiration_ts\",\n                        \"docs\": [\n                            \"Expiration timestamp, which is copied from the vault associated with the PT\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"pt_balance\",\n                        \"docs\": [\n                            \"Balance of PT in the market\",\n                            \"This amount is tracked separately to prevent bugs from token transfers directly to the market\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"sy_balance\",\n                        \"docs\": [\n                            \"Balance of SY in the market\",\n                            \"This amount is tracked separately to prevent bugs from token transfers directly to the market\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"sy_user_balance\",\n                        \"docs\": [\n                            \"Balance of SY in the market without fees\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"liquidity_balance\",\n                        \"docs\": [\n                            \"Total balance of liquidity in the market\"\n                        ],\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MarketThree\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"admin\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"address_lookup_table\",\n                        \"docs\": [\n                            \"Address to ALT\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_pt\",\n                        \"docs\": [\n                            \"Mint of the vault's PT token\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_sy\",\n                        \"docs\": [\n                            \"Mint of the SY program's SY token\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_yt\",\n                        \"docs\": [\n                            \"Mint of the vault's YT token\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"vault\",\n                        \"docs\": [\n                            \"Link to yield-stripping vault\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_pt_escrow\",\n                        \"docs\": [\n                            \"Token account that holds PT liquidity\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_sy_escrow\",\n                        \"docs\": [\n                            \"Pass-through token account for SY moving from the depositor to the SY program\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_yt_escrow\",\n                        \"docs\": [\n                            \"Pass-through token account for YT moving from the depositor to the core program\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_fee_treasury_sy\",\n                        \"docs\": [\n                            \"Token account that holds SY fees from trade\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_fee_treasury_pt\",\n                        \"docs\": [\n                            \"Token account that holds PT fees from trade\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"self_address\",\n                        \"docs\": [\n                            \"Authority for CPI calls owned by the market struct\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"ticks\",\n                        \"docs\": [\n                            \"Pubkey tick array account\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"signer_bump\",\n                        \"docs\": [\n                            \"Bump for signing the PDA\"\n                        ],\n                        \"type\": {\n                            \"array\": [\n                                \"u8\",\n                                1\n                            ]\n                        }\n                    },\n                    {\n                        \"name\": \"status_flags\",\n                        \"type\": \"u8\"\n                    },\n                    {\n                        \"name\": \"sy_program\",\n                        \"docs\": [\n                            \"Link to the SY program ID\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"exponent_core_program\",\n                        \"docs\": [\n                            \"Link to the exponent_core program ID\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"configuration_options\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"ConfigurationOptions\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"financials\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"MarketFinancials\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"emissions\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"MarketEmissions\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"lp_farm\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"LpFarm\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"cpi_sy_accounts\",\n                        \"docs\": [\n                            \"Record of CPI accounts\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"CpiAccounts\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"cpi_core_accounts\",\n                        \"docs\": [\n                            \"Record of CPI core accounts\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"CpiCoreAccounts\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"is_current_flash_swap\",\n                        \"type\": \"bool\"\n                    },\n                    {\n                        \"name\": \"liquidity_net_balance_limits\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"LiquidityNetBalanceLimits\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"seed_id\",\n                        \"docs\": [\n                            \"Unique seed id for the market\"\n                        ],\n                        \"type\": {\n                            \"array\": [\n                                \"u8\",\n                                1\n                            ]\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MarketThreeInitEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"vault_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"rent_payer_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"admin_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"treasury_fee_bps\",\n                        \"type\": \"u16\"\n                    },\n                    {\n                        \"name\": \"sy_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"pt_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"current_spot_price\",\n                        \"type\": \"f64\"\n                    },\n                    {\n                        \"name\": \"tick_space\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"seed_id\",\n                        \"type\": \"u8\"\n                    },\n                    {\n                        \"name\": \"ln_fee_rate_root\",\n                        \"type\": \"f64\"\n                    },\n                    {\n                        \"name\": \"min_lp_tick_amount\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"epsilon_clamp\",\n                        \"type\": \"f64\"\n                    },\n                    {\n                        \"name\": \"max_lp_supply\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"pt_init\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"sy_init\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"MergeEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"owner\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"vault\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"sy_dst\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"escrow_sy\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"yt_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"pt_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_yt\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_pt\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"yield_position\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_py_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"sy_exchange_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"pt_redemption_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"total_sy_in_escrow\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"pt_supply\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"yt_balance\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"sy_for_pt\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"is_vault_active\",\n                        \"type\": \"bool\"\n                    },\n                    {\n                        \"name\": \"unix_timestamp\",\n                        \"type\": \"i64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"ModifiedTick\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"tick_idx\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"fee_grouth_pt_after\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_grouth_sy_after\",\n                        \"type\": \"u128\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"ModifiedTicks\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"fee_global_before_pt\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_global_before_sy\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_global_after_pt\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_global_after_sy\",\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"ticks\",\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"ModifiedTick\"\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"ModifyFarmEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"admin_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"farm_index\",\n                        \"type\": \"u16\"\n                    },\n                    {\n                        \"name\": \"emission_mint\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"old_token_rate\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"new_token_rate\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"old_expiry_timestamp\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"new_expiry_timestamp\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"token_difference\",\n                        \"type\": \"i64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"Number\",\n            \"docs\": [\n                \"High precision number, stored as 4 u64 words in little endian\"\n            ],\n            \"repr\": {\n                \"kind\": \"c\"\n            },\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"array\": [\n                            \"u64\",\n                            4\n                        ]\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"PersonalYieldTracker\",\n            \"docs\": [\n                \"Generic tracker for interest and emissions earned by deposits\"\n            ],\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"last_seen_index\",\n                        \"docs\": [\n                            \"The index is the per-share value of the SY token\",\n                            \"Note that the YT balance must be converted to the equivalent SY balance\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"staged\",\n                        \"docs\": [\n                            \"Staged tokens that may be withdrawn\"\n                        ],\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"PersonalYieldTrackers\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"trackers\",\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"PersonalYieldTracker\"\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"PrincipalShare\",\n            \"docs\": [\n                \"Generic tracker for interest and emissions earned by deposits\"\n            ],\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"tick_idx\",\n                        \"docs\": [\n                            \"tick_idx\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"right_tick_idx\",\n                        \"docs\": [\n                            \"tick_idx\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"split_epoch\",\n                        \"docs\": [\n                            \"inserted_split_epoch\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lp_share\",\n                        \"docs\": [\n                            \"lp share\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"emissions\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"PrincipalShareTrackers\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"trackers\",\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"PrincipalShare\"\n                                }\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"PrincipleDetails\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"administrators\",\n                        \"type\": {\n                            \"vec\": \"pubkey\"\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"Principles\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"hot_admin\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipleDetails\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"cold_admin\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipleDetails\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"pause_admin\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipleDetails\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"reserved1\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipleDetails\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"reserved2\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipleDetails\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"reserved3\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipleDetails\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"SellPtEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"seller_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_pt_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_base_out\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"SellYtEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"trader_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_yt_trader\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_pt_trader\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_sy_trader\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_yt_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_received_from_merge\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_spent_buying_pt\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"pt_borrowed_and_repaid\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"StripEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"depositor\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"vault\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"authority\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"sy_src\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"escrow_sy\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"yt_dst\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"pt_dst\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_yt\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_pt\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"yield_position\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_sy_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_py_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"sy_exchange_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"total_sy_in_escrow\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"pt_supply\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"yt_balance\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"all_time_high_sy_exchange_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"sy_for_pt\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"unix_timestamp\",\n                        \"type\": \"i64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"SwapDirection\",\n            \"type\": {\n                \"kind\": \"enum\",\n                \"variants\": [\n                    {\n                        \"name\": \"PtToSy\"\n                    },\n                    {\n                        \"name\": \"SyToPt\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"TradePtEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"trader_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_sy_trader\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_pt_trader\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"swap_direction\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"SwapDirection\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"is_current_flash_swap\",\n                        \"type\": \"bool\"\n                    },\n                    {\n                        \"name\": \"amount_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"total_fee\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"treasury_fee\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tick_after_trade\",\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"current_spot_price\",\n                        \"type\": \"f64\"\n                    },\n                    {\n                        \"name\": \"sy_exchange_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"modified_ticks\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"ModifiedTicks\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"Vault\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"sy_program\",\n                        \"docs\": [\n                            \"Link to SY program\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_sy\",\n                        \"docs\": [\n                            \"Mint for SY token\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_yt\",\n                        \"docs\": [\n                            \"Mint for the vault-specific YT token\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"mint_pt\",\n                        \"docs\": [\n                            \"Mint for the vault-specific PT token\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"escrow_yt\",\n                        \"docs\": [\n                            \"Escrow account for holding deposited YT\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"escrow_sy\",\n                        \"docs\": [\n                            \"Escrow account that holds temporary SY tokens\",\n                            \"As an interchange between users and the SY program\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"yield_position\",\n                        \"docs\": [\n                            \"Link to a vault-owned YT position\",\n                            \"This account collects yield from all \\\"unstaked\\\" YT\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"address_lookup_table\",\n                        \"docs\": [\n                            \"Address lookup table key for vault\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"start_ts\",\n                        \"docs\": [\n                            \"start timestamp\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"duration\",\n                        \"docs\": [\n                            \"seconds duration\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"signer_seed\",\n                        \"docs\": [\n                            \"Seed for CPI signing\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"authority\",\n                        \"docs\": [\n                            \"Authority for CPI signing\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"signer_bump\",\n                        \"docs\": [\n                            \"bump for signer authority PDA\"\n                        ],\n                        \"type\": {\n                            \"array\": [\n                                \"u8\",\n                                1\n                            ]\n                        }\n                    },\n                    {\n                        \"name\": \"last_seen_sy_exchange_rate\",\n                        \"docs\": [\n                            \"Last seen SY exchange rate\",\n                            \"This continues to be updated even after vault maturity to track SY appreciation for treasury collection\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"all_time_high_sy_exchange_rate\",\n                        \"docs\": [\n                            \"This is the all time high exchange rate for SY\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"final_sy_exchange_rate\",\n                        \"docs\": [\n                            \"This is the exchange rate for SY when the vault expires\"\n                        ],\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"total_sy_in_escrow\",\n                        \"docs\": [\n                            \"How much SY is held in escrow\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"sy_for_pt\",\n                        \"docs\": [\n                            \"The total SY set aside to back the PT holders\",\n                            \"This value is updated on every operation that touches the PT supply or the last seen exchange rate\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"pt_supply\",\n                        \"docs\": [\n                            \"Total supply of PT\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"treasury_sy\",\n                        \"docs\": [\n                            \"Amount of SY staged for the treasury\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"uncollected_sy\",\n                        \"docs\": [\n                            \"SY that has been earned by YT, but not yet collected\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"treasury_sy_token_account\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"interest_bps_fee\",\n                        \"type\": \"u16\"\n                    },\n                    {\n                        \"name\": \"min_op_size_strip\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"min_op_size_merge\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"status\",\n                        \"type\": \"u8\"\n                    },\n                    {\n                        \"name\": \"emissions\",\n                        \"type\": {\n                            \"vec\": {\n                                \"defined\": {\n                                    \"name\": \"EmissionInfo\"\n                                }\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"cpi_accounts\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"CpiAccounts\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"claim_limits\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"ClaimLimits\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"max_py_supply\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WithdrawLiquidityEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"withdrawer_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_pt_withdrawer\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"token_sy_withdrawer\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"liquidity_to_remove\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_out\",\n                        \"docs\": [\n                            \"Total PT amount removed (distributed across ticks in range)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_out\",\n                        \"docs\": [\n                            \"Total SY amount removed (distributed across ticks in range)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"new_lp_supply\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lower_tick\",\n                        \"docs\": [\n                            \"Lower tick boundary of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"upper_tick\",\n                        \"docs\": [\n                            \"Upper tick boundary of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"lp_position\",\n                        \"docs\": [\n                            \"LP position account address\"\n                        ],\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_balance_after\",\n                        \"docs\": [\n                            \"Total LP balance after this withdrawal\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"fee_sy_collected\",\n                        \"docs\": [\n                            \"SY fees collected during this withdrawal\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"fee_pt_collected\",\n                        \"docs\": [\n                            \"PT fees collected during this withdrawal\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_sy\",\n                        \"docs\": [\n                            \"Remaining unclaimed SY fees (after collection, should be 0)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_pt\",\n                        \"docs\": [\n                            \"Remaining unclaimed PT fees (after collection, should be 0)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"farms\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PersonalYieldTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"share_trackers\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"PrincipalShareTrackers\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"fee_inside_last_pt\",\n                        \"docs\": [\n                            \"Last snapshot of inside PT fee growth\"\n                        ],\n                        \"type\": \"u128\"\n                    },\n                    {\n                        \"name\": \"fee_inside_last_sy\",\n                        \"docs\": [\n                            \"Last snapshot of inside SY fee growth\"\n                        ],\n                        \"type\": \"u128\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WithdrawLiquidityReturnData\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"liquidity_to_remove\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_out\",\n                        \"docs\": [\n                            \"Total PT amount removed (distributed across ticks in range)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_out\",\n                        \"docs\": [\n                            \"Total SY amount removed (distributed across ticks in range)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"new_lp_supply\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"lower_tick\",\n                        \"docs\": [\n                            \"Lower tick boundary of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"upper_tick\",\n                        \"docs\": [\n                            \"Upper tick boundary of the position\"\n                        ],\n                        \"type\": \"u32\"\n                    },\n                    {\n                        \"name\": \"fee_sy_collected\",\n                        \"docs\": [\n                            \"LP position account address\",\n                            \"SY fees collected during this withdrawal\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"fee_pt_collected\",\n                        \"docs\": [\n                            \"PT fees collected during this withdrawal\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_sy\",\n                        \"docs\": [\n                            \"Remaining unclaimed SY fees (after collection, should be 0)\"\n                        ],\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"tokens_owed_pt\",\n                        \"docs\": [\n                            \"Remaining unclaimed PT fees (after collection, should be 0)\"\n                        ],\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WrapperBuyYtEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"buyer_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"yt_out_amount\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"base_in_amount\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WrapperProvideLiquidityBaseEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"user_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"lp_position_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_base_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"trade_amount_pt_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"trade_amount_sy_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_lp_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"asset_value_lp_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_pt_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_sy_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WrapperProvideLiquidityClassicEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"user_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_base_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_lp_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"asset_value_lp_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_pt_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_sy_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"lp_position_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"sy_exchange_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WrapperProvideLiquidityEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"user_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_base_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_lp_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_yt_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"asset_value_lp_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_pt_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_sy_in\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_yt_out\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"lp_position_address\",\n                        \"type\": \"pubkey\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WrapperSellYtEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"seller_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"yt_in_amount\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_base_out\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WrapperWithdrawLiquidityClassicEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"user_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_base_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_lp_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"asset_value_lp_out\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_pt_out\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_sy_out\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"lp_position_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"sy_exchange_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"fee_sy_collected\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"fee_pt_collected\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        },\n        {\n            \"name\": \"WrapperWithdrawLiquidityEvent\",\n            \"type\": {\n                \"kind\": \"struct\",\n                \"fields\": [\n                    {\n                        \"name\": \"user_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"market_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"amount_base_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_lp_in\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_pt_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"amount_sy_out\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"asset_value_lp_out\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_pt_out\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"asset_value_sy_out\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"lp_position_address\",\n                        \"type\": \"pubkey\"\n                    },\n                    {\n                        \"name\": \"sy_exchange_rate\",\n                        \"type\": {\n                            \"defined\": {\n                                \"name\": \"Number\"\n                            }\n                        }\n                    },\n                    {\n                        \"name\": \"fee_sy_collected\",\n                        \"type\": \"u64\"\n                    },\n                    {\n                        \"name\": \"fee_pt_collected\",\n                        \"type\": \"u64\"\n                    }\n                ]\n            }\n        }\n    ]\n}\n","{\n  \"address\": \"ExponentnaRg3CQbW6dqQNZKXp7gtZ9DGMp1cwC4HAS7\",\n  \"metadata\": {\n    \"name\": \"exponent_core\",\n    \"version\": \"0.1.0\",\n    \"spec\": \"0.1.0\",\n    \"description\": \"Created with Anchor\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"add_emission\",\n      \"discriminator\": [\n        18\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"authority\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"fee_payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"admin\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"robot_token_account\",\n          \"docs\": [\n            \"Assert that the new token account is owned by the vault\"\n          ]\n        },\n        {\n          \"name\": \"treasury_token_account\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"docs\": [\n            \"Increase the robot's position size\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"cpi_accounts\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CpiAccounts\"\n            }\n          }\n        },\n        {\n          \"name\": \"treasury_fee_bps\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"add_farm\",\n      \"discriminator\": [\n        22\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"fee_payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"mint_new\"\n        },\n        {\n          \"name\": \"admin_state\"\n        },\n        {\n          \"name\": \"token_source\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_farm\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"token_rate\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"until_timestamp\",\n          \"type\": \"u32\"\n        }\n      ]\n    },\n    {\n      \"name\": \"add_lp_tokens_metadata\",\n      \"discriminator\": [\n        41\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"admin\"\n        },\n        {\n          \"name\": \"market\"\n        },\n        {\n          \"name\": \"mint_lp\"\n        },\n        {\n          \"name\": \"metadata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_metadata_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"name\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"symbol\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"uri\",\n          \"type\": \"string\"\n        }\n      ]\n    },\n    {\n      \"name\": \"add_market_emission\",\n      \"discriminator\": [\n        25\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"fee_payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"mint_new\"\n        },\n        {\n          \"name\": \"admin_state\"\n        },\n        {\n          \"name\": \"token_emission\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"cpi_accounts\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CpiAccounts\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"buy_yt\",\n      \"docs\": [\n        \"Buy YT with SY\"\n      ],\n      \"discriminator\": [\n        0\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"trader\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_trader\",\n          \"docs\": [\n            \"Source account for the trader's SY tokens\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_yt_trader\",\n          \"docs\": [\n            \"Destination for receiving YT tokens\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"Temporary SY account owned by market\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"PT liquidity owned by market\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"vault_authority\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table_vault\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"sy_in\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"yt_out\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"BuyYtEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"claim_farm_emissions\",\n      \"discriminator\": [\n        24\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\"\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint\"\n        },\n        {\n          \"name\": \"token_farm\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"Amount\"\n            }\n          }\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"ClaimFarmEmissionsEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"collect_emission\",\n      \"discriminator\": [\n        19\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"authority\"\n        },\n        {\n          \"name\": \"emission_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"emission_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"treasury_emission_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"Amount\"\n            }\n          }\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"CollectEmissionEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"collect_interest\",\n      \"discriminator\": [\n        6\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"docs\": [\n            \"Owner of the YieldTokenPosition\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"yield_position\",\n          \"docs\": [\n            \"Owner's position data for YT deposits\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"docs\": [\n            \"The vault that holds the SY tokens in escrow\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_dst\",\n          \"docs\": [\n            \"The receiving token account for SY withdrawn\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"treasury_sy_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"Amount\"\n            }\n          }\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"CollectInterestEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"collect_treasury_emission\",\n      \"discriminator\": [\n        20\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"yield_position\",\n          \"docs\": [\n            \"constrained by vault\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"authority\",\n          \"docs\": [\n            \"constrained by vault\"\n          ]\n        },\n        {\n          \"name\": \"emission_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"emission_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"admin\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"emission_index\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"Amount\"\n            }\n          }\n        },\n        {\n          \"name\": \"kind\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CollectTreasuryEmissionKind\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"collect_treasury_interest\",\n      \"discriminator\": [\n        21\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"docs\": [\n            \"The vault that holds the SY tokens in escrow\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_dst\",\n          \"docs\": [\n            \"The receiving token account for SY withdrawn\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"admin\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"Amount\"\n            }\n          }\n        },\n        {\n          \"name\": \"kind\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CollectTreasuryInterestKind\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit_yt\",\n      \"docs\": [\n        \"Deposit YT into escrow in order to earn rewards & SY interest\"\n      ],\n      \"discriminator\": [\n        7\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"depositor\",\n          \"docs\": [\n            \"Permissionless depositor - not necessarily the owner of the YieldTokenPosition\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"docs\": [\n            \"Vault that manages YT\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_yield_position\",\n          \"docs\": [\n            \"Position data for YT deposits, linked to vault\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"yt_src\",\n          \"docs\": [\n            \"Depositor's YT token account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_yt\",\n          \"docs\": [\n            \"Vault-owned escrow account for YT\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\",\n          \"docs\": [\n            \"The SY interface implementation for the vault's token\"\n          ]\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"docs\": [\n            \"Vault-owned yield token position\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"DepositYtEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"init_lp_position\",\n      \"docs\": [\n        \"Initialize a LP position for a user to deposit LP tokens into\"\n      ],\n      \"discriminator\": [\n        13\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fee_payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"owner\"\n        },\n        {\n          \"name\": \"market\"\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"InitLpPositionEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"init_market_two\",\n      \"discriminator\": [\n        10\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"admin_signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"docs\": [\n            \"There is 1 market per vault\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"docs\": [\n            \"Links the mint_sy & mint_pt & sy_program together\"\n          ]\n        },\n        {\n          \"name\": \"mint_sy\"\n        },\n        {\n          \"name\": \"mint_pt\"\n        },\n        {\n          \"name\": \"mint_lp\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"docs\": [\n            \"This account for SY is only a temporary pass-through account\",\n            \"It is used to transfer SY tokens from the signer to the market\",\n            \"And then from the market to the SY program's escrow\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_lp\",\n          \"docs\": [\n            \"Holds activated LP tokens for farming & SY emissions\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"pt_src\",\n          \"docs\": [\n            \"Signer's PT token account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_src\",\n          \"docs\": [\n            \"Signer's SY token account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_dst\",\n          \"docs\": [\n            \"Receiving account for LP tokens\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\",\n          \"docs\": [\n            \"Use the old Token program as the implementation for PT & SY & LP tokens\"\n          ]\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"associated_token_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"admin\"\n        },\n        {\n          \"name\": \"token_treasury_fee_sy\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"ln_fee_rate_root\",\n          \"type\": \"f64\"\n        },\n        {\n          \"name\": \"rate_scalar_root\",\n          \"type\": \"f64\"\n        },\n        {\n          \"name\": \"init_rate_anchor\",\n          \"type\": \"f64\"\n        },\n        {\n          \"name\": \"sy_exchange_rate\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"Number\"\n            }\n          }\n        },\n        {\n          \"name\": \"pt_init\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"sy_init\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"fee_treasury_sy_bps\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"cpi_accounts\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CpiAccounts\"\n            }\n          }\n        },\n        {\n          \"name\": \"seed_id\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_vault\",\n      \"docs\": [\n        \"High-trust function to init vault\"\n      ],\n      \"discriminator\": [\n        2\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"admin\"\n        },\n        {\n          \"name\": \"authority\",\n          \"docs\": [\n            \"The signer for the vault\"\n          ]\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_sy\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"treasury_token_account\"\n        },\n        {\n          \"name\": \"associated_token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"metadata\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_metadata_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"start_timestamp\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"duration\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"interest_bps_fee\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"cpi_accounts\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CpiAccounts\"\n            }\n          }\n        },\n        {\n          \"name\": \"min_op_size_strip\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_op_size_merge\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"pt_metadata_name\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"pt_metadata_symbol\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"pt_metadata_uri\",\n          \"type\": \"string\"\n        }\n      ]\n    },\n    {\n      \"name\": \"initialize_yield_position\",\n      \"discriminator\": [\n        3\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"docs\": [\n            \"Owner of the new YieldTokenPosition\",\n            \"ie - the \\\"owner\\\" is not a Signer\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"vault\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"InitializeYieldPositionEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"market_collect_emission\",\n      \"docs\": [\n        \"Collect a staged emission\"\n      ],\n      \"discriminator\": [\n        16\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_emission_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_emission_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"emission_index\",\n          \"type\": \"u16\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"MarketCollectEmissionEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"market_deposit_lp\",\n      \"docs\": [\n        \"Deposit LP tokens into a personal LP position account\"\n      ],\n      \"discriminator\": [\n        14\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_src\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"DepositLpEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"market_two_deposit_liquidity\",\n      \"discriminator\": [\n        11\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"depositor\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_src\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_src\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\",\n          \"docs\": [\n            \"Address lookup table for vault\"\n          ]\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"pt_intent\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"sy_intent\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_lp_out\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"DepositLiquidityEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"market_two_withdraw_liquidity\",\n      \"discriminator\": [\n        12\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"withdrawer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"Market PT liquidity account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"Market-owned interchange account for SY\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_src\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\",\n          \"docs\": [\n            \"Address lookup table for vault\"\n          ]\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"lp_in\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_pt_out\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_sy_out\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"WithdrawLiquidityEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"market_withdraw_lp\",\n      \"docs\": [\n        \"Withdraw LP tokens from personal LP position account\"\n      ],\n      \"discriminator\": [\n        15\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\"\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"WithdrawLpEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"merge\",\n      \"docs\": [\n        \"Merge PT + YT into SY\",\n        \"Redeems & burns them, in exchange for SY\"\n      ],\n      \"discriminator\": [\n        5\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"docs\": [\n            \"This authority owns the escrow_sy account & the robot account with the SY program\",\n            \"Needs to be mutable to be used in deposit_sy CPI\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_dst\",\n          \"docs\": [\n            \"Destination account for SY withdrawn from vault\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"docs\": [\n            \"Vault-owned account for SY tokens\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"yt_src\",\n          \"docs\": [\n            \"The owner's YT token account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"pt_src\",\n          \"docs\": [\n            \"The owner's PT token account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"docs\": [\n            \"Mint for YT -- needed for burning\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"docs\": [\n            \"Mint for PT -- needed for burning\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"docs\": [\n            \"Yield position for the vault robot account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"MergeEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"modify_farm\",\n      \"discriminator\": [\n        23\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"signer\": true\n        },\n        {\n          \"name\": \"mint\"\n        },\n        {\n          \"name\": \"admin_state\"\n        },\n        {\n          \"name\": \"token_source\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_farm\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"until_timestamp\",\n          \"type\": \"u32\"\n        },\n        {\n          \"name\": \"new_rate\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"modify_market_setting\",\n      \"discriminator\": [\n        27\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"admin_state\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"action\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"MarketAdminAction\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"modify_vault_setting\",\n      \"discriminator\": [\n        26\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"admin_state\"\n        },\n        {\n          \"name\": \"system_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"action\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"AdminAction\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"realloc_market\",\n      \"discriminator\": [\n        40\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"admin_state\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"rent\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"additional_bytes\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"sell_yt\",\n      \"docs\": [\n        \"Sell YT for SY\"\n      ],\n      \"discriminator\": [\n        1\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"trader\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_yt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"Account owned by market\",\n            \"This is a temporary account that receives SY tokens from the user, after which it transfers them to the SY program\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"PT liquidity account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority_vault\",\n          \"docs\": [\n            \"Vault-robot authority\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow_vault\",\n          \"docs\": [\n            \"Vault-robot owned escrow account for SY\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table_vault\",\n          \"docs\": [\n            \"ALT owned by vault\"\n          ]\n        },\n        {\n          \"name\": \"yield_position_vault\",\n          \"docs\": [\n            \"Yield position owned by vault robot\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"yt_in\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_sy_out\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"SellYtEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"stage_yt_yield\",\n      \"discriminator\": [\n        9\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_yield_position\",\n          \"docs\": [\n            \"Position data for YT deposits, linked to vault\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"yield_position\",\n          \"docs\": [\n            \"Yield position for the vault robot account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"StageYieldEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"strip\",\n      \"docs\": [\n        \"Strip SY into PT + YT\"\n      ],\n      \"discriminator\": [\n        4\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"depositor\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"docs\": [\n            \"This account owns the mints for PT & YT\",\n            \"And owns the robot account with the SY program\",\n            \"Needs to be mutable to be used in deposit_sy CPI\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_src\",\n          \"docs\": [\n            \"Depositor's SY token account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"docs\": [\n            \"Temporary account owned by the vault for receiving SY tokens before depositing into the SY Program's escrow account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"yt_dst\",\n          \"docs\": [\n            \"Final destination for receiving YT (probably, but not necessarily, owned by the depositor)\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"pt_dst\",\n          \"docs\": [\n            \"Final destination for receiving PT (probably, but not necessarily, owned by the depositor)\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"address_lookup_table\",\n          \"docs\": [\n            \"Address lookup table for vault\"\n          ]\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"docs\": [\n            \"Vault-owned yield position account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"StripEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"trade_pt\",\n      \"discriminator\": [\n        17\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"trader\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_trader\",\n          \"docs\": [\n            \"Trader's SY token account\",\n            \"Mint is constrained by TokenProgram\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_trader\",\n          \"docs\": [\n            \"Receiving PT token account\",\n            \"Mint is constrained by TokenProgram\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"Account owned by market\",\n            \"This is a temporary account that receives SY tokens from the user, after which it transfers them to the SY program\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"PT liquidity account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"net_trader_pt\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"sy_constraint\",\n          \"type\": \"i64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"TradePtEvent\"\n        }\n      }\n    },\n    {\n      \"name\": \"withdraw_yt\",\n      \"discriminator\": [\n        8\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"owner\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"docs\": [\n            \"Vault that manages YT\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_yield_position\",\n          \"docs\": [\n            \"Position data for YT deposits, linked to vault\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"yt_dst\",\n          \"docs\": [\n            \"Withdrawer's YT token account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_yt\",\n          \"docs\": [\n            \"Vault-owned escrow account for YT\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"authority\"\n        },\n        {\n          \"name\": \"sy_program\",\n          \"docs\": [\n            \"The SY interface implementation for the vault's token\"\n          ]\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ],\n      \"returns\": {\n        \"defined\": {\n          \"name\": \"WithdrawYtEventV2\"\n        }\n      }\n    },\n    {\n      \"name\": \"wrapper_buy_pt\",\n      \"discriminator\": [\n        29\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"buyer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"pt_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"max_base_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"mint_sy_rem_accounts_until\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_buy_yt\",\n      \"discriminator\": [\n        31\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"buyer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_yt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"market_address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"vault_authority\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault_address_lookup_table\"\n        },\n        {\n          \"name\": \"user_yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"yt_out\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"max_base_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"mint_sy_accounts_length\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_collect_interest\",\n      \"discriminator\": [\n        33\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"claimer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"docs\": [\n            \"The authority owned by the vault for minting PT/YT\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"treasury_sy_token_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"redeem_sy_accounts_length\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_merge\",\n      \"discriminator\": [\n        39\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"merger\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"token_sy_merger\",\n          \"docs\": [\n            \"Token account for SY owned by the merger\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_yt_merger\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_merger\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault_address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"vault_robot_yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount_py\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"redeem_sy_accounts_until\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_provide_liquidity\",\n      \"docs\": [\n        \"Provide liquidity to a market starting with a base asset\",\n        \"This instruction\",\n        \"- deposits base asset for SY\",\n        \"- strips a portion of the SY into PT & YT\",\n        \"- provides the remaining SY with the PT into the market\",\n        \"- keeps the YT\",\n        \"\",\n        \"# Arguments\",\n        \"- `amount_base` - The amount of base asset to deposit\",\n        \"- `min_lp_out` - The minimum amount of LP tokens to receive\",\n        \"- `mint_base_accounts_until` - The index of the account to use for the base asset mint\"\n      ],\n      \"discriminator\": [\n        28\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"depositor\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"docs\": [\n            \"The authority owned by the vault for minting PT/YT\"\n          ]\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"PT liquidity account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"SY token account owned by the market\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_depositor\",\n          \"docs\": [\n            \"Token account for SY owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_yt_depositor\",\n          \"docs\": [\n            \"Token account for YT owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_depositor\",\n          \"docs\": [\n            \"Token account for PT owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"vault_address_lookup_table\"\n        },\n        {\n          \"name\": \"market_address_lookup_table\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"user_yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault_robot_yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount_base\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_lp_out\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"mint_base_accounts_until\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_provide_liquidity_base\",\n      \"discriminator\": [\n        36\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"depositor\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"PT liquidity account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"SY token account owned by the market\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_depositor\",\n          \"docs\": [\n            \"Token account for SY owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_depositor\",\n          \"docs\": [\n            \"Token account for PT owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"market_address_lookup_table\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount_base\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_lp_out\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"mint_sy_accounts_until\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"external_pt_to_buy\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"external_sy_constraint\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_provide_liquidity_classic\",\n      \"discriminator\": [\n        37\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"depositor\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"PT liquidity account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"SY token account owned by the market\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_dst\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_depositor\",\n          \"docs\": [\n            \"Token account for SY owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_depositor\",\n          \"docs\": [\n            \"Token account for PT owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"market_address_lookup_table\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"token_lp_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount_base\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"amount_pt\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_lp_out\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"mint_sy_accounts_until\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_sell_pt\",\n      \"discriminator\": [\n        30\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"seller\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount_pt\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_base_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"redeem_sy_rem_accounts_until\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_sell_yt\",\n      \"discriminator\": [\n        32\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"seller\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_yt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_trader\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"market_address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"vault_authority\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault_address_lookup_table\"\n        },\n        {\n          \"name\": \"yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"yt_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"min_base_amount\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"redeem_sy_accounts_until\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_strip\",\n      \"discriminator\": [\n        38\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"depositor\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"token_sy_depositor\",\n          \"docs\": [\n            \"Token account for SY owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"escrow_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_yt_depositor\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_depositor\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_pt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"authority\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault_address_lookup_table\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"escrow_yt\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"user_yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"vault_robot_yield_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount_base\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"mint_sy_accounts_until\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_withdraw_liquidity\",\n      \"discriminator\": [\n        34\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"withdrawer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"PT liquidity account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"SY token account owned by the market\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_src\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_withdrawer\",\n          \"docs\": [\n            \"Token account for SY owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_withdrawer\",\n          \"docs\": [\n            \"Token account for PT owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"market_address_lookup_table\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"token_lp_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_fee_treasury_sy\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount_lp\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"sy_constraint\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"redeem_sy_accounts_length\",\n          \"type\": \"u8\"\n        }\n      ]\n    },\n    {\n      \"name\": \"wrapper_withdraw_liquidity_classic\",\n      \"discriminator\": [\n        35\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"withdrawer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"market\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_escrow\",\n          \"docs\": [\n            \"PT liquidity account\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_escrow\",\n          \"docs\": [\n            \"SY token account owned by the market\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_lp_src\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"mint_lp\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_sy_withdrawer\",\n          \"docs\": [\n            \"Token account for SY owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_pt_withdrawer\",\n          \"docs\": [\n            \"Token account for PT owned by the depositor\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"market_address_lookup_table\"\n        },\n        {\n          \"name\": \"sy_program\"\n        },\n        {\n          \"name\": \"token_lp_escrow\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_position\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\"\n        },\n        {\n          \"name\": \"event_authority\"\n        },\n        {\n          \"name\": \"program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount_lp\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"redeem_sy_accounts_length\",\n          \"type\": \"u8\"\n        }\n      ]\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"Admin\",\n      \"discriminator\": [\n        244,\n        158,\n        220,\n        65,\n        8,\n        73,\n        4,\n        65\n      ]\n    },\n    {\n      \"name\": \"LpPosition\",\n      \"discriminator\": [\n        105,\n        241,\n        37,\n        200,\n        224,\n        2,\n        252,\n        90\n      ]\n    },\n    {\n      \"name\": \"MarketTwo\",\n      \"discriminator\": [\n        212,\n        4,\n        132,\n        126,\n        169,\n        121,\n        121,\n        20\n      ]\n    },\n    {\n      \"name\": \"Vault\",\n      \"discriminator\": [\n        211,\n        8,\n        232,\n        43,\n        2,\n        152,\n        117,\n        119\n      ]\n    },\n    {\n      \"name\": \"YieldTokenPosition\",\n      \"discriminator\": [\n        227,\n        92,\n        146,\n        49,\n        29,\n        85,\n        71,\n        94\n      ]\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"BuyPtEvent\",\n      \"discriminator\": [\n        62,\n        132,\n        50,\n        43,\n        219,\n        234,\n        221,\n        167\n      ]\n    },\n    {\n      \"name\": \"BuyYtEvent\",\n      \"discriminator\": [\n        172,\n        181,\n        56,\n        183,\n        219,\n        24,\n        130,\n        64\n      ]\n    },\n    {\n      \"name\": \"ClaimFarmEmissionsEvent\",\n      \"discriminator\": [\n        184,\n        10,\n        159,\n        144,\n        144,\n        194,\n        166,\n        92\n      ]\n    },\n    {\n      \"name\": \"ClaimFarmEmissionsEventV2\",\n      \"discriminator\": [\n        179,\n        43,\n        141,\n        15,\n        184,\n        80,\n        2,\n        47\n      ]\n    },\n    {\n      \"name\": \"CollectEmissionEvent\",\n      \"discriminator\": [\n        220,\n        173,\n        217,\n        52,\n        133,\n        253,\n        5,\n        114\n      ]\n    },\n    {\n      \"name\": \"CollectEmissionEventV2\",\n      \"discriminator\": [\n        235,\n        35,\n        233,\n        149,\n        215,\n        221,\n        100,\n        66\n      ]\n    },\n    {\n      \"name\": \"CollectInterestEvent\",\n      \"discriminator\": [\n        95,\n        53,\n        16,\n        82,\n        91,\n        39,\n        176,\n        252\n      ]\n    },\n    {\n      \"name\": \"CollectInterestEventV2\",\n      \"discriminator\": [\n        208,\n        173,\n        139,\n        10,\n        96,\n        51,\n        184,\n        154\n      ]\n    },\n    {\n      \"name\": \"DepositLiquidityEvent\",\n      \"discriminator\": [\n        169,\n        84,\n        67,\n        174,\n        222,\n        138,\n        16,\n        123\n      ]\n    },\n    {\n      \"name\": \"DepositLpEvent\",\n      \"discriminator\": [\n        118,\n        20,\n        164,\n        8,\n        112,\n        130,\n        3,\n        62\n      ]\n    },\n    {\n      \"name\": \"DepositLpEventV2\",\n      \"discriminator\": [\n        49,\n        159,\n        183,\n        208,\n        173,\n        243,\n        36,\n        137\n      ]\n    },\n    {\n      \"name\": \"DepositYtEvent\",\n      \"discriminator\": [\n        78,\n        226,\n        18,\n        115,\n        161,\n        164,\n        137,\n        112\n      ]\n    },\n    {\n      \"name\": \"DepositYtEventV2\",\n      \"discriminator\": [\n        24,\n        10,\n        201,\n        118,\n        79,\n        178,\n        237,\n        243\n      ]\n    },\n    {\n      \"name\": \"InitLpPositionEvent\",\n      \"discriminator\": [\n        7,\n        245,\n        31,\n        228,\n        42,\n        49,\n        201,\n        192\n      ]\n    },\n    {\n      \"name\": \"InitializeYieldPositionEvent\",\n      \"discriminator\": [\n        114,\n        53,\n        131,\n        31,\n        90,\n        57,\n        208,\n        196\n      ]\n    },\n    {\n      \"name\": \"MarketCollectEmissionEvent\",\n      \"discriminator\": [\n        125,\n        129,\n        15,\n        139,\n        232,\n        244,\n        82,\n        67\n      ]\n    },\n    {\n      \"name\": \"MarketCollectEmissionEventV2\",\n      \"discriminator\": [\n        173,\n        158,\n        156,\n        218,\n        11,\n        243,\n        57,\n        54\n      ]\n    },\n    {\n      \"name\": \"MergeEvent\",\n      \"discriminator\": [\n        25,\n        30,\n        29,\n        41,\n        108,\n        139,\n        103,\n        4\n      ]\n    },\n    {\n      \"name\": \"SellPtEvent\",\n      \"discriminator\": [\n        103,\n        139,\n        188,\n        216,\n        68,\n        124,\n        110,\n        63\n      ]\n    },\n    {\n      \"name\": \"SellYtEvent\",\n      \"discriminator\": [\n        149,\n        147,\n        29,\n        159,\n        148,\n        240,\n        129,\n        7\n      ]\n    },\n    {\n      \"name\": \"StageYieldEvent\",\n      \"discriminator\": [\n        248,\n        92,\n        96,\n        80,\n        238,\n        94,\n        91,\n        195\n      ]\n    },\n    {\n      \"name\": \"StageYieldEventV2\",\n      \"discriminator\": [\n        23,\n        7,\n        36,\n        198,\n        5,\n        216,\n        217,\n        189\n      ]\n    },\n    {\n      \"name\": \"StripEvent\",\n      \"discriminator\": [\n        114,\n        189,\n        26,\n        143,\n        143,\n        50,\n        197,\n        89\n      ]\n    },\n    {\n      \"name\": \"TradePtEvent\",\n      \"discriminator\": [\n        159,\n        225,\n        96,\n        81,\n        255,\n        227,\n        233,\n        174\n      ]\n    },\n    {\n      \"name\": \"WithdrawLiquidityEvent\",\n      \"discriminator\": [\n        214,\n        6,\n        161,\n        45,\n        191,\n        142,\n        124,\n        186\n      ]\n    },\n    {\n      \"name\": \"WithdrawLpEvent\",\n      \"discriminator\": [\n        200,\n        158,\n        208,\n        54,\n        94,\n        239,\n        92,\n        222\n      ]\n    },\n    {\n      \"name\": \"WithdrawLpEventV2\",\n      \"discriminator\": [\n        17,\n        227,\n        69,\n        154,\n        238,\n        182,\n        86,\n        33\n      ]\n    },\n    {\n      \"name\": \"WithdrawYtEvent\",\n      \"discriminator\": [\n        190,\n        66,\n        234,\n        53,\n        4,\n        207,\n        221,\n        17\n      ]\n    },\n    {\n      \"name\": \"WithdrawYtEventV2\",\n      \"discriminator\": [\n        41,\n        253,\n        139,\n        142,\n        167,\n        187,\n        86,\n        118\n      ]\n    },\n    {\n      \"name\": \"WrapperBuyYtEvent\",\n      \"discriminator\": [\n        148,\n        95,\n        21,\n        54,\n        99,\n        16,\n        15,\n        40\n      ]\n    },\n    {\n      \"name\": \"WrapperCollectInterestEvent\",\n      \"discriminator\": [\n        177,\n        39,\n        249,\n        210,\n        72,\n        117,\n        16,\n        192\n      ]\n    },\n    {\n      \"name\": \"WrapperMergeEvent\",\n      \"discriminator\": [\n        97,\n        26,\n        173,\n        147,\n        157,\n        218,\n        37,\n        102\n      ]\n    },\n    {\n      \"name\": \"WrapperProvideLiquidityBaseEvent\",\n      \"discriminator\": [\n        60,\n        121,\n        164,\n        93,\n        220,\n        13,\n        142,\n        197\n      ]\n    },\n    {\n      \"name\": \"WrapperProvideLiquidityClassicEvent\",\n      \"discriminator\": [\n        87,\n        163,\n        150,\n        162,\n        186,\n        147,\n        234,\n        200\n      ]\n    },\n    {\n      \"name\": \"WrapperProvideLiquidityEvent\",\n      \"discriminator\": [\n        209,\n        42,\n        227,\n        77,\n        187,\n        216,\n        17,\n        177\n      ]\n    },\n    {\n      \"name\": \"WrapperSellYtEvent\",\n      \"discriminator\": [\n        252,\n        140,\n        45,\n        253,\n        6,\n        94,\n        95,\n        135\n      ]\n    },\n    {\n      \"name\": \"WrapperStripEvent\",\n      \"discriminator\": [\n        70,\n        128,\n        226,\n        182,\n        17,\n        99,\n        235,\n        18\n      ]\n    },\n    {\n      \"name\": \"WrapperWithdrawLiquidityClassicEvent\",\n      \"discriminator\": [\n        18,\n        154,\n        212,\n        39,\n        36,\n        23,\n        158,\n        124\n      ]\n    },\n    {\n      \"name\": \"WrapperWithdrawLiquidityEvent\",\n      \"discriminator\": [\n        52,\n        32,\n        180,\n        241,\n        36,\n        221,\n        72,\n        167\n      ]\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"InvalidProxyAccount\",\n      \"msg\": \"Invalid Proxy Account\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"VaultExpired\",\n      \"msg\": \"Vault is expired\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"EmissionIndexMustBeSequential\",\n      \"msg\": \"Emission Index must be sequential\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"AmountLargerThanStaged\",\n      \"msg\": \"Amount larger than staged\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"MathOverflow\",\n      \"msg\": \"Math overflow\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"DurationNegative\",\n      \"msg\": \"Duration is negative\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"FarmDoesNotExist\",\n      \"msg\": \"Farm does not exist\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"LpSupplyMaximumExceeded\",\n      \"msg\": \"Lp supply maximum exceeded\"\n    },\n    {\n      \"code\": 6008,\n      \"name\": \"VaultIsNotActive\",\n      \"msg\": \"Vault has not started yet or has ended\"\n    },\n    {\n      \"code\": 6009,\n      \"name\": \"OperationAmountTooSmall\",\n      \"msg\": \"Operation amount too small\"\n    },\n    {\n      \"code\": 6010,\n      \"name\": \"StrippingDisabled\",\n      \"msg\": \"Stripping is disabled\"\n    },\n    {\n      \"code\": 6011,\n      \"name\": \"MergingDisabled\",\n      \"msg\": \"Merging is disabled\"\n    },\n    {\n      \"code\": 6012,\n      \"name\": \"DepositingYtDisabled\",\n      \"msg\": \"Depositing YT is disabled\"\n    },\n    {\n      \"code\": 6013,\n      \"name\": \"WithdrawingYtDisabled\",\n      \"msg\": \"Withdrawing YT is disabled\"\n    },\n    {\n      \"code\": 6014,\n      \"name\": \"CollectingInterestDisabled\",\n      \"msg\": \"Collecting interest is disabled\"\n    },\n    {\n      \"code\": 6015,\n      \"name\": \"CollectingEmissionsDisabled\",\n      \"msg\": \"Collecting Emissions is disabled\"\n    },\n    {\n      \"code\": 6016,\n      \"name\": \"BuyingPtDisabled\",\n      \"msg\": \"Buying PT is disabled\"\n    },\n    {\n      \"code\": 6017,\n      \"name\": \"SellingPtDisabled\",\n      \"msg\": \"Selling PT is disabled\"\n    },\n    {\n      \"code\": 6018,\n      \"name\": \"BuyingYtDisabled\",\n      \"msg\": \"Buying YT is disabled\"\n    },\n    {\n      \"code\": 6019,\n      \"name\": \"SellingYtDisabled\",\n      \"msg\": \"Selling YT is disabled\"\n    },\n    {\n      \"code\": 6020,\n      \"name\": \"DepositingLiquidityDisabled\",\n      \"msg\": \"Depositing Liquidity is disabled\"\n    },\n    {\n      \"code\": 6021,\n      \"name\": \"WithdrawingLiquidityDisabled\",\n      \"msg\": \"Withdrawing Liquidity is disabled\"\n    },\n    {\n      \"code\": 6022,\n      \"name\": \"VaultInEmergencyMode\",\n      \"msg\": \"Vault is in emergency mode\"\n    },\n    {\n      \"code\": 6023,\n      \"name\": \"FarmAlreadyExists\",\n      \"msg\": \"Farm already exists\"\n    },\n    {\n      \"code\": 6024,\n      \"name\": \"ClaimLimitExceeded\",\n      \"msg\": \"Claim limit exceeded\"\n    },\n    {\n      \"code\": 6025,\n      \"name\": \"NetBalanceChangeExceedsLimit\",\n      \"msg\": \"Net balance change exceeds limit\"\n    },\n    {\n      \"code\": 6026,\n      \"name\": \"MinSyOutNotMet\",\n      \"msg\": \"Min SY out not met\"\n    },\n    {\n      \"code\": 6027,\n      \"name\": \"MinPtOutNotMet\",\n      \"msg\": \"Min PT out not met\"\n    },\n    {\n      \"code\": 6028,\n      \"name\": \"MinLpOutNotMet\",\n      \"msg\": \"Min LP out not met\"\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"Admin\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"uber_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"proposed_uber_admin\",\n            \"type\": {\n              \"option\": \"pubkey\"\n            }\n          },\n          {\n            \"name\": \"principles\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Principles\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"AdminAction\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"SetVaultStatus\",\n            \"fields\": [\n              \"u8\"\n            ]\n          },\n          {\n            \"name\": \"ChangeVaultBpsFee\",\n            \"fields\": [\n              \"u16\"\n            ]\n          },\n          {\n            \"name\": \"ChangeVaultTreasuryTokenAccount\",\n            \"fields\": [\n              \"pubkey\"\n            ]\n          },\n          {\n            \"name\": \"ChangeEmissionTreasuryTokenAccount\",\n            \"fields\": [\n              {\n                \"name\": \"emission_index\",\n                \"type\": \"u16\"\n              },\n              {\n                \"name\": \"new_token_account\",\n                \"type\": \"pubkey\"\n              }\n            ]\n          },\n          {\n            \"name\": \"ChangeMinOperationSize\",\n            \"fields\": [\n              {\n                \"name\": \"is_strip\",\n                \"type\": \"bool\"\n              },\n              {\n                \"name\": \"new_size\",\n                \"type\": \"u64\"\n              }\n            ]\n          },\n          {\n            \"name\": \"ChangeEmissionBpsFee\",\n            \"fields\": [\n              {\n                \"name\": \"emission_index\",\n                \"type\": \"u16\"\n              },\n              {\n                \"name\": \"new_fee_bps\",\n                \"type\": \"u16\"\n              }\n            ]\n          },\n          {\n            \"name\": \"ChangeCpiAccounts\",\n            \"fields\": [\n              {\n                \"name\": \"cpi_accounts\",\n                \"type\": {\n                  \"defined\": {\n                    \"name\": \"CpiAccounts\"\n                  }\n                }\n              }\n            ]\n          },\n          {\n            \"name\": \"ChangeClaimLimits\",\n            \"fields\": [\n              {\n                \"name\": \"max_claim_amount_per_window\",\n                \"type\": \"u64\"\n              },\n              {\n                \"name\": \"claim_window_duration_seconds\",\n                \"type\": \"u32\"\n              }\n            ]\n          },\n          {\n            \"name\": \"ChangeMaxPySupply\",\n            \"fields\": [\n              {\n                \"name\": \"new_max_py_supply\",\n                \"type\": \"u64\"\n              }\n            ]\n          },\n          {\n            \"name\": \"ChangeAddressLookupTable\",\n            \"fields\": [\n              \"pubkey\"\n            ]\n          },\n          {\n            \"name\": \"RemoveVaultEmission\",\n            \"fields\": [\n              \"u8\"\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Amount\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"All\"\n          },\n          {\n            \"name\": \"Some\",\n            \"fields\": [\n              \"u64\"\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"BuyPtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"buyer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"base_amount_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_amount_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"BuyYtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_yt_trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"max_sy_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"yt_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"sy_to_strip\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_borrowed\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_repaid\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ClaimFarmEmissionsEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_farm\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"farm_index\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"amount_claimed\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"remaining_staged\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ClaimFarmEmissionsEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_farm\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"farm_index\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"amount_claimed\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"remaining_staged\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"emissions\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          },\n          {\n            \"name\": \"farms\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"ClaimLimits\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"claim_window_start_timestamp\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"total_claim_amount_in_window\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_claim_amount_per_window\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"claim_window_duration_seconds\",\n            \"type\": \"u32\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CollectEmissionEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"emission_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"amount_to_user\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_to_treasury\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CollectEmissionEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"emission_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"amount_to_user\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_to_treasury\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_interest\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"YieldTokenTracker\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_emissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"YieldTokenTracker\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CollectInterestEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_to_user\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_to_treasury\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CollectInterestEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_to_user\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_to_treasury\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_interest\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"YieldTokenTracker\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_emissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"YieldTokenTracker\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CollectTreasuryEmissionKind\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"YieldPosition\"\n          },\n          {\n            \"name\": \"TreasuryEmission\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CollectTreasuryInterestKind\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"YieldPosition\"\n          },\n          {\n            \"name\": \"TreasuryInterest\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CpiAccounts\",\n      \"docs\": [\n        \"Account lists for validating CPI calls to the SY program\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"get_sy_state\",\n            \"docs\": [\n              \"Fetch SY state\"\n            ],\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"CpiInterfaceContext\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"deposit_sy\",\n            \"docs\": [\n              \"Deposit SY into personal account owned by vault\"\n            ],\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"CpiInterfaceContext\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"withdraw_sy\",\n            \"docs\": [\n              \"Withdraw SY from personal account owned by vault\"\n            ],\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"CpiInterfaceContext\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"claim_emission\",\n            \"docs\": [\n              \"Settle rewards for vault to accounts owned by the vault\"\n            ],\n            \"type\": {\n              \"vec\": {\n                \"vec\": {\n                  \"defined\": {\n                    \"name\": \"CpiInterfaceContext\"\n                  }\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"get_position_state\",\n            \"docs\": [\n              \"Get personal yield position\"\n            ],\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"CpiInterfaceContext\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CpiInterfaceContext\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"alt_index\",\n            \"docs\": [\n              \"Address-lookup-table index\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"is_signer\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"is_writable\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositLiquidityEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"depositor\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_lp\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"pt_intent\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_intent\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lp_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_lp_supply\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositLpEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_lp\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_lp_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositLpEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_lp\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_lp_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"emissions\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          },\n          {\n            \"name\": \"farms\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositYtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"depositor\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_yt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_yt_balance_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"vault_yt_balance_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_staged_yield\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositYtEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"depositor\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_yt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_yt_balance_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"vault_yt_balance_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_staged_yield\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_interest\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"YieldTokenTracker\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_emissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"YieldTokenTracker\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"EmissionInfo\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token_account\",\n            \"docs\": [\n              \"The token account for the emission where the vault authority is the authority\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"initial_index\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"last_seen_index\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"final_index\",\n            \"docs\": [\n              \"The final index is used to track the last claimable index after the vault expires\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"treasury_token_account\",\n            \"docs\": [\n              \"The treasury token account for this reward\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fee_bps\",\n            \"docs\": [\n              \"The fee taken from emission collecting\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"treasury_emission\",\n            \"docs\": [\n              \"The lambo fund\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FarmEmission\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"mint\",\n            \"docs\": [\n              \"Mint for the emission token\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_rate\",\n            \"docs\": [\n              \"Rate at which the emission token is emitted per second\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"expiry_timestamp\",\n            \"docs\": [\n              \"Expiration timestamp for the emission token\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"index\",\n            \"docs\": [\n              \"Index for converting LP shares into earned emissions\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InitLpPositionEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"fee_payer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"num_emission_trackers\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"num_farm_emissions\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"InitializeYieldPositionEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LiquidityNetBalanceLimits\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"window_start_timestamp\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"window_start_net_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"max_net_balance_change_negative_percentage\",\n            \"docs\": [\n              \"Maximum allowed negative change in basis points (10000 = 100%)\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"max_net_balance_change_positive_percentage\",\n            \"docs\": [\n              \"Maximum allowed positive change in basis points (10000 = 100%)\",\n              \"Using u32 to allow for very large increases (up to ~429,496%)\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"window_duration_seconds\",\n            \"type\": \"u32\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LpFarm\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"last_seen_timestamp\",\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"farm_emissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"FarmEmission\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LpPosition\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"docs\": [\n              \"Link to address that owns this position\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"docs\": [\n              \"Link to market that manages the LP\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_balance\",\n            \"docs\": [\n              \"Track the LP balance of the user here\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"emissions\",\n            \"docs\": [\n              \"Tracker for emissions earned (paid in emission tokens)\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          },\n          {\n            \"name\": \"farms\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketAdminAction\",\n      \"type\": {\n        \"kind\": \"enum\",\n        \"variants\": [\n          {\n            \"name\": \"SetStatus\",\n            \"fields\": [\n              \"u8\"\n            ]\n          },\n          {\n            \"name\": \"SetMaxLpSupply\",\n            \"fields\": [\n              \"u64\"\n            ]\n          },\n          {\n            \"name\": \"ChangeTreasuryTradeSyBpsFee\",\n            \"fields\": [\n              \"u16\"\n            ]\n          },\n          {\n            \"name\": \"ChangeLnFeeRateRoot\",\n            \"fields\": [\n              \"f64\"\n            ]\n          },\n          {\n            \"name\": \"ChangeRateScalarRoot\",\n            \"fields\": [\n              \"f64\"\n            ]\n          },\n          {\n            \"name\": \"ChangeCpiAccounts\",\n            \"fields\": [\n              {\n                \"name\": \"cpi_accounts\",\n                \"type\": {\n                  \"defined\": {\n                    \"name\": \"CpiAccounts\"\n                  }\n                }\n              }\n            ]\n          },\n          {\n            \"name\": \"ChangeLiquidityNetBalanceLimits\",\n            \"fields\": [\n              {\n                \"name\": \"max_net_balance_change_negative_percentage\",\n                \"type\": \"u16\"\n              },\n              {\n                \"name\": \"max_net_balance_change_positive_percentage\",\n                \"type\": \"u32\"\n              },\n              {\n                \"name\": \"window_duration_seconds\",\n                \"type\": \"u32\"\n              }\n            ]\n          },\n          {\n            \"name\": \"ChangeAddressLookupTable\",\n            \"fields\": [\n              \"pubkey\"\n            ]\n          },\n          {\n            \"name\": \"RemoveMarketEmission\",\n            \"fields\": [\n              \"u8\"\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketCollectEmissionEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_emission_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_emission_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"emission_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"amount_collected\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketCollectEmissionEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_emission_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_emission_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"emission_index\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"amount_collected\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"emissions\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          },\n          {\n            \"name\": \"farms\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketEmission\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"token_escrow\",\n            \"docs\": [\n              \"Escrow account that receives the emissions from the SY program\",\n              \"And then passes them through to the user\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_share_index\",\n            \"docs\": [\n              \"Index for converting LP shares into earned emissions\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"last_seen_staged\",\n            \"docs\": [\n              \"The difference between the staged amount and collected emission amount\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketEmissions\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"trackers\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"MarketEmission\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketFinancials\",\n      \"docs\": [\n        \"Financial parameters for the market\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"expiration_ts\",\n            \"docs\": [\n              \"Expiration timestamp, which is copied from the vault associated with the PT\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_balance\",\n            \"docs\": [\n              \"Balance of PT in the market\",\n              \"This amount is tracked separately to prevent bugs from token transfers directly to the market\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_balance\",\n            \"docs\": [\n              \"Balance of SY in the market\",\n              \"This amount is tracked separately to prevent bugs from token transfers directly to the market\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"ln_fee_rate_root\",\n            \"docs\": [\n              \"Initial log of fee rate, which decreases over time\"\n            ],\n            \"type\": \"f64\"\n          },\n          {\n            \"name\": \"last_ln_implied_rate\",\n            \"docs\": [\n              \"Last seen log of implied rate (APY) for PT\",\n              \"Used to maintain continuity of the APY between trades over time\"\n            ],\n            \"type\": \"f64\"\n          },\n          {\n            \"name\": \"rate_scalar_root\",\n            \"docs\": [\n              \"Initial rate scalar, which increases over time\"\n            ],\n            \"type\": \"f64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MarketTwo\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"address_lookup_table\",\n            \"docs\": [\n              \"Address to ALT\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_pt\",\n            \"docs\": [\n              \"Mint of the vault's PT token\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_sy\",\n            \"docs\": [\n              \"Mint of the SY program's SY token\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"docs\": [\n              \"Link to yield-stripping vault\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_lp\",\n            \"docs\": [\n              \"Mint for the market's LP tokens\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_escrow\",\n            \"docs\": [\n              \"Holds the LP tokens that are earning emissions\",\n              \"This is where LP holders \\\"stake\\\" their LP tokens\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_escrow\",\n            \"docs\": [\n              \"Token account that holds PT liquidity\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_escrow\",\n            \"docs\": [\n              \"Pass-through token account for SY moving from the depositor to the SY program\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_fee_treasury_sy\",\n            \"docs\": [\n              \"Token account that holds SY fees from trade_pt\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fee_treasury_sy_bps\",\n            \"docs\": [\n              \"Fee treasury SY BPS\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"self_address\",\n            \"docs\": [\n              \"Authority for CPI calls owned by the market struct\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"signer_bump\",\n            \"docs\": [\n              \"Bump for signing the PDA\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                1\n              ]\n            }\n          },\n          {\n            \"name\": \"status_flags\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"sy_program\",\n            \"docs\": [\n              \"Link to the SY program ID\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"financials\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarketFinancials\"\n              }\n            }\n          },\n          {\n            \"name\": \"emissions\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"MarketEmissions\"\n              }\n            }\n          },\n          {\n            \"name\": \"lp_farm\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LpFarm\"\n              }\n            }\n          },\n          {\n            \"name\": \"max_lp_supply\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lp_escrow_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"cpi_accounts\",\n            \"docs\": [\n              \"Record of CPI accounts\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"CpiAccounts\"\n              }\n            }\n          },\n          {\n            \"name\": \"is_current_flash_swap\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"liquidity_net_balance_limits\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"LiquidityNetBalanceLimits\"\n              }\n            }\n          },\n          {\n            \"name\": \"seed_id\",\n            \"docs\": [\n              \"Unique seed id for the market\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                1\n              ]\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"MergeEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"sy_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_sy\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"pt_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_yt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_pt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_py_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_sy_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"pt_redemption_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"total_sy_in_escrow\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_supply\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"yt_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_for_pt\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"is_vault_active\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Number\",\n      \"docs\": [\n        \"High precision number, stored as 4 u64 words in little endian\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"array\": [\n              \"u64\",\n              4\n            ]\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PersonalYieldTracker\",\n      \"docs\": [\n        \"Generic tracker for interest and emissions earned by deposits\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"last_seen_index\",\n            \"docs\": [\n              \"The index is the per-share value of the SY token\",\n              \"Note that the YT balance must be converted to the equivalent SY balance\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"staged\",\n            \"docs\": [\n              \"Staged tokens that may be withdrawn\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PersonalYieldTrackers\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"trackers\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"PersonalYieldTracker\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"PrincipleDetails\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"administrators\",\n            \"type\": {\n              \"vec\": \"pubkey\"\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Principles\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"marginfi_standard\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PrincipleDetails\"\n              }\n            }\n          },\n          {\n            \"name\": \"collect_treasury\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PrincipleDetails\"\n              }\n            }\n          },\n          {\n            \"name\": \"kamino_lend_standard\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PrincipleDetails\"\n              }\n            }\n          },\n          {\n            \"name\": \"exponent_core\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PrincipleDetails\"\n              }\n            }\n          },\n          {\n            \"name\": \"change_status_flags\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PrincipleDetails\"\n              }\n            }\n          },\n          {\n            \"name\": \"jito_restaking\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PrincipleDetails\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SellPtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"seller\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"pt_amount_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"base_amount_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"SellYtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_yt_trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_yt_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_sy_received_from_merge\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_sy_spent_buying_pt\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_sy_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_borrowed_and_repaid\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"StageYieldEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"payer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_yt_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_staged_yield\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_staged_emissions\",\n            \"type\": {\n              \"vec\": \"u64\"\n            }\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"StageYieldEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"payer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_yt_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_staged_yield\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_interest\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"YieldTokenTracker\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_emissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"YieldTokenTracker\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"StripEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"depositor\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"sy_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_sy\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"pt_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_yt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_pt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_sy_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_py_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"total_sy_in_escrow\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_supply\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"yt_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"all_time_high_sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"sy_for_pt\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"TradePtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_trader\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"net_trader_pt\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"net_trader_sy\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"fee_sy\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"Vault\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"sy_program\",\n            \"docs\": [\n              \"Link to SY program\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_sy\",\n            \"docs\": [\n              \"Mint for SY token\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_yt\",\n            \"docs\": [\n              \"Mint for the vault-specific YT token\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_pt\",\n            \"docs\": [\n              \"Mint for the vault-specific PT token\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_yt\",\n            \"docs\": [\n              \"Escrow account for holding deposited YT\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_sy\",\n            \"docs\": [\n              \"Escrow account that holds temporary SY tokens\",\n              \"As an interchange between users and the SY program\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yield_position\",\n            \"docs\": [\n              \"Link to a vault-owned YT position\",\n              \"This account collects yield from all \\\"unstaked\\\" YT\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"address_lookup_table\",\n            \"docs\": [\n              \"Address lookup table key for vault\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"start_ts\",\n            \"docs\": [\n              \"start timestamp\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"duration\",\n            \"docs\": [\n              \"seconds duration\"\n            ],\n            \"type\": \"u32\"\n          },\n          {\n            \"name\": \"signer_seed\",\n            \"docs\": [\n              \"Seed for CPI signing\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"authority\",\n            \"docs\": [\n              \"Authority for CPI signing\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"signer_bump\",\n            \"docs\": [\n              \"bump for signer authority PDA\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                1\n              ]\n            }\n          },\n          {\n            \"name\": \"last_seen_sy_exchange_rate\",\n            \"docs\": [\n              \"Last seen SY exchange rate\",\n              \"This continues to be updated even after vault maturity to track SY appreciation for treasury collection\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"all_time_high_sy_exchange_rate\",\n            \"docs\": [\n              \"This is the all time high exchange rate for SY\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"final_sy_exchange_rate\",\n            \"docs\": [\n              \"This is the exchange rate for SY when the vault expires\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"total_sy_in_escrow\",\n            \"docs\": [\n              \"How much SY is held in escrow\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_for_pt\",\n            \"docs\": [\n              \"The total SY set aside to back the PT holders\",\n              \"This value is updated on every operation that touches the PT supply or the last seen exchange rate\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_supply\",\n            \"docs\": [\n              \"Total supply of PT\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"treasury_sy\",\n            \"docs\": [\n              \"Amount of SY staged for the treasury\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"uncollected_sy\",\n            \"docs\": [\n              \"SY that has been earned by YT, but not yet collected\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"treasury_sy_token_account\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"interest_bps_fee\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"min_op_size_strip\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_op_size_merge\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"emissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"EmissionInfo\"\n                }\n              }\n            }\n          },\n          {\n            \"name\": \"cpi_accounts\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"CpiAccounts\"\n              }\n            }\n          },\n          {\n            \"name\": \"claim_limits\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"ClaimLimits\"\n              }\n            }\n          },\n          {\n            \"name\": \"max_py_supply\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawLiquidityEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"withdrawer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_pt_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_sy_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_src\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_lp\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"pt_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_lp_supply\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawLpEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_lp\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_lp_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawLpEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"mint_lp\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"token_lp_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_lp_balance\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"emissions\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          },\n          {\n            \"name\": \"farms\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"PersonalYieldTrackers\"\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawYtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_yt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_yt_balance_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"vault_yt_balance_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_staged_yield\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawYtEventV2\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_yield_position\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_dst\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_yt\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"sy_exchange_rate\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_yt_balance_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"vault_yt_balance_after\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"user_staged_yield\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"user_interest\",\n            \"type\": {\n              \"defined\": {\n                \"name\": \"YieldTokenTracker\"\n              }\n            }\n          },\n          {\n            \"name\": \"user_emissions\",\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"YieldTokenTracker\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperBuyYtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"buyer\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_out_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"base_in_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperCollectInterestEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"depositor\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_base_collected\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperMergeEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_py_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_sy_redeemed\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_base_out\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperProvideLiquidityBaseEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_base_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"trade_amount_pt_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"trade_amount_sy_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_lp_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lp_price\",\n            \"type\": \"f64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperProvideLiquidityClassicEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_base_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_pt_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_lp_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lp_price\",\n            \"type\": \"f64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperProvideLiquidityEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_base_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_lp_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_yt_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lp_price\",\n            \"type\": \"f64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperSellYtEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"seller\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_in_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"base_out_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"unix_timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperStripEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_base_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_sy_stripped\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_py_out\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperWithdrawLiquidityClassicEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_address\",\n            \"docs\": [\n              \"User who withdrew liquidity\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_address\",\n            \"docs\": [\n              \"Market that the user withdrew liquidity from\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_base_out\",\n            \"docs\": [\n              \"Amount of base token out\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_lp_in\",\n            \"docs\": [\n              \"Amount of LP token in\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_pt_out\",\n            \"docs\": [\n              \"Amount of PT token out\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lp_price\",\n            \"docs\": [\n              \"LP price in asset\"\n            ],\n            \"type\": \"f64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WrapperWithdrawLiquidityEvent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"market_address\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"amount_base_out\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"amount_lp_in\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"lp_price\",\n            \"type\": \"f64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"YieldTokenPosition\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"owner\",\n            \"docs\": [\n              \"Link to address that owns this position\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"vault\",\n            \"docs\": [\n              \"Link to vault that manages the YT\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"yt_balance\",\n            \"docs\": [\n              \"Track the YT balance of the user here\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"interest\",\n            \"docs\": [\n              \"Tracker for interest earned (paid in SY)\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"YieldTokenTracker\"\n              }\n            }\n          },\n          {\n            \"name\": \"emissions\",\n            \"docs\": [\n              \"Tracker for emissions earned (paid in emission tokens)\"\n            ],\n            \"type\": {\n              \"vec\": {\n                \"defined\": {\n                  \"name\": \"YieldTokenTracker\"\n                }\n              }\n            }\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"YieldTokenTracker\",\n      \"docs\": [\n        \"Generic tracker for interest and emissions earned by YT deposits\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"last_seen_index\",\n            \"docs\": [\n              \"The index is the per-share value of the SY token\",\n              \"Note that the YT balance must be converted to the equivalent SY balance\"\n            ],\n            \"type\": {\n              \"defined\": {\n                \"name\": \"Number\"\n              }\n            }\n          },\n          {\n            \"name\": \"staged\",\n            \"docs\": [\n              \"Staged tokens that may be withdrawn\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    }\n  ]\n}","import EXPONENT_CLMM_IDL_JSON from \"./exponent_clmm.json\";\nimport EXPONENT_CORE_IDL_JSON from \"./exponent_core.json\";\n\n/**\n * Raw Exponent core IDL (as committed in github.com/exponent-finance/exponent-core).\n * Kept for reference / future codegen. NOTE: its `address` field is the IDL-declared\n * program id, which differs from the live deployment — see `../constants.ts`.\n */\nexport const EXPONENT_CORE_IDL = EXPONENT_CORE_IDL_JSON;\n\n/**\n * Raw Exponent CLMM IDL (`@exponent-labs/exponent-clmm-idl`, program `XPC1MM…` /\n * \"MarketThree\"). Used to Borsh-decode the `MarketThree` pool account; its `address`\n * field is the live CLMM program id. The matured-PT roll buys the successor PT directly\n * on this PT/SY CLMM via `trade_pt` (SY → PT), with no base round-trip or aggregator.\n */\nexport const EXPONENT_CLMM_IDL = EXPONENT_CLMM_IDL_JSON;\n","import { BorshAccountsCoder, type Idl } from \"@coral-xyz/anchor\";\nimport { Connection, PublicKey } from \"@solana/web3.js\";\nimport { BigNumber } from \"bignumber.js\";\nimport BN from \"bn.js\";\n\nimport { EXPONENT_CLMM_IDL, EXPONENT_CORE_IDL } from \"../idl\";\nimport {\n  ExponentCpiInterfaceContext,\n  ExponentMarketThree,\n  ExponentMarketTwo,\n  ExponentVault,\n} from \"../types\";\n\n/**\n * Exponent's high-precision `Number` is a little-endian U256 (`[u64; 4]`) scaled by 1e12\n * (`precise_number::ONE`). See exponent-core `libraries/precise_number`.\n */\nexport const EXPONENT_NUMBER_DENOM = new BigNumber(1e12);\n\nconst EXPONENT_ACCOUNTS_CODER = new BorshAccountsCoder(EXPONENT_CORE_IDL as unknown as Idl);\nconst EXPONENT_CLMM_ACCOUNTS_CODER = new BorshAccountsCoder(EXPONENT_CLMM_IDL as unknown as Idl);\n\n/** Convert a decoded Exponent `Number` (LE `[u64; 4]` U256) to a scaled BigNumber. */\nexport function exponentNumberToBigNumber(raw: unknown): BigNumber {\n  // Anchor decodes the tuple-struct `Number([u64;4])` defensively across shapes:\n  // an array of BN/number, or an object wrapping that array.\n  let words: unknown = raw;\n  if (!Array.isArray(words) && words && typeof words === \"object\") {\n    words = (words as Record<string, unknown>)[0] ?? Object.values(words)[0];\n  }\n  if (!Array.isArray(words)) {\n    throw new Error(\"exponentNumberToBigNumber: unexpected Number shape\");\n  }\n\n  let value = new BigNumber(0);\n  const TWO_64 = new BigNumber(2).pow(64);\n  words.forEach((w, i) => {\n    const word = new BigNumber(BN.isBN(w) ? w.toString() : String(w));\n    value = value.plus(word.times(TWO_64.pow(i)));\n  });\n  return value.div(EXPONENT_NUMBER_DENOM);\n}\n\nfunction pk(v: unknown): PublicKey {\n  return v instanceof PublicKey ? v : new PublicKey(v as string);\n}\n\n/** Decode a raw `Vault` account buffer into {@link ExponentVault}. */\nexport function decodeExponentVault(data: Buffer): ExponentVault {\n  const d = EXPONENT_ACCOUNTS_CODER.decode(\"Vault\", data);\n  const get = (snake: string, camel: string) => d[snake] ?? d[camel];\n  const u64 = (v: unknown): bigint => BigInt(BN.isBN(v) ? v.toString() : String(v ?? 0));\n\n  const cpi = (get(\"cpi_accounts\", \"cpiAccounts\") ?? {}) as Record<string, unknown>;\n\n  return {\n    authority: pk(get(\"authority\", \"authority\")),\n    syProgram: pk(get(\"sy_program\", \"syProgram\")),\n    mintSy: pk(get(\"mint_sy\", \"mintSy\")),\n    mintYt: pk(get(\"mint_yt\", \"mintYt\")),\n    mintPt: pk(get(\"mint_pt\", \"mintPt\")),\n    escrowSy: pk(get(\"escrow_sy\", \"escrowSy\")),\n    yieldPosition: pk(get(\"yield_position\", \"yieldPosition\")),\n    addressLookupTable: pk(get(\"address_lookup_table\", \"addressLookupTable\")),\n    cpiAccounts: {\n      getSyState: decodeCpiContexts(cpi.get_sy_state ?? cpi.getSyState),\n      depositSy: decodeCpiContexts(cpi.deposit_sy ?? cpi.depositSy),\n      withdrawSy: decodeCpiContexts(cpi.withdraw_sy ?? cpi.withdrawSy),\n    },\n    syForPt: u64(get(\"sy_for_pt\", \"syForPt\")),\n    ptSupply: u64(get(\"pt_supply\", \"ptSupply\")),\n    lastSeenSyExchangeRate: exponentNumberToBigNumber(\n      get(\"last_seen_sy_exchange_rate\", \"lastSeenSyExchangeRate\")\n    ),\n    allTimeHighSyExchangeRate: exponentNumberToBigNumber(\n      get(\"all_time_high_sy_exchange_rate\", \"allTimeHighSyExchangeRate\")\n    ),\n    finalSyExchangeRate: exponentNumberToBigNumber(\n      get(\"final_sy_exchange_rate\", \"finalSyExchangeRate\")\n    ),\n    status: Number(get(\"status\", \"status\") ?? 0),\n    startTs: Number(get(\"start_ts\", \"startTs\") ?? 0),\n    duration: Number(get(\"duration\", \"duration\") ?? 0),\n  };\n}\n\n/** Decode a `MarketTwo` account and return its `vault` address. */\nexport function decodeExponentMarketVault(data: Buffer): PublicKey {\n  const d = EXPONENT_ACCOUNTS_CODER.decode(\"MarketTwo\", data);\n  return pk(d.vault);\n}\n\n/** Decode an Anchor-decoded list of `CpiInterfaceContext` (snake/camel tolerant). */\nfunction decodeCpiContexts(raw: unknown): ExponentCpiInterfaceContext[] {\n  if (!Array.isArray(raw)) return [];\n  return raw.map((c) => {\n    const o = (c ?? {}) as Record<string, unknown>;\n    return {\n      altIndex: Number(o.alt_index ?? o.altIndex ?? 0),\n      isSigner: Boolean(o.is_signer ?? o.isSigner ?? false),\n      isWritable: Boolean(o.is_writable ?? o.isWritable ?? false),\n    };\n  });\n}\n\n/** Decode a raw `MarketTwo` account buffer into {@link ExponentMarketTwo}. */\nexport function decodeExponentMarketTwo(data: Buffer): ExponentMarketTwo {\n  const d = EXPONENT_ACCOUNTS_CODER.decode(\"MarketTwo\", data);\n  const get = (snake: string, camel: string) => d[snake] ?? d[camel];\n  const cpi = (get(\"cpi_accounts\", \"cpiAccounts\") ?? {}) as Record<string, unknown>;\n\n  return {\n    selfAddress: pk(get(\"self_address\", \"selfAddress\")),\n    mintPt: pk(get(\"mint_pt\", \"mintPt\")),\n    mintSy: pk(get(\"mint_sy\", \"mintSy\")),\n    vault: pk(get(\"vault\", \"vault\")),\n    tokenPtEscrow: pk(get(\"token_pt_escrow\", \"tokenPtEscrow\")),\n    tokenSyEscrow: pk(get(\"token_sy_escrow\", \"tokenSyEscrow\")),\n    tokenFeeTreasurySy: pk(get(\"token_fee_treasury_sy\", \"tokenFeeTreasurySy\")),\n    addressLookupTable: pk(get(\"address_lookup_table\", \"addressLookupTable\")),\n    syProgram: pk(get(\"sy_program\", \"syProgram\")),\n    statusFlags: Number(get(\"status_flags\", \"statusFlags\") ?? 0),\n    cpiAccounts: {\n      getSyState: decodeCpiContexts(cpi.get_sy_state ?? cpi.getSyState),\n      depositSy: decodeCpiContexts(cpi.deposit_sy ?? cpi.depositSy),\n      withdrawSy: decodeCpiContexts(cpi.withdraw_sy ?? cpi.withdrawSy),\n    },\n  };\n}\n\n/** Fetch + decode an Exponent `MarketTwo` account. */\nexport async function fetchExponentMarketTwo(\n  connection: Connection,\n  market: PublicKey\n): Promise<ExponentMarketTwo> {\n  const info = await connection.getAccountInfo(market);\n  if (!info) throw new Error(`Exponent market account not found: ${market.toBase58()}`);\n  return decodeExponentMarketTwo(info.data);\n}\n\n/** Decode a raw `MarketThree` (CLMM) pool account buffer into {@link ExponentMarketThree}. */\nexport function decodeExponentMarketThree(data: Buffer): ExponentMarketThree {\n  const d = EXPONENT_CLMM_ACCOUNTS_CODER.decode(\"MarketThree\", data);\n  const get = (snake: string, camel: string) => d[snake] ?? d[camel];\n  const cpi = (get(\"cpi_sy_accounts\", \"cpiSyAccounts\") ?? {}) as Record<string, unknown>;\n\n  return {\n    selfAddress: pk(get(\"self_address\", \"selfAddress\")),\n    mintPt: pk(get(\"mint_pt\", \"mintPt\")),\n    mintSy: pk(get(\"mint_sy\", \"mintSy\")),\n    vault: pk(get(\"vault\", \"vault\")),\n    ticks: pk(get(\"ticks\", \"ticks\")),\n    tokenPtEscrow: pk(get(\"token_pt_escrow\", \"tokenPtEscrow\")),\n    tokenSyEscrow: pk(get(\"token_sy_escrow\", \"tokenSyEscrow\")),\n    tokenFeeTreasurySy: pk(get(\"token_fee_treasury_sy\", \"tokenFeeTreasurySy\")),\n    tokenFeeTreasuryPt: pk(get(\"token_fee_treasury_pt\", \"tokenFeeTreasuryPt\")),\n    addressLookupTable: pk(get(\"address_lookup_table\", \"addressLookupTable\")),\n    syProgram: pk(get(\"sy_program\", \"syProgram\")),\n    statusFlags: Number(get(\"status_flags\", \"statusFlags\") ?? 0),\n    cpiAccounts: {\n      getSyState: decodeCpiContexts(cpi.get_sy_state ?? cpi.getSyState),\n      getPositionState: decodeCpiContexts(cpi.get_position_state ?? cpi.getPositionState),\n      depositSy: decodeCpiContexts(cpi.deposit_sy ?? cpi.depositSy),\n      withdrawSy: decodeCpiContexts(cpi.withdraw_sy ?? cpi.withdrawSy),\n    },\n  };\n}\n\n/** Fetch + decode an Exponent `MarketThree` (CLMM) pool account. */\nexport async function fetchExponentMarketThree(\n  connection: Connection,\n  market: PublicKey\n): Promise<ExponentMarketThree> {\n  const info = await connection.getAccountInfo(market);\n  if (!info) throw new Error(`Exponent CLMM market account not found: ${market.toBase58()}`);\n  return decodeExponentMarketThree(info.data);\n}\n\n/** Fetch + decode an Exponent `Vault` account. */\nexport async function fetchExponentVault(\n  connection: Connection,\n  vault: PublicKey\n): Promise<ExponentVault> {\n  const info = await connection.getAccountInfo(vault);\n  if (!info) throw new Error(`Exponent vault account not found: ${vault.toBase58()}`);\n  return decodeExponentVault(info.data);\n}\n\n/** Fetch a `MarketTwo` account and resolve + fetch its `Vault`. */\nexport async function fetchExponentVaultFromMarket(\n  connection: Connection,\n  market: PublicKey\n): Promise<{ vault: PublicKey; account: ExponentVault }> {\n  const info = await connection.getAccountInfo(market);\n  if (!info) throw new Error(`Exponent market account not found: ${market.toBase58()}`);\n  const vault = decodeExponentMarketVault(info.data);\n  return { vault, account: await fetchExponentVault(connection, vault) };\n}\n\n/** Read an SPL mint's decimals (classic + token-2022 share the offset-44 layout). */\nexport async function getMintDecimals(connection: Connection, mint: PublicKey): Promise<number> {\n  const info = await connection.getAccountInfo(mint);\n  if (!info) throw new Error(`mint account not found: ${mint.toBase58()}`);\n  return info.data[44];\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\nimport {\n  EXPONENT_CLMM_PROGRAM_ID,\n  EXPONENT_CORE_PROGRAM_ID,\n  EXPONENT_EVENT_AUTHORITY_SEED,\n} from \"../constants\";\n\n/** Derive the Anchor event-CPI authority PDA for the Exponent core program. */\nexport function deriveExponentEventAuthority(): PublicKey {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(EXPONENT_EVENT_AUTHORITY_SEED)],\n    EXPONENT_CORE_PROGRAM_ID\n  )[0];\n}\n\n/** Derive the Anchor event-CPI authority PDA for the Exponent CLMM (`MarketThree`) program. */\nexport function deriveExponentClmmEventAuthority(): PublicKey {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(EXPONENT_EVENT_AUTHORITY_SEED)],\n    EXPONENT_CLMM_PROGRAM_ID\n  )[0];\n}\n","import { Buffer } from \"buffer\";\n\nimport { AccountMeta, PublicKey, TransactionInstruction, SystemProgram } from \"@solana/web3.js\";\n\nimport { EXPONENT_CLMM_PROGRAM_ID, EXPONENT_CORE_PROGRAM_ID } from \"./constants\";\nimport {\n  ExponentClmmTradePtAccounts,\n  ExponentMergeAccounts,\n  ExponentStripAccounts,\n  ExponentSwapDirection,\n  ExponentTradePtAccounts,\n  ExponentWrapperMergeAccounts,\n} from \"./types\";\nimport {\n  deriveExponentClmmEventAuthority,\n  deriveExponentEventAuthority,\n} from \"./utils/derive.utils\";\n\nimport { TOKEN_PROGRAM_ID } from \"~/vendor/spl\";\n\n/**\n * `merge` instruction discriminator, taken from the committed Exponent IDL\n * (`merge` → `[5]` — a single-byte custom discriminator, not the default 8-byte Anchor\n * one). Account order + writable/signer flags below also mirror the IDL / the program's\n * `#[derive(Accounts)] struct Merge` exactly.\n */\nconst MERGE_DISCRIMINATOR = Buffer.from([5]);\n\n/**\n * Build the Exponent `merge(amount)` instruction — redeems `amount` PT (post-maturity,\n * 1:1, no AMM/slippage) into SY at `sySrcDstAta`.\n *\n * @param accounts resolved merge accounts (see {@link ExponentMergeAccounts})\n * @param amountNative PT amount to redeem, in native units (u64)\n */\nexport function makeExponentMergeIx(\n  accounts: ExponentMergeAccounts,\n  amountNative: bigint\n): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const eventAuthority = deriveExponentEventAuthority();\n\n  // data = discriminator(1) + amount(u64 LE, 8)\n  const data = Buffer.alloc(MERGE_DISCRIMINATOR.length + 8);\n  MERGE_DISCRIMINATOR.copy(data, 0);\n  data.writeBigUInt64LE(amountNative, MERGE_DISCRIMINATOR.length);\n\n  // Order + writable/signer flags taken verbatim from the IDL's `merge` accounts.\n  const keys: AccountMeta[] = [\n    { pubkey: accounts.owner, isSigner: true, isWritable: true },\n    { pubkey: accounts.authority, isSigner: false, isWritable: true },\n    { pubkey: accounts.vault, isSigner: false, isWritable: true },\n    { pubkey: accounts.sySrcDstAta, isSigner: false, isWritable: true },\n    { pubkey: accounts.escrowSy, isSigner: false, isWritable: true },\n    { pubkey: accounts.ytSrcAta, isSigner: false, isWritable: true },\n    { pubkey: accounts.ptSrcAta, isSigner: false, isWritable: true },\n    { pubkey: accounts.mintYt, isSigner: false, isWritable: true },\n    { pubkey: accounts.mintPt, isSigner: false, isWritable: true },\n    { pubkey: tokenProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.syProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.addressLookupTable, isSigner: false, isWritable: false },\n    { pubkey: accounts.yieldPosition, isSigner: false, isWritable: true },\n    { pubkey: eventAuthority, isSigner: false, isWritable: false },\n    { pubkey: EXPONENT_CORE_PROGRAM_ID, isSigner: false, isWritable: false },\n    // SY-program CPI accounts (getSyState ++ withdrawSy), ALT-resolved (post-maturity merge\n    // still CPIs into the SY program to move SY out of escrow).\n    ...(accounts.remainingAccounts ?? []),\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: EXPONENT_CORE_PROGRAM_ID,\n    data,\n  });\n}\n\n/**\n * `trade_pt` instruction discriminator, taken from the committed Exponent IDL\n * (`trade_pt` → `[17]` — a single-byte custom discriminator). Account order +\n * writable/signer flags below mirror the IDL / the program's `#[derive(Accounts)]`\n * exactly, and match the SDK's `createTradePtInstruction`.\n */\nconst TRADE_PT_DISCRIMINATOR = Buffer.from([17]);\n\n/**\n * Signed `trade_pt` args for **buying** PT with SY (the roll's buy leg).\n *\n * The program's convention is signed-from-the-trader's-perspective: a buy makes PT flow\n * *to* the trader (`net_trader_pt > 0`) and SY flow *away* (`sy_constraint < 0`, the most\n * negative SY balance change the trader will tolerate — i.e. the max SY spent).\n *\n * @param ptOutNative   exact PT the trader receives (native u64). Set to a conservative\n *                      floor; the trade gives exactly this many PT.\n * @param maxSyInNative max SY the trader is willing to spend (native u64).\n */\nexport function exponentBuyPtArgs({\n  ptOutNative,\n  maxSyInNative,\n}: {\n  ptOutNative: bigint;\n  maxSyInNative: bigint;\n}): { netTraderPt: bigint; syConstraint: bigint } {\n  return { netTraderPt: ptOutNative, syConstraint: -maxSyInNative };\n}\n\n/**\n * Build the Exponent `trade_pt(net_trader_pt, sy_constraint)` instruction — an\n * implied-APY AMM trade of SY ↔ PT on a `MarketTwo`. For a buy use {@link exponentBuyPtArgs}.\n *\n * Pricing PT reads the SY exchange rate on-chain, so `accounts.remainingAccounts` (the\n * flavor's SY-program CPI accounts, resolved from the market ALT) are appended after the\n * 12 fixed accounts, and the transaction must carry the market's address lookup table.\n *\n * @param accounts resolved trade accounts (see {@link ExponentTradePtAccounts})\n * @param args     signed `net_trader_pt` / `sy_constraint` (i64 LE)\n */\nexport function makeExponentTradePtIx(\n  accounts: ExponentTradePtAccounts,\n  args: { netTraderPt: bigint; syConstraint: bigint }\n): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const eventAuthority = deriveExponentEventAuthority();\n\n  // data = discriminator(1) + net_trader_pt(i64 LE, 8) + sy_constraint(i64 LE, 8)\n  const data = Buffer.alloc(TRADE_PT_DISCRIMINATOR.length + 16);\n  TRADE_PT_DISCRIMINATOR.copy(data, 0);\n  data.writeBigInt64LE(args.netTraderPt, TRADE_PT_DISCRIMINATOR.length);\n  data.writeBigInt64LE(args.syConstraint, TRADE_PT_DISCRIMINATOR.length + 8);\n\n  // Order + writable/signer flags taken verbatim from the IDL's `trade_pt` accounts.\n  const keys: AccountMeta[] = [\n    { pubkey: accounts.trader, isSigner: true, isWritable: true },\n    { pubkey: accounts.market, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenSyTrader, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenPtTrader, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenSyEscrow, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenPtEscrow, isSigner: false, isWritable: true },\n    { pubkey: accounts.addressLookupTable, isSigner: false, isWritable: false },\n    { pubkey: tokenProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.syProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.tokenFeeTreasurySy, isSigner: false, isWritable: true },\n    { pubkey: eventAuthority, isSigner: false, isWritable: false },\n    { pubkey: EXPONENT_CORE_PROGRAM_ID, isSigner: false, isWritable: false },\n    // SY-program CPI accounts (getSyState ++ depositSy ++ withdrawSy), ALT-resolved.\n    ...accounts.remainingAccounts,\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: EXPONENT_CORE_PROGRAM_ID,\n    data,\n  });\n}\n\n/**\n * `strip` instruction discriminator (Exponent IDL `strip` → `[4]`, single-byte). Account\n * order/flags mirror the IDL / SDK `createStripInstruction`. `strip` is the inverse of\n * `merge`: it takes SY and mints PT + YT (1:1 against the vault — no AMM, no slippage).\n */\nconst STRIP_DISCRIMINATOR = Buffer.from([4]);\n\n/**\n * Build the Exponent `strip(amount)` instruction — splits `amount` SY into PT + YT on an\n * active vault. The minted PT lands in `ptDst`, the YT in `ytDst`. Because PT is minted (not\n * swapped), this is the buy leg for rolling more PT than a thin AMM pool could provide.\n *\n * Pricing PT/YT reads the SY rate on-chain, so `accounts.remainingAccounts` (the flavor's\n * `deposit_sy` CPI accounts, resolved from the vault ALT) are appended after the 15 fixed\n * accounts, and the transaction must carry the vault's address lookup table.\n *\n * @param accounts resolved strip accounts (see {@link ExponentStripAccounts})\n * @param amountNative SY amount to strip, in native units (u64)\n */\nexport function makeExponentStripIx(\n  accounts: ExponentStripAccounts,\n  amountNative: bigint\n): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const eventAuthority = deriveExponentEventAuthority();\n\n  // data = discriminator(1) + amount(u64 LE, 8)\n  const data = Buffer.alloc(STRIP_DISCRIMINATOR.length + 8);\n  STRIP_DISCRIMINATOR.copy(data, 0);\n  data.writeBigUInt64LE(amountNative, STRIP_DISCRIMINATOR.length);\n\n  // Order + writable/signer flags taken verbatim from the IDL / SDK `createStripInstruction`.\n  const keys: AccountMeta[] = [\n    { pubkey: accounts.depositor, isSigner: true, isWritable: true },\n    { pubkey: accounts.authority, isSigner: false, isWritable: true },\n    { pubkey: accounts.vault, isSigner: false, isWritable: true },\n    { pubkey: accounts.sySrc, isSigner: false, isWritable: true },\n    { pubkey: accounts.escrowSy, isSigner: false, isWritable: true },\n    { pubkey: accounts.ytDst, isSigner: false, isWritable: true },\n    { pubkey: accounts.ptDst, isSigner: false, isWritable: true },\n    { pubkey: accounts.mintYt, isSigner: false, isWritable: true },\n    { pubkey: accounts.mintPt, isSigner: false, isWritable: true },\n    { pubkey: tokenProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.addressLookupTable, isSigner: false, isWritable: false },\n    { pubkey: accounts.syProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.yieldPosition, isSigner: false, isWritable: true },\n    { pubkey: eventAuthority, isSigner: false, isWritable: false },\n    { pubkey: EXPONENT_CORE_PROGRAM_ID, isSigner: false, isWritable: false },\n    // SY-program CPI accounts (depositSy), ALT-resolved.\n    ...(accounts.remainingAccounts ?? []),\n  ];\n\n  return new TransactionInstruction({ keys, programId: EXPONENT_CORE_PROGRAM_ID, data });\n}\n\n/**\n * `wrapper_merge` instruction discriminator (Exponent IDL `wrapper_merge` → `[39]`,\n * single-byte). It merges PT (post-maturity, 1:1) **and** CPIs into the flavor's SY program\n * to redeem the resulting SY into the underlying **base** token — so the roll's buy leg can\n * swap a normal token instead of the un-swappable SY. Account order/flags mirror the IDL /\n * SDK `createWrapperMergeInstruction`.\n */\nconst WRAPPER_MERGE_DISCRIMINATOR = Buffer.from([39]);\n\n/**\n * Build the Exponent `wrapper_merge(amount_py, redeem_sy_accounts_until)` instruction —\n * redeems `amountPyNative` PT into the underlying base token at the owner's base ATA.\n *\n * The remaining accounts are `[...flavor redeem accounts, ...vault SY-CPI accounts]`;\n * `redeemSyAccountsUntil` tells the program where the redeem accounts end. The redeem's first\n * account is the owner and keeps its signer flag (the SY-CPI accounts are forced non-signer,\n * resolved upstream). The transaction must carry the vault's address lookup table.\n *\n * @param accounts resolved wrapper-merge accounts (see {@link ExponentWrapperMergeAccounts})\n * @param args     `amountPyNative` (u64) PT to redeem + `redeemSyAccountsUntil` (u8)\n */\nexport function makeExponentWrapperMergeIx(\n  accounts: ExponentWrapperMergeAccounts,\n  args: { amountPyNative: bigint; redeemSyAccountsUntil: number }\n): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const eventAuthority = deriveExponentEventAuthority();\n\n  // data = discriminator(1) + amount_py(u64 LE, 8) + redeem_sy_accounts_until(u8, 1)\n  const data = Buffer.alloc(WRAPPER_MERGE_DISCRIMINATOR.length + 9);\n  WRAPPER_MERGE_DISCRIMINATOR.copy(data, 0);\n  data.writeBigUInt64LE(args.amountPyNative, WRAPPER_MERGE_DISCRIMINATOR.length);\n  data.writeUInt8(args.redeemSyAccountsUntil, WRAPPER_MERGE_DISCRIMINATOR.length + 8);\n\n  // Order + writable/signer flags taken verbatim from the IDL's `wrapper_merge` accounts.\n  const keys: AccountMeta[] = [\n    { pubkey: accounts.owner, isSigner: true, isWritable: true },\n    { pubkey: accounts.syAta, isSigner: false, isWritable: true },\n    { pubkey: accounts.vault, isSigner: false, isWritable: true },\n    { pubkey: accounts.escrowSy, isSigner: false, isWritable: true },\n    { pubkey: accounts.ytAta, isSigner: false, isWritable: true },\n    { pubkey: accounts.ptAta, isSigner: false, isWritable: true },\n    { pubkey: accounts.mintYt, isSigner: false, isWritable: true },\n    { pubkey: accounts.mintPt, isSigner: false, isWritable: true },\n    { pubkey: accounts.authority, isSigner: false, isWritable: true },\n    { pubkey: accounts.addressLookupTable, isSigner: false, isWritable: false },\n    { pubkey: tokenProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.yieldPosition, isSigner: false, isWritable: true },\n    { pubkey: accounts.syProgram, isSigner: false, isWritable: false },\n    { pubkey: SystemProgram.programId, isSigner: false, isWritable: false },\n    { pubkey: eventAuthority, isSigner: false, isWritable: false },\n    { pubkey: EXPONENT_CORE_PROGRAM_ID, isSigner: false, isWritable: false },\n    // [...redeem (flavor SY-redeem accounts), ...cpi (withdraw_sy ++ get_sy_state)]\n    ...accounts.remainingAccounts,\n  ];\n\n  return new TransactionInstruction({ keys, programId: EXPONENT_CORE_PROGRAM_ID, data });\n}\n\n/** SPL Stake Pool `UpdateStakePoolBalance` instruction tag (variant index 7). */\nconst SPL_STAKE_POOL_UPDATE_BALANCE_TAG = Buffer.from([7]);\n\n/**\n * Build the SPL Stake Pool `UpdateStakePoolBalance` instruction — refreshes a stake pool's\n * total-lamports / pool-token-supply so the pool↔token exchange rate is current for the\n * epoch. An SPL-stake-pool SY flavor (e.g. bulkSOL) requires this immediately before\n * `wrapper_merge`, otherwise the redeem reads a stale SY↔base rate.\n *\n * Account order matches the SPL Stake Pool program's `UpdateStakePoolBalance`.\n */\nexport function makeSplStakePoolUpdateBalanceIx(accounts: {\n  stakePoolProgram: PublicKey;\n  stakePool: PublicKey;\n  withdrawAuthority: PublicKey;\n  validatorList: PublicKey;\n  reserveStake: PublicKey;\n  managerFeeAccount: PublicKey;\n  poolMint: PublicKey;\n  tokenProgram?: PublicKey;\n}): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const keys: AccountMeta[] = [\n    { pubkey: accounts.stakePool, isSigner: false, isWritable: true },\n    { pubkey: accounts.withdrawAuthority, isSigner: false, isWritable: false },\n    { pubkey: accounts.validatorList, isSigner: false, isWritable: true },\n    { pubkey: accounts.reserveStake, isSigner: false, isWritable: false },\n    { pubkey: accounts.managerFeeAccount, isSigner: false, isWritable: true },\n    { pubkey: accounts.poolMint, isSigner: false, isWritable: true },\n    { pubkey: tokenProgram, isSigner: false, isWritable: false },\n  ];\n  return new TransactionInstruction({\n    keys,\n    programId: accounts.stakePoolProgram,\n    data: Buffer.from(SPL_STAKE_POOL_UPDATE_BALANCE_TAG),\n  });\n}\n\n/**\n * CLMM (`MarketThree`) `trade_pt` discriminator (`@exponent-labs/exponent-clmm-idl`,\n * `trade_pt` → `[3]`, single-byte). Account order/flags + the arg layout below mirror the\n * SDK's `createTradePtInstruction` exactly. This is the buy leg the matured-PT roll uses to\n * buy the successor PT directly on the PT/SY CLMM (`SwapDirection.SyToPt`) — no base\n * round-trip, no aggregator, and (unlike Raydium CLMMs) a single `ticks` account, so the\n * account set is fixed regardless of trade size.\n */\nconst CLMM_TRADE_PT_DISCRIMINATOR = Buffer.from([3]);\n\n/** Encode a borsh `Option<u64>` (1-byte tag + u64 LE when `Some`). */\nfunction encodeOptionU64(value: bigint | null): Buffer {\n  if (value === null) return Buffer.from([0]);\n  const buf = Buffer.alloc(9);\n  buf.writeUInt8(1, 0);\n  buf.writeBigUInt64LE(value, 1);\n  return buf;\n}\n\n/**\n * Signed `trade_pt` args for **buying** PT with SY on the CLMM (the roll's buy leg).\n *\n * `amountIn` is the exact SY spent; `swapDirection` is `SyToPt`; `amountOutConstraint` is\n * the minimum PT out (slippage floor); `priceSpotLimit` (ln-implied-APY limit) is left unset.\n *\n * @param amountInSyNative SY to spend (native u64).\n * @param minPtOutNative   minimum PT to receive (native u64) — the swap reverts below this.\n */\nexport function exponentClmmBuyPtArgs({\n  amountInSyNative,\n  minPtOutNative,\n}: {\n  amountInSyNative: bigint;\n  minPtOutNative: bigint;\n}): {\n  amountIn: bigint;\n  swapDirection: ExponentSwapDirection;\n  amountOutConstraint: bigint | null;\n  priceSpotLimit: null;\n} {\n  return {\n    amountIn: amountInSyNative,\n    swapDirection: ExponentSwapDirection.SyToPt,\n    amountOutConstraint: minPtOutNative,\n    priceSpotLimit: null,\n  };\n}\n\n/**\n * Build the CLMM `trade_pt(amount_in, swap_direction, amount_out_constraint, price_spot_limit)`\n * instruction — an implied-APY AMM trade of SY ↔ PT on a `MarketThree` pool. For a buy use\n * {@link exponentClmmBuyPtArgs}.\n *\n * Pricing PT reads the SY exchange rate on-chain, so `accounts.remainingAccounts` (the SY-CPI\n * accounts resolved from the market ALT) are appended after the 14 fixed accounts, and the\n * transaction must carry the market's address lookup table.\n *\n * @param accounts resolved trade accounts (see {@link ExponentClmmTradePtAccounts})\n * @param args     `amountIn` (u64) + `swapDirection` (u8) + `amountOutConstraint` (Option<u64>)\n *                 + `priceSpotLimit` (Option<f64>, always `null` here)\n */\nexport function makeExponentClmmTradePtIx(\n  accounts: ExponentClmmTradePtAccounts,\n  args: {\n    amountIn: bigint;\n    swapDirection: ExponentSwapDirection;\n    amountOutConstraint: bigint | null;\n    priceSpotLimit: null;\n  }\n): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const eventAuthority = deriveExponentClmmEventAuthority();\n\n  // data = disc(1) + amount_in(u64 LE, 8) + swap_direction(u8, 1)\n  //        + amount_out_constraint(Option<u64>) + price_spot_limit(Option<f64>)\n  const head = Buffer.alloc(CLMM_TRADE_PT_DISCRIMINATOR.length + 9);\n  CLMM_TRADE_PT_DISCRIMINATOR.copy(head, 0);\n  head.writeBigUInt64LE(args.amountIn, CLMM_TRADE_PT_DISCRIMINATOR.length);\n  head.writeUInt8(args.swapDirection, CLMM_TRADE_PT_DISCRIMINATOR.length + 8);\n  // `priceSpotLimit` is always `null` here → a single 0 tag byte (no f64 follows).\n  const data = Buffer.concat([head, encodeOptionU64(args.amountOutConstraint), Buffer.from([0])]);\n\n  // Order + writable/signer flags taken verbatim from the IDL / SDK `createTradePtInstruction`.\n  const keys: AccountMeta[] = [\n    { pubkey: accounts.trader, isSigner: true, isWritable: true },\n    { pubkey: accounts.market, isSigner: false, isWritable: true },\n    { pubkey: accounts.ticks, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenSyTrader, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenPtTrader, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenSyEscrow, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenPtEscrow, isSigner: false, isWritable: true },\n    { pubkey: accounts.addressLookupTable, isSigner: false, isWritable: false },\n    { pubkey: tokenProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.syProgram, isSigner: false, isWritable: false },\n    { pubkey: accounts.tokenFeeTreasurySy, isSigner: false, isWritable: true },\n    { pubkey: accounts.tokenFeeTreasuryPt, isSigner: false, isWritable: true },\n    { pubkey: eventAuthority, isSigner: false, isWritable: false },\n    { pubkey: EXPONENT_CLMM_PROGRAM_ID, isSigner: false, isWritable: false },\n    // SY-program CPI accounts (getSyState ++ getPositionState ++ depositSy ++ withdrawSy), ALT-resolved.\n    ...accounts.remainingAccounts,\n  ];\n\n  return new TransactionInstruction({ keys, programId: EXPONENT_CLMM_PROGRAM_ID, data });\n}\n\nconst exponentInstructions = {\n  makeExponentMergeIx,\n  makeExponentTradePtIx,\n  makeExponentStripIx,\n  makeExponentWrapperMergeIx,\n  makeExponentClmmTradePtIx,\n  makeSplStakePoolUpdateBalanceIx,\n  exponentBuyPtArgs,\n  exponentClmmBuyPtArgs,\n};\n\nexport default exponentInstructions;\n","import { AccountMeta, PublicKey } from \"@solana/web3.js\";\nimport { BigNumber } from \"bignumber.js\";\n\nimport { makeSplStakePoolUpdateBalanceIx } from \"../instructions\";\nimport {\n  ExponentClmmTradePtAccounts,\n  ExponentClmmTradePtContext,\n  ExponentCpiInterfaceContext,\n  ExponentMergeAccounts,\n  ExponentMergeContext,\n  ExponentStripAccounts,\n  ExponentStripContext,\n  ExponentTradePtAccounts,\n  ExponentTradePtContext,\n  ExponentVault,\n  ExponentWrapperMergeAccounts,\n  ExponentWrapperMergeContext,\n  ResolveExponentClmmTradePtContextParams,\n  ResolveExponentMergeContextParams,\n  ResolveExponentStripContextParams,\n  ResolveExponentTradePtContextParams,\n  ResolveExponentWrapperMergeContextParams,\n} from \"../types\";\n\nimport {\n  fetchExponentMarketThree,\n  fetchExponentMarketTwo,\n  fetchExponentVault,\n  fetchExponentVaultFromMarket,\n  getMintDecimals,\n} from \"./deserialize.utils\";\n\nimport { getAssociatedTokenAddressSync, TOKEN_PROGRAM_ID } from \"~/vendor/spl\";\n\n/**\n * Resolve a list of `CpiInterfaceContext`s (ALT-indexed) into concrete {@link AccountMeta}s\n * against the given lookup-table addresses, validating each index is in range.\n */\nfunction resolveCpiMetas(\n  contexts: ExponentCpiInterfaceContext[],\n  altAddresses: PublicKey[],\n  altKey: PublicKey\n): AccountMeta[] {\n  return contexts.map((ctx) => {\n    const pubkey = altAddresses[ctx.altIndex];\n    if (!pubkey) {\n      throw new Error(\n        `Exponent CPI account alt_index ${ctx.altIndex} out of range ` +\n          `(ALT ${altKey.toBase58()} has ${altAddresses.length} entries)`\n      );\n    }\n    // A CPI context's `is_signer` marks an account the *inner* SY-program CPI signs (via\n    // PDA seeds, `invoke_signed`) — never a transaction-level signer. Forcing `false` here\n    // avoids a phantom required signature (the only real signer, the owner, is already a\n    // fixed account; Solana de-dups and OR-merges privileges). Matches the SDK.\n    return { pubkey, isSigner: false, isWritable: ctx.isWritable };\n  });\n}\n\n/** Dedupe AccountMetas by pubkey, keeping first order and OR-ing writability (matches the SDK). */\nfunction uniqueRemainingAccounts(metas: AccountMeta[]): AccountMeta[] {\n  const seen = new Map<string, AccountMeta>();\n  for (const m of metas) {\n    const key = m.pubkey.toBase58();\n    const prev = seen.get(key);\n    if (prev) prev.isWritable = prev.isWritable || m.isWritable;\n    else seen.set(key, { ...m });\n  }\n  return [...seen.values()];\n}\n\n/** SPL Stake Pool account layout offsets for the fields the refresh ix needs. */\nconst STAKE_POOL_OFFSETS = {\n  validatorList: 98,\n  reserveStake: 130,\n  poolMint: 162,\n  managerFeeAccount: 194,\n} as const;\n\n/**\n * Resolve everything `makeRollPtTx` needs for an Exponent PT roll by decoding the maturity\n * `Vault` (every vault-side `merge` account is a `has_one` field on it), deriving the\n * owner's PT/YT/SY token accounts, and resolving the SY-program CPI remaining accounts\n * (`get_sy_state ++ withdraw_sy`) from the vault's address lookup table.\n */\nexport async function resolveExponentMergeContext(\n  params: ResolveExponentMergeContextParams\n): Promise<ExponentMergeContext> {\n  const { connection, owner } = params;\n  const ptYtTokenProgram = params.ptYtTokenProgram ?? TOKEN_PROGRAM_ID;\n  const syTokenProgram = params.syTokenProgram ?? TOKEN_PROGRAM_ID;\n\n  let vaultAddress: PublicKey;\n  let vault: ExponentVault;\n  if (params.vault) {\n    vaultAddress = params.vault;\n    vault = await fetchExponentVault(connection, vaultAddress);\n  } else if (params.market) {\n    const res = await fetchExponentVaultFromMarket(connection, params.market);\n    vaultAddress = res.vault;\n    vault = res.account;\n  } else {\n    throw new Error(\"resolveExponentMergeContext: one of `vault` or `market` is required\");\n  }\n\n  const ptSrcAta = getAssociatedTokenAddressSync(vault.mintPt, owner, true, ptYtTokenProgram);\n  const ytSrcAta = getAssociatedTokenAddressSync(vault.mintYt, owner, true, ptYtTokenProgram);\n  const sySrcDstAta = getAssociatedTokenAddressSync(vault.mintSy, owner, true, syTokenProgram);\n\n  // `merge`'s SY-CPI remaining accounts are referenced by index into the vault's ALT, and\n  // the transaction must carry that ALT for them to fit / resolve.\n  const altResult = await connection.getAddressLookupTable(vault.addressLookupTable);\n  const alt = altResult.value;\n  if (!alt) {\n    throw new Error(\n      `Exponent vault address lookup table not found: ${vault.addressLookupTable.toBase58()}`\n    );\n  }\n  // Order mirrors the SDK's merge remaining accounts: getSyState ++ withdrawSy.\n  const remainingAccounts: AccountMeta[] = [\n    ...resolveCpiMetas(vault.cpiAccounts.getSyState, alt.state.addresses, vault.addressLookupTable),\n    ...resolveCpiMetas(vault.cpiAccounts.withdrawSy, alt.state.addresses, vault.addressLookupTable),\n  ];\n\n  const mergeAccounts: ExponentMergeAccounts = {\n    owner,\n    authority: vault.authority,\n    vault: vaultAddress,\n    sySrcDstAta,\n    escrowSy: vault.escrowSy,\n    ytSrcAta,\n    ptSrcAta,\n    mintYt: vault.mintYt,\n    mintPt: vault.mintPt,\n    syProgram: vault.syProgram,\n    addressLookupTable: vault.addressLookupTable,\n    yieldPosition: vault.yieldPosition,\n    tokenProgram: ptYtTokenProgram,\n    remainingAccounts,\n  };\n\n  const decimals = await getMintDecimals(connection, vault.mintSy);\n\n  return {\n    vaultAddress,\n    vault,\n    mergeAccounts,\n    addressLookupTable: alt,\n    underlying: { mint: vault.mintSy, decimals, tokenProgram: syTokenProgram },\n    computeRedeemedAmountNative(ptAmountNative: bigint): bigint {\n      // Mirrors Exponent's `merge`: amount_sy_out = floor(amount_py × pt_redemption_rate),\n      // where pt_redemption_rate = sy_for_pt / pt_supply (Vault::pt_redemption_rate).\n      if (vault.ptSupply === 0n) return 0n;\n      const sy = new BigNumber(ptAmountNative.toString())\n        .times(vault.syForPt.toString())\n        .div(vault.ptSupply.toString())\n        .integerValue(BigNumber.ROUND_FLOOR);\n      return BigInt(sy.toFixed(0));\n    },\n  };\n}\n\n/**\n * Resolve everything `makeRollPtTx` needs to buy the successor PT natively (SY → PT,\n * no unwrap, no external aggregator) by trading on the successor maturity's `MarketTwo`.\n *\n * Decodes the market, resolves the SY-program CPI accounts from the market's address\n * lookup table (every `CpiInterfaceContext` is an ALT index), and derives the owner's\n * SY/PT token accounts. The returned {@link ExponentTradePtContext.addressLookupTable}\n * must be added to the transaction's lookup tables.\n */\nexport async function resolveExponentTradePtContext(\n  params: ResolveExponentTradePtContextParams\n): Promise<ExponentTradePtContext> {\n  const { connection, owner } = params;\n  const ptTokenProgram = params.ptTokenProgram ?? TOKEN_PROGRAM_ID;\n  const syTokenProgram = params.syTokenProgram ?? TOKEN_PROGRAM_ID;\n\n  const market = await fetchExponentMarketTwo(connection, params.market);\n\n  // `trade_pt`'s SY-CPI accounts are referenced by index into the market's ALT, and the\n  // transaction must carry that ALT for the program to resolve them.\n  const altResult = await connection.getAddressLookupTable(market.addressLookupTable);\n  const alt = altResult.value;\n  if (!alt) {\n    throw new Error(\n      `Exponent market address lookup table not found: ${market.addressLookupTable.toBase58()}`\n    );\n  }\n  const altAddresses = alt.state.addresses;\n  const altKey = market.addressLookupTable;\n\n  // Order mirrors the SDK's trade_pt remaining accounts: getSyState ++ depositSy ++ withdrawSy.\n  const remainingAccounts: AccountMeta[] = [\n    ...resolveCpiMetas(market.cpiAccounts.getSyState, altAddresses, altKey),\n    ...resolveCpiMetas(market.cpiAccounts.depositSy, altAddresses, altKey),\n    ...resolveCpiMetas(market.cpiAccounts.withdrawSy, altAddresses, altKey),\n  ];\n\n  const tokenSyTrader = getAssociatedTokenAddressSync(market.mintSy, owner, true, syTokenProgram);\n  const tokenPtTrader = getAssociatedTokenAddressSync(market.mintPt, owner, true, ptTokenProgram);\n\n  const tradePtAccounts: ExponentTradePtAccounts = {\n    trader: owner,\n    market: market.selfAddress,\n    tokenSyTrader,\n    tokenPtTrader,\n    tokenSyEscrow: market.tokenSyEscrow,\n    tokenPtEscrow: market.tokenPtEscrow,\n    addressLookupTable: market.addressLookupTable,\n    syProgram: market.syProgram,\n    tokenFeeTreasurySy: market.tokenFeeTreasurySy,\n    tokenProgram: ptTokenProgram,\n    remainingAccounts,\n  };\n\n  const [syDecimals, ptDecimals] = await Promise.all([\n    getMintDecimals(connection, market.mintSy),\n    getMintDecimals(connection, market.mintPt),\n  ]);\n\n  return {\n    marketAddress: market.selfAddress,\n    market,\n    tradePtAccounts,\n    addressLookupTable: alt,\n    sy: { mint: market.mintSy, decimals: syDecimals, tokenProgram: syTokenProgram },\n    pt: { mint: market.mintPt, decimals: ptDecimals, tokenProgram: ptTokenProgram },\n  };\n}\n\n/**\n * Resolve everything the roll needs to buy the successor PT natively on its **CLMM**\n * (`MarketThree`) pool — SY → PT in one on-chain trade, no base unwrap and no external\n * aggregator. The newer maturities (e.g. October bulkSOL) only list a CLMM PT/SY pool (no\n * `MarketTwo`, no order book), so this is the direct buy leg.\n *\n * Decodes the pool, resolves its SY-program CPI accounts from the pool's address lookup\n * table (each `CpiInterfaceContext` is an ALT index), de-duplicates them, and derives the\n * owner's SY/PT token accounts. The returned {@link ExponentClmmTradePtContext.addressLookupTable}\n * must be added to the transaction's lookup tables. The pool uses a single `ticks` account,\n * so the resolved account set is fixed regardless of trade size.\n */\nexport async function resolveExponentClmmTradePtContext(\n  params: ResolveExponentClmmTradePtContextParams\n): Promise<ExponentClmmTradePtContext> {\n  const { connection, owner } = params;\n  const ptTokenProgram = params.ptTokenProgram ?? TOKEN_PROGRAM_ID;\n  const syTokenProgram = params.syTokenProgram ?? TOKEN_PROGRAM_ID;\n\n  const market = await fetchExponentMarketThree(connection, params.market);\n\n  const altResult = await connection.getAddressLookupTable(market.addressLookupTable);\n  const alt = altResult.value;\n  if (!alt) {\n    throw new Error(\n      `Exponent CLMM market address lookup table not found: ${market.addressLookupTable.toBase58()}`\n    );\n  }\n  const altAddresses = alt.state.addresses;\n  const altKey = market.addressLookupTable;\n\n  // Order mirrors the SDK's CLMM trade_pt remaining accounts:\n  // getSyState ++ getPositionState ++ depositSy ++ withdrawSy, then de-duplicated.\n  const remainingAccounts = uniqueRemainingAccounts([\n    ...resolveCpiMetas(market.cpiAccounts.getSyState, altAddresses, altKey),\n    ...resolveCpiMetas(market.cpiAccounts.getPositionState, altAddresses, altKey),\n    ...resolveCpiMetas(market.cpiAccounts.depositSy, altAddresses, altKey),\n    ...resolveCpiMetas(market.cpiAccounts.withdrawSy, altAddresses, altKey),\n  ]);\n\n  const tokenSyTrader = getAssociatedTokenAddressSync(market.mintSy, owner, true, syTokenProgram);\n  const tokenPtTrader = getAssociatedTokenAddressSync(market.mintPt, owner, true, ptTokenProgram);\n\n  const tradePtAccounts: ExponentClmmTradePtAccounts = {\n    trader: owner,\n    market: market.selfAddress,\n    ticks: market.ticks,\n    tokenSyTrader,\n    tokenPtTrader,\n    tokenSyEscrow: market.tokenSyEscrow,\n    tokenPtEscrow: market.tokenPtEscrow,\n    addressLookupTable: market.addressLookupTable,\n    syProgram: market.syProgram,\n    tokenFeeTreasurySy: market.tokenFeeTreasurySy,\n    tokenFeeTreasuryPt: market.tokenFeeTreasuryPt,\n    tokenProgram: ptTokenProgram,\n    remainingAccounts,\n  };\n\n  const [syDecimals, ptDecimals] = await Promise.all([\n    getMintDecimals(connection, market.mintSy),\n    getMintDecimals(connection, market.mintPt),\n  ]);\n\n  return {\n    marketAddress: market.selfAddress,\n    market,\n    tradePtAccounts,\n    addressLookupTable: alt,\n    sy: { mint: market.mintSy, decimals: syDecimals, tokenProgram: syTokenProgram },\n    pt: { mint: market.mintPt, decimals: ptDecimals, tokenProgram: ptTokenProgram },\n  };\n}\n\n/**\n * Resolve everything needed to `strip` SY → PT + YT on an Exponent vault (the buy leg that\n * *mints* the successor PT, unbounded by AMM depth). Decodes the vault, derives the owner's\n * SY/PT/YT token accounts, resolves the `deposit_sy` CPI remaining accounts from the vault's\n * address lookup table, and exposes the last-seen SY exchange rate for sizing the minted PT.\n */\nexport async function resolveExponentStripContext(\n  params: ResolveExponentStripContextParams\n): Promise<ExponentStripContext> {\n  const { connection, owner } = params;\n  const ptYtTokenProgram = params.ptYtTokenProgram ?? TOKEN_PROGRAM_ID;\n  const syTokenProgram = params.syTokenProgram ?? TOKEN_PROGRAM_ID;\n\n  let vaultAddress: PublicKey;\n  let vault: ExponentVault;\n  if (params.vault) {\n    vaultAddress = params.vault;\n    vault = await fetchExponentVault(connection, vaultAddress);\n  } else if (params.market) {\n    const res = await fetchExponentVaultFromMarket(connection, params.market);\n    vaultAddress = res.vault;\n    vault = res.account;\n  } else {\n    throw new Error(\"resolveExponentStripContext: one of `vault` or `market` is required\");\n  }\n\n  const altResult = await connection.getAddressLookupTable(vault.addressLookupTable);\n  const alt = altResult.value;\n  if (!alt) {\n    throw new Error(\n      `Exponent vault address lookup table not found: ${vault.addressLookupTable.toBase58()}`\n    );\n  }\n  // strip's SY-CPI remaining accounts are just `deposit_sy` (it deposits SY into the vault).\n  const remainingAccounts: AccountMeta[] = resolveCpiMetas(\n    vault.cpiAccounts.depositSy,\n    alt.state.addresses,\n    vault.addressLookupTable\n  );\n\n  const sySrc = getAssociatedTokenAddressSync(vault.mintSy, owner, true, syTokenProgram);\n  const ptDst = getAssociatedTokenAddressSync(vault.mintPt, owner, true, ptYtTokenProgram);\n  const ytDst = getAssociatedTokenAddressSync(vault.mintYt, owner, true, ptYtTokenProgram);\n\n  const stripAccounts: ExponentStripAccounts = {\n    depositor: owner,\n    authority: vault.authority,\n    vault: vaultAddress,\n    sySrc,\n    escrowSy: vault.escrowSy,\n    ytDst,\n    ptDst,\n    mintYt: vault.mintYt,\n    mintPt: vault.mintPt,\n    syProgram: vault.syProgram,\n    addressLookupTable: vault.addressLookupTable,\n    yieldPosition: vault.yieldPosition,\n    tokenProgram: ptYtTokenProgram,\n    remainingAccounts,\n  };\n\n  const [syDecimals, ptDecimals] = await Promise.all([\n    getMintDecimals(connection, vault.mintSy),\n    getMintDecimals(connection, vault.mintPt),\n  ]);\n  const syExchangeRate = vault.lastSeenSyExchangeRate.toNumber();\n\n  return {\n    vaultAddress,\n    vault,\n    stripAccounts,\n    addressLookupTable: alt,\n    sy: { mint: vault.mintSy, decimals: syDecimals, tokenProgram: syTokenProgram },\n    pt: { mint: vault.mintPt, decimals: ptDecimals, tokenProgram: ptYtTokenProgram },\n    yt: { mint: vault.mintYt, tokenProgram: ptYtTokenProgram },\n    syExchangeRate,\n    computeStrippedPtNative(syInNative: bigint): bigint {\n      // strip mints py = floor(amount_sy × sy_exchange_rate) PT (and the same YT).\n      const pt = vault.lastSeenSyExchangeRate\n        .times(syInNative.toString())\n        .integerValue(BigNumber.ROUND_FLOOR);\n      return BigInt(pt.toFixed(0));\n    },\n  };\n}\n\n/**\n * Build the SPL Stake Pool `UpdateStakePoolBalance` instruction for `stakePool` by reading\n * the pool's account (validator list / reserve / manager fee / pool mint are at fixed offsets)\n * and deriving the pool's withdraw authority PDA — all dep-free. The pool's owning program is\n * read from the account itself (no hard-coded stake-pool program id).\n */\nasync function resolveSplStakePoolRefreshIx(\n  connection: ResolveExponentWrapperMergeContextParams[\"connection\"],\n  stakePool: PublicKey\n) {\n  const info = await connection.getAccountInfo(stakePool);\n  if (!info) throw new Error(`SPL stake pool account not found: ${stakePool.toBase58()}`);\n  const stakePoolProgram = info.owner;\n  const at = (off: number) => new PublicKey(info.data.subarray(off, off + 32));\n  const [withdrawAuthority] = PublicKey.findProgramAddressSync(\n    [stakePool.toBuffer(), Buffer.from(\"withdraw\")],\n    stakePoolProgram\n  );\n  return makeSplStakePoolUpdateBalanceIx({\n    stakePoolProgram,\n    stakePool,\n    withdrawAuthority,\n    validatorList: at(STAKE_POOL_OFFSETS.validatorList),\n    reserveStake: at(STAKE_POOL_OFFSETS.reserveStake),\n    managerFeeAccount: at(STAKE_POOL_OFFSETS.managerFeeAccount),\n    poolMint: at(STAKE_POOL_OFFSETS.poolMint),\n  });\n}\n\n/**\n * Resolve everything the roll's redeem leg needs to turn matured PT into the underlying\n * **base** token via `wrapper_merge` (merge PT → SY, then CPI-redeem SY → base, in one ix) —\n * so the buy leg swaps a normal token, not the un-swappable SY.\n *\n * Decodes the maturity `Vault`, derives the owner's SY/PT/YT/base token accounts, assembles\n * the flavor redeem accounts (all derivable: the generic SY state is `get_sy_state[0]`, the\n * SPL stake pool is `get_sy_state[3]`, the base escrow is `ATA(syState, baseMint)`), appends\n * the vault's `withdraw_sy ++ get_sy_state` CPI accounts, and builds the stake-pool refresh\n * that must run first. Validated byte-for-byte against the Exponent SDK's `ixMergeToBase`.\n */\nexport async function resolveExponentWrapperMergeContext(\n  params: ResolveExponentWrapperMergeContextParams\n): Promise<ExponentWrapperMergeContext> {\n  const { connection, owner, baseMint } = params;\n  const ptYtTokenProgram = params.ptYtTokenProgram ?? TOKEN_PROGRAM_ID;\n  const syTokenProgram = params.syTokenProgram ?? TOKEN_PROGRAM_ID;\n  const baseTokenProgram = params.baseTokenProgram ?? TOKEN_PROGRAM_ID;\n\n  let vaultAddress: PublicKey;\n  let vault: ExponentVault;\n  if (params.vault) {\n    vaultAddress = params.vault;\n    vault = await fetchExponentVault(connection, vaultAddress);\n  } else if (params.market) {\n    const res = await fetchExponentVaultFromMarket(connection, params.market);\n    vaultAddress = res.vault;\n    vault = res.account;\n  } else {\n    throw new Error(\"resolveExponentWrapperMergeContext: one of `vault` or `market` is required\");\n  }\n\n  const altResult = await connection.getAddressLookupTable(vault.addressLookupTable);\n  const alt = altResult.value;\n  if (!alt) {\n    throw new Error(\n      `Exponent vault address lookup table not found: ${vault.addressLookupTable.toBase58()}`\n    );\n  }\n  const altKey = vault.addressLookupTable;\n  const getSyState = resolveCpiMetas(vault.cpiAccounts.getSyState, alt.state.addresses, altKey);\n  const withdrawSy = resolveCpiMetas(vault.cpiAccounts.withdrawSy, alt.state.addresses, altKey);\n  if (getSyState.length < 4) {\n    throw new Error(\n      \"resolveExponentWrapperMergeContext: unexpected get_sy_state shape (expected the generic \" +\n        \"SPL-stake-pool flavor: [syState, mintSy, tokenSyEscrow, stakePool])\"\n    );\n  }\n  // The generic SY state owns the base escrow; the SPL stake pool drives the SY↔base rate.\n  const syState = getSyState[0].pubkey;\n  const stakePool = getSyState[3].pubkey;\n\n  const syAta = getAssociatedTokenAddressSync(vault.mintSy, owner, true, syTokenProgram);\n  const ptAta = getAssociatedTokenAddressSync(vault.mintPt, owner, true, ptYtTokenProgram);\n  const ytAta = getAssociatedTokenAddressSync(vault.mintYt, owner, true, ptYtTokenProgram);\n  const baseAta = getAssociatedTokenAddressSync(baseMint, owner, true, baseTokenProgram);\n  const baseEscrow = getAssociatedTokenAddressSync(baseMint, syState, true, baseTokenProgram);\n\n  // Flavor `redeem_sy` accounts (generic SY program). Owner (the redeemer) keeps its signer\n  // flag; everything else is non-signer. Order taken from the SDK's `flavor.ixRedeemSy`.\n  const redeem: AccountMeta[] = [\n    { pubkey: owner, isSigner: true, isWritable: true },\n    { pubkey: syState, isSigner: false, isWritable: true },\n    { pubkey: baseAta, isSigner: false, isWritable: true },\n    { pubkey: baseEscrow, isSigner: false, isWritable: true },\n    { pubkey: syAta, isSigner: false, isWritable: true },\n    { pubkey: vault.mintSy, isSigner: false, isWritable: true },\n    { pubkey: baseMint, isSigner: false, isWritable: false },\n    { pubkey: syTokenProgram, isSigner: false, isWritable: false },\n    { pubkey: baseTokenProgram, isSigner: false, isWritable: false },\n    { pubkey: stakePool, isSigner: false, isWritable: true },\n  ];\n  const cpi = uniqueRemainingAccounts([...withdrawSy, ...getSyState]);\n\n  const wrapperMergeAccounts: ExponentWrapperMergeAccounts = {\n    owner,\n    syAta,\n    vault: vaultAddress,\n    escrowSy: vault.escrowSy,\n    ytAta,\n    ptAta,\n    mintYt: vault.mintYt,\n    mintPt: vault.mintPt,\n    authority: vault.authority,\n    addressLookupTable: vault.addressLookupTable,\n    yieldPosition: vault.yieldPosition,\n    syProgram: vault.syProgram,\n    tokenProgram: ptYtTokenProgram,\n    remainingAccounts: [...redeem, ...cpi],\n    redeemSyAccountsUntil: redeem.length,\n  };\n\n  const [baseDecimals, stakePoolRefreshIx] = await Promise.all([\n    getMintDecimals(connection, baseMint),\n    resolveSplStakePoolRefreshIx(connection, stakePool),\n  ]);\n\n  return {\n    vaultAddress,\n    vault,\n    wrapperMergeAccounts,\n    preInstructions: [stakePoolRefreshIx],\n    addressLookupTable: alt,\n    baseToken: { mint: baseMint, decimals: baseDecimals, tokenProgram: baseTokenProgram },\n    setupMints: [\n      { mint: baseMint, tokenProgram: baseTokenProgram },\n      { mint: vault.mintSy, tokenProgram: syTokenProgram },\n      { mint: vault.mintPt, tokenProgram: ptYtTokenProgram },\n      { mint: vault.mintYt, tokenProgram: ptYtTokenProgram },\n    ],\n    computeRedeemedBaseNative(ptAmountNative: bigint): bigint {\n      // `merge` gives sy = floor(pt × sy_for_pt / pt_supply); the SY→base unwrap is 1:1 in\n      // *amount* (the SY exchange rate is a valuation, not a conversion factor — verified on\n      // mainnet: it slightly *under*-estimates the real base, a safe never-short lower bound\n      // for the swap input). So base ≈ the merge SY output.\n      if (vault.ptSupply === 0n) return 0n;\n      const base = new BigNumber(ptAmountNative.toString())\n        .times(vault.syForPt.toString())\n        .div(vault.ptSupply.toString())\n        .integerValue(BigNumber.ROUND_FLOOR);\n      return BigInt(base.toFixed(0));\n    },\n  };\n}\n","import { PublicKey } from \"@solana/web3.js\";\n\n/**\n * Gamma Protocol vault program — LP vaults with instant deposits, escrow\n * withdrawals. The production P0 vaults live under the upstream Gamma\n * program; the on-chain vault, withdrawal-policy, deposit-receipt and\n * withdraw-receipt accounts all live under this program, so all PDAs and\n * instruction targets must derive from it.\n */\nexport const GAMMA_VAULT_PROGRAM_ID = new PublicKey(\n  \"GaMmanX9i4jGmqDZZD2tbD6B2v9p21btenPneMXnTczV\"\n);\n\n// LP vault PDA seeds\nexport const SEED_WITHDRAWAL_POLICY = \"withdrawal_policy\";\nexport const SEED_DEPOSIT_POLICY = \"deposit_policy\";\nexport const SEED_DEPOSIT_RECEIPT = \"deposit_receipt\";\nexport const SEED_WITHDRAW_ESCROW = \"withdraw_escrow\";\nexport const SEED_WITHDRAW_RECEIPT = \"withdraw_receipt\";\n","{\n  \"address\": \"GaMmanX9i4jGmqDZZD2tbD6B2v9p21btenPneMXnTczV\",\n  \"metadata\": {\n    \"name\": \"gamma_vault\",\n    \"version\": \"2.3.0\",\n    \"spec\": \"0.1.0\",\n    \"description\": \"Gamma Protocol vault program — LP vaults with instant deposits, escrow withdrawals, and performance fees\"\n  },\n  \"instructions\": [\n    {\n      \"name\": \"assess_fees\",\n      \"docs\": [\n        \"Assess scheduled performance fees (keeper).\"\n      ],\n      \"discriminator\": [\n        224,\n        15,\n        195,\n        19,\n        125,\n        145,\n        2,\n        100\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"fee_recipient_account\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"claim_cross_chain_withdrawal\",\n      \"docs\": [\n        \"Move a fulfilled withdrawal's claimable assets out of the withdraw escrow\",\n        \"into the DLN give-ATA, which is derived from `lp_vault.keeper_authority` and\",\n        \"never supplied by the caller, and advance the intent to `ASSETS_SETTLED`.\",\n        \"Permissionless. Beta-only; reject-only otherwise.\"\n      ],\n      \"discriminator\": [\n        51,\n        239,\n        161,\n        18,\n        144,\n        185,\n        10,\n        112\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"docs\": [\n            \"Rent for the maker ATA if it does not exist yet. NOT an authority.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_vault\"\n        },\n        {\n          \"name\": \"cross_chain_withdrawer\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  101,\n                  114\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_intent\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"withdraw_receipt\",\n          \"docs\": [\n            \"Drained of its claimable amounts but deliberately NOT closed.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_withdrawer\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"withdraw_escrow\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  101,\n                  115,\n                  99,\n                  114,\n                  111,\n                  119\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_withdrawer\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"escrow_assets_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"withdraw_escrow\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"escrow_shares_account\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"withdraw_escrow\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"maker_authority\",\n          \"docs\": [\n            \"is checked below. Never signs here; its signature is needed only for the\",\n            \"off-chain DLN return order. The `!= default` guard stops an unconfigured\",\n            \"vault from routing assets to the zero address's ATA.\"\n          ]\n        },\n        {\n          \"name\": \"maker_asset_account\",\n          \"docs\": [\n            \"The DLN give-ATA. Anchor derives it from `maker_authority`, which the\",\n            \"constraints above pin to `lp_vault.keeper_authority`, so the destination is\",\n            \"on-chain state rather than a caller argument.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"maker_authority\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"close_deposit_receipt\",\n      \"docs\": [\n        \"Close a deposit receipt and reclaim rent.\"\n      ],\n      \"discriminator\": [\n        216,\n        104,\n        127,\n        60,\n        88,\n        217,\n        184,\n        15\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"docs\": [\n            \"User who owns the deposit receipt.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"docs\": [\n            \"The vault this receipt is associated with.\"\n          ]\n        },\n        {\n          \"name\": \"deposit_receipt\",\n          \"docs\": [\n            \"Deposit receipt to close. Rent is returned to user.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"complete_withdrawal\",\n      \"docs\": [\n        \"User claims their withdrawal from escrow.\",\n        \"Burns shares and transfers assets to user's wallet.\"\n      ],\n      \"discriminator\": [\n        107,\n        98,\n        134,\n        131,\n        74,\n        120,\n        174,\n        121\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"docs\": [\n            \"User claiming the withdrawal.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"docs\": [\n            \"LpVault (needed for shares_mint validation).\"\n          ]\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"docs\": [\n            \"Mint of the vault assets.\"\n          ],\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"docs\": [\n            \"Mint for vault shares.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"user_asset_ata\",\n          \"docs\": [\n            \"User's asset token account (destination for claimed assets).\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"withdraw_escrow\",\n          \"docs\": [\n            \"User's withdraw escrow.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  101,\n                  115,\n                  99,\n                  114,\n                  111,\n                  119\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"escrow_assets_account\",\n          \"docs\": [\n            \"Escrow's asset token account (source of assets).\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"withdraw_escrow\"\n          ]\n        },\n        {\n          \"name\": \"escrow_shares_account\",\n          \"docs\": [\n            \"Escrow's share token account (shares to burn).\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"withdraw_escrow\"\n          ]\n        },\n        {\n          \"name\": \"withdraw_receipt\",\n          \"docs\": [\n            \"User's withdraw receipt.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"docs\": [\n            \"System program.\"\n          ],\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"docs\": [\n            \"Token program.\"\n          ]\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"docs\": [\n            \"Associated token program.\"\n          ],\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"cross_chain_deposit_and_bridge\",\n      \"docs\": [\n        \"Authenticated BNB/DLN ingress, native Gamma deposit accounting, and\",\n        \"dePort share send in one atomic Gamma instruction. The bridging logic and\",\n        \"the deBridge SDK are compiled only under the non-default `cross-chain`\",\n        \"feature; the default (production) build keeps this entrypoint present but\",\n        \"hard-disabled (it rejects before any state transition).\"\n      ],\n      \"discriminator\": [\n        191,\n        64,\n        193,\n        191,\n        223,\n        242,\n        234,\n        122\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"cross_chain_config\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"docs\": [\n            \"Heap-boxed to keep Anchor's generated account parser below the SBF\",\n            \"4 KiB stack-frame limit without changing the ordered account ABI.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  105,\n                  110,\n                  116,\n                  101,\n                  110,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"extcall_meta\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"extcall_meta\"\n        },\n        {\n          \"name\": \"extcall_authority\",\n          \"docs\": [\n            \"DLN's externally supplied CPI signer. Hook expense/reward funds\",\n            \"first-use rent and the exact native fee transferred to Gamma's sender.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"extcall_wallet\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"cross_chain_sender\",\n          \"docs\": [\n            \"only when calling deBridge. The handler verifies owner and data before\",\n            \"funding it with the live native fixed fee.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  115,\n                  101,\n                  110,\n                  100,\n                  101,\n                  114\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_sender_share_wallet\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_sender\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"deposit_receipt\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"extcall_authority\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"instructions\",\n          \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\",\n            \"deposit_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"deposit_policy\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_account\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"args\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CrossChainDepositArgs\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"cross_chain_deposit_and_bridge_v2\",\n      \"docs\": [\n        \"Historical serializable BNB/DLN ingress ABI. V2 remains present for\",\n        \"decoder compatibility but always rejects because it lacks runtime\",\n        \"ExtcallMeta order binding.\"\n      ],\n      \"discriminator\": [\n        207,\n        9,\n        169,\n        239,\n        70,\n        236,\n        234,\n        17\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"cross_chain_config\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"docs\": [\n            \"Heap-boxed to keep Anchor's generated account parser below the SBF\",\n            \"4 KiB stack-frame limit. This address is static at hook-construction\",\n            \"time and its rent must be included in the hook expense.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  105,\n                  110,\n                  116,\n                  101,\n                  110,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"args.beneficiary\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"args.nonce\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"extcall_authority\",\n          \"docs\": [\n            \"DLN's substituted CPI signer. Hook expense funds first-use sender-share\",\n            \"ATA rent, this Gamma intent's rent, and the exact native dePort fee\",\n            \"transferred to Gamma's sender.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"extcall_wallet\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"cross_chain_sender\",\n          \"docs\": [\n            \"only when calling deBridge. The handler verifies owner and data before\",\n            \"funding it with the live native fixed fee.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  115,\n                  101,\n                  110,\n                  100,\n                  101,\n                  114\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_sender_share_wallet\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_sender\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"instructions\",\n          \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\",\n            \"deposit_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"deposit_policy\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_account\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"args\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CrossChainDepositArgs\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"cross_chain_deposit_and_bridge_v3\",\n      \"docs\": [\n        \"Source-authenticated BNB/DLN ingress, native Gamma deposit accounting,\",\n        \"and dePort share send in one atomic Gamma instruction. The executable\",\n        \"body exists only in the exact `test-program,cross-chain` beta profile;\",\n        \"every other build keeps the ABI but rejects before state transition.\"\n      ],\n      \"discriminator\": [\n        47,\n        175,\n        48,\n        23,\n        105,\n        150,\n        94,\n        207\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"cross_chain_config\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"docs\": [\n            \"Heap-boxed to keep Anchor's generated account parser below the SBF\",\n            \"4 KiB stack-frame limit. This address is static at hook-construction\",\n            \"time and its rent must be included in the hook expense.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  105,\n                  110,\n                  116,\n                  101,\n                  110,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"args.beneficiary\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"args.nonce\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"extcall_meta\",\n          \"docs\": [\n            \"order metadata account. The handler requires this account to be\",\n            \"nonempty, nonexecutable, and owned by the authenticated DLN executor.\"\n          ]\n        },\n        {\n          \"name\": \"extcall_authority\",\n          \"docs\": [\n            \"DLN's substituted CPI signer. Hook expense funds first-use sender-share\",\n            \"ATA rent, this Gamma intent's rent, and the exact native dePort fee\",\n            \"transferred to Gamma's sender.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"extcall_wallet\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"cross_chain_sender\",\n          \"docs\": [\n            \"only when calling deBridge. The handler verifies owner and data before\",\n            \"funding it with the live native fixed fee.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  115,\n                  101,\n                  110,\n                  100,\n                  101,\n                  114\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_sender_share_wallet\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_sender\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"instructions\",\n          \"docs\": [\n            \"stack height are checked in the handler.\"\n          ],\n          \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\",\n            \"deposit_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"deposit_policy\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_account\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"args\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CrossChainDepositArgs\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"deposit\",\n      \"docs\": [\n        \"Deposit assets and receive shares instantly.\",\n        \"Requires NAV to be fresh (within nav_max_staleness).\"\n      ],\n      \"discriminator\": [\n        242,\n        35,\n        198,\n        137,\n        82,\n        225,\n        242,\n        182\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"docs\": [\n            \"User depositing into the vault.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"docs\": [\n            \"LpVault to deposit into.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\",\n            \"deposit_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"docs\": [\n            \"Withdrawal policy for net capacity accounting. Deposits offset usage.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"deposit_policy\",\n          \"docs\": [\n            \"Hard capacity shared by all deposit sources.\"\n          ],\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_account\",\n          \"docs\": [\n            \"Token account for vault assets.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"user_asset_ata\",\n          \"docs\": [\n            \"User's asset token account (source of deposit).\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"user_share_ata\",\n          \"docs\": [\n            \"User's share token account (destination for minted shares).\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"deposit_receipt\",\n          \"docs\": [\n            \"Deposit receipt account\",\n            \"Derived from user pubkey and lp_vault pubkey.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"docs\": [\n            \"Mint of the vault assets.\"\n          ],\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"docs\": [\n            \"Mint for vault shares.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"docs\": [\n            \"System program.\"\n          ],\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"docs\": [\n            \"Token program.\"\n          ]\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"docs\": [\n            \"Associated token program.\"\n          ],\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"emergency_update_nav\",\n      \"docs\": [\n        \"Apply a truthful NAV movement outside the normal window cap. Requires\",\n        \"distinct vault fund-authority and global super-admin signatures and the\",\n        \"same complete optimistic-concurrency tuple as a normal publication.\"\n      ],\n      \"discriminator\": [\n        99,\n        77,\n        126,\n        170,\n        191,\n        0,\n        36,\n        218\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Ordinary per-vault NAV authority. Emergency use always requires this\",\n            \"signer and the independent global super-admin below.\"\n          ],\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"super_admin\",\n          \"signer\": true,\n          \"relations\": [\n            \"global_config\"\n          ]\n        },\n        {\n          \"name\": \"global_config\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  103,\n                  108,\n                  111,\n                  98,\n                  97,\n                  108,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true,\n          \"relations\": [\n            \"nav_update_policy\"\n          ]\n        },\n        {\n          \"name\": \"nav_update_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  110,\n                  97,\n                  118,\n                  95,\n                  117,\n                  112,\n                  100,\n                  97,\n                  116,\n                  101,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_nav\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_nav\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_total_shares\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_nav_updated_at\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"expected_pending_withdrawal_value\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"fulfill_withdrawal\",\n      \"docs\": [\n        \"Fulfill pending withdrawals by transferring assets to user's escrow.\",\n        \"Called by keeper when liquidity is available.\"\n      ],\n      \"discriminator\": [\n        57,\n        37,\n        123,\n        221,\n        103,\n        93,\n        162,\n        176\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"docs\": [\n            \"Keeper signer. Must be the vault's fund_authority or keeper_authority.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"user\"\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"docs\": [\n            \"LpVault.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"docs\": [\n            \"Withdrawal policy used to retain the configured base-asset fee.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_account\",\n          \"docs\": [\n            \"Vault's asset token account.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"docs\": [\n            \"Mint of the vault assets.\"\n          ],\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"docs\": [\n            \"Mint for vault shares.\"\n          ],\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"withdraw_escrow\",\n          \"docs\": [\n            \"User's withdraw escrow.\"\n          ],\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  101,\n                  115,\n                  99,\n                  114,\n                  111,\n                  119\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"escrow_assets_account\",\n          \"docs\": [\n            \"Escrow's asset token account (destination for assets).\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"withdraw_escrow\"\n          ]\n        },\n        {\n          \"name\": \"withdraw_receipt\",\n          \"docs\": [\n            \"User's withdraw receipt.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"token_program\",\n          \"docs\": [\n            \"Token program.\"\n          ]\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"init_global_config\",\n      \"discriminator\": [\n        140,\n        136,\n        214,\n        48,\n        87,\n        0,\n        120,\n        255\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"docs\": [\n            \"Signer initializing the GlobalConfig. MUST be the program's\",\n            \"BPFLoaderUpgradeable upgrade authority (proven by the constraints on\",\n            \"`program` + `program_data` below). Becomes the super_admin; the only\",\n            \"later rotation path is `update_admin_authorities`, which is likewise\",\n            \"gated on the upgrade authority. On a fresh deploy, call init BEFORE\",\n            \"finalizing the program (a finalized/`--final` program has no upgrade\",\n            \"authority → init AND rotation impossible) and while a plain deployer\",\n            \"keypair (not a multisig PDA) still holds it.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"docs\": [\n            \"Global config account. Derived with a single str.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  103,\n                  108,\n                  111,\n                  98,\n                  97,\n                  108,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"program\",\n          \"docs\": [\n            \"This program's own account; ties `program_data` to this program so the\",\n            \"upgrade-authority check below cannot be satisfied with an unrelated\",\n            \"program's ProgramData.\"\n          ],\n          \"address\": \"GaMmanX9i4jGmqDZZD2tbD6B2v9p21btenPneMXnTczV\"\n        },\n        {\n          \"name\": \"program_data\",\n          \"docs\": [\n            \"ProgramData account holding the program's upgrade authority. Gate: the\",\n            \"signer must equal the upgrade authority. `programdata_address()` returns\",\n            \"`Ok(None)` for a non-upgradeable load and a revoked authority is `None`,\",\n            \"so a `None` on either side fails closed.\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"docs\": [\n            \"System program.\"\n          ],\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"create_authority\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"init_lp_vault\",\n      \"discriminator\": [\n        40,\n        247,\n        24,\n        8,\n        152,\n        98,\n        18,\n        220\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"docs\": [\n            \"User creating the vault.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"docs\": [\n            \"Lp vault being created.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"arg\",\n                \"path\": \"vault_name\"\n              },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  118,\n                  97,\n                  117,\n                  108,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"global_config\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  103,\n                  108,\n                  111,\n                  98,\n                  97,\n                  108,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"docs\": [\n            \"Mint for shares, minted on deposit.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  115,\n                  104,\n                  97,\n                  114,\n                  101,\n                  115\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"docs\": [\n            \"Mint of the assets, USDC, maybe configurable.\"\n          ]\n        },\n        {\n          \"name\": \"assets_account\",\n          \"docs\": [\n            \"Token account for main asset.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  109,\n                  97,\n                  105,\n                  110,\n                  95,\n                  97,\n                  115,\n                  115,\n                  101,\n                  116,\n                  115\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"pending_shares_account\",\n          \"docs\": [\n            \"Token account where shares are held during queued (illiquid) withdrawals.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  112,\n                  101,\n                  110,\n                  100,\n                  105,\n                  110,\n                  103,\n                  95,\n                  115,\n                  104,\n                  97,\n                  114,\n                  101,\n                  115\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"docs\": [\n            \"Withdrawal policy PDA for retained fees and net outflow caps.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"deposit_policy\",\n          \"docs\": [\n            \"Shared hard deposit capacity. New vaults start fail-closed until their\",\n            \"fund authority explicitly configures this policy.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"fee_recipient_account\",\n          \"docs\": [\n            \"Optional fee recipient token account (shares mint).\",\n            \"Required when initializing with performance_fee_bps > 0.\"\n          ],\n          \"optional\": true\n        },\n        {\n          \"name\": \"system_program\",\n          \"docs\": [\n            \"System program.\"\n          ],\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"docs\": [\n            \"Can either be spl-token or token-2022.\"\n          ]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"fund_authority\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"nav_max_staleness\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"vault_name\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"decimals\",\n          \"type\": \"u8\"\n        },\n        {\n          \"name\": \"performance_fee_bps\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"assessment_interval_secs\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"keeper_authority\",\n          \"type\": {\n            \"option\": \"pubkey\"\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"init_nav_update_policy\",\n      \"docs\": [\n        \"Create the per-vault fixed-window NAV movement policy. Existing vaults\",\n        \"must initialize this PDA during the checked-NAV upgrade window; normal\",\n        \"checked publications fail closed while it is absent.\"\n      ],\n      \"discriminator\": [\n        216,\n        234,\n        28,\n        89,\n        151,\n        95,\n        189,\n        56\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Existing vault fund authority. Pays for the dedicated policy PDA.\"\n          ],\n          \"writable\": true,\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\"\n        },\n        {\n          \"name\": \"nav_update_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  110,\n                  97,\n                  118,\n                  95,\n                  117,\n                  112,\n                  100,\n                  97,\n                  116,\n                  101,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"initialize_cross_chain_config\",\n      \"docs\": [\n        \"Initialize Gamma's program-owned cross-chain control plane. The\",\n        \"existing Gamma upgrade authority is the only initializer and the\",\n        \"circuit breaker always starts paused.\"\n      ],\n      \"discriminator\": [\n        162,\n        136,\n        180,\n        13,\n        95,\n        156,\n        67,\n        223\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"cross_chain_config\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"program\",\n          \"address\": \"GaMmanX9i4jGmqDZZD2tbD6B2v9p21btenPneMXnTczV\"\n        },\n        {\n          \"name\": \"program_data\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"admin\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"queue_cross_chain_withdrawal\",\n      \"docs\": [\n        \"Move an escrowed withdrawal intent's shares into the vault's own illiquid\",\n        \"withdrawal queue, so the existing keeper prices and fulfils them exactly as\",\n        \"it does a native withdrawal. Leaves `nav` and `total_shares` untouched.\",\n        \"Permissionless — every amount comes from the intent. Beta-only; reject-only\",\n        \"otherwise.\"\n      ],\n      \"discriminator\": [\n        102,\n        132,\n        183,\n        186,\n        25,\n        146,\n        174,\n        219\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"docs\": [\n            \"Rent for the receipt, the escrow and their two ATAs. NOT an authority —\",\n            \"every amount here comes from the intent, so any signer may pay.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"docs\": [\n            \"Program-authored withdrawal intent (kind = 2). Its status is the idempotency\",\n            \"guard against queueing the same withdrawal twice.\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_withdrawer\",\n          \"docs\": [\n            \"this intent. Never signs and is never read as data — it exists only so the\",\n            \"receipt and escrow seeds are 1:1 with the withdrawal. Fully constrained by\",\n            \"its seeds.\"\n          ],\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  101,\n                  114\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_intent\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"withdraw_receipt\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_withdrawer\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"withdraw_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  101,\n                  115,\n                  99,\n                  114,\n                  111,\n                  119\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_withdrawer\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"escrow_shares_account\",\n          \"docs\": [\n            \"Destination for the queued shares.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"withdraw_escrow\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"escrow_assets_account\",\n          \"docs\": [\n            \"Initialized here so the keeper's `fulfill_withdrawal` has somewhere to put\",\n            \"the assets; this instruction never writes to it.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"withdraw_escrow\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"share_escrow\",\n          \"docs\": [\n            \"Route-owned share escrow; source of the shares being queued.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_vault_route\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"docs\": [\n            \"Read-only: queueing MOVES shares, it does not burn them, so unlike settle\",\n            \"(and unlike the claim below) this instruction needs no mint authority write.\"\n          ],\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"queue_cross_chain_withdrawal_v2\",\n      \"docs\": [\n        \"Start a cross-chain withdrawal through the native withdrawal lifecycle.\",\n        \"Liquid vault USDC becomes claimable immediately; otherwise the shares enter\",\n        \"the existing keeper queue and are repriced on fulfilment. Permissionless —\",\n        \"every amount comes from the intent. Beta-only; reject-only otherwise.\"\n      ],\n      \"discriminator\": [\n        244,\n        130,\n        119,\n        7,\n        93,\n        40,\n        215,\n        135\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"payer\",\n          \"docs\": [\n            \"Rent for the receipt, the escrow and their two ATAs. NOT an authority —\",\n            \"every amount here comes from the intent, so any signer may pay.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"docs\": [\n            \"Program-authored withdrawal intent (kind = 2). Its status is the idempotency\",\n            \"guard against queueing the same withdrawal twice.\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_account\",\n          \"docs\": [\n            \"Vault USDC account. Liquid requests transfer from here immediately;\",\n            \"illiquid requests leave it untouched for the keeper to fund later.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"cross_chain_withdrawer\",\n          \"docs\": [\n            \"this intent. Never signs and is never read as data — it exists only so the\",\n            \"receipt and escrow seeds are 1:1 with the withdrawal. Fully constrained by\",\n            \"its seeds.\"\n          ],\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  101,\n                  114\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_intent\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"withdraw_receipt\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_withdrawer\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"withdraw_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  101,\n                  115,\n                  99,\n                  114,\n                  111,\n                  119\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_withdrawer\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"escrow_shares_account\",\n          \"docs\": [\n            \"Destination for the queued shares.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"withdraw_escrow\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"escrow_assets_account\",\n          \"docs\": [\n            \"Liquid requests receive assets here immediately; queued requests leave it\",\n            \"initialized for the keeper's later `fulfill_withdrawal` transfer.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"withdraw_escrow\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"share_escrow\",\n          \"docs\": [\n            \"Route-owned share escrow; source of the shares being queued.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_vault_route\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"fee_recipient_account\",\n          \"docs\": [\n            \"Required only when the vault has an active performance fee, exactly like\",\n            \"native `withdraw`.\"\n          ],\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"docs\": [\n            \"Mutable because the native-equivalent fee branch can mint fee shares.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"receive_cross_chain_withdrawal\",\n      \"docs\": [\n        \"Future withdrawal intake shape. The handler and route configuration\",\n        \"remain independently hard-disabled until the continuation is complete.\"\n      ],\n      \"discriminator\": [\n        17,\n        163,\n        45,\n        124,\n        66,\n        193,\n        202,\n        124\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"cross_chain_config\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  105,\n                  110,\n                  116,\n                  101,\n                  110,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"submission\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"submission\"\n        },\n        {\n          \"name\": \"submission_authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"inbound_share_wallet\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"share_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_vault_route\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"instructions\",\n          \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"relations\": [\n            \"withdrawal_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"shares_mint\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"args\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CrossChainWithdrawalArgs\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"receive_cross_chain_withdrawal_v2\",\n      \"docs\": [\n        \"Submission-authenticated BNB dePort intake. The beta handler binds the\",\n        \"share amount to the complete balance of the canonical, submission-specific\",\n        \"authority ATA; every other build remains reject-only.\"\n      ],\n      \"discriminator\": [\n        68,\n        182,\n        91,\n        59,\n        48,\n        217,\n        250,\n        123\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"cross_chain_config\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  105,\n                  110,\n                  116,\n                  101,\n                  110,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"args.beneficiary\"\n              },\n              {\n                \"kind\": \"arg\",\n                \"path\": \"args.nonce\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"submission\"\n        },\n        {\n          \"name\": \"submission_authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"inbound_share_wallet\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"submission_authority\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"share_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_vault_route\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"instructions\",\n          \"address\": \"Sysvar1nstructions1111111111111111111111111\"\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"relations\": [\n            \"withdrawal_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"shares_mint\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"args\",\n          \"type\": {\n            \"defined\": {\n              \"name\": \"CrossChainWithdrawalArgs\"\n            }\n          }\n        }\n      ]\n    },\n    {\n      \"name\": \"send_cross_chain_withdrawal_return\",\n      \"docs\": [\n        \"Program-signed Solana→BNB deBridge send of the settled USDC to the\",\n        \"intent's beneficiary, honoring the 18-decimal `min_output_amount_raw`.\",\n        \"Beta-only; reject-only otherwise.\"\n      ],\n      \"discriminator\": [\n        187,\n        230,\n        11,\n        5,\n        45,\n        1,\n        122,\n        221\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"settlement_authority\",\n          \"docs\": [\n            \"Funds the deBridge native fixed fee deficit on the sender PDA.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"docs\": [\n            \"Settled withdrawal intent (kind = 2, status `ASSETS_SETTLED`). Its status\",\n            \"is the idempotency guard against double send.\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_vault\"\n        },\n        {\n          \"name\": \"cross_chain_sender\",\n          \"docs\": [\n            \"only when calling deBridge. The handler verifies owner and data before\",\n            \"funding it with the live native fixed fee.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  115,\n                  101,\n                  110,\n                  100,\n                  101,\n                  114\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_sender_asset_wallet\",\n          \"docs\": [\n            \"Sender-owned USDC wallet holding the settled assets; deBridge debits it.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_sender\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"set_deposit_policy\",\n      \"docs\": [\n        \"Configure the hard shared deposit capacity or pause deposits. The\",\n        \"policy applies equally to native and cross-chain deposit callers.\"\n      ],\n      \"discriminator\": [\n        56,\n        138,\n        17,\n        74,\n        222,\n        84,\n        14,\n        210\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"payer\",\n          \"docs\": [\n            \"Payer for initializing the policy on pre-upgrade vaults.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lp_vault\"\n        },\n        {\n          \"name\": \"deposit_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  100,\n                  101,\n                  112,\n                  111,\n                  115,\n                  105,\n                  116,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"capacity_assets\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"deposits_paused\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"set_fee_config\",\n      \"docs\": [\n        \"Configure or disable performance fee settings.\"\n      ],\n      \"discriminator\": [\n        221,\n        222,\n        52,\n        206,\n        114,\n        198,\n        64,\n        91\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Operator / fund authority.\"\n          ],\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"fee_recipient_account\",\n          \"docs\": [\n            \"Token account that will receive fee shares.\",\n            \"Required when enabling fees (performance_fee_bps > 0) or when\",\n            \"mid-window settlement is needed (accrued fees must be settled\",\n            \"to the old recipient before changing config).\",\n            \"Omit when disabling with no accrued fees.\",\n            \"Mutable because it may be the destination of a MintTo CPI during mid-window settlement.\"\n          ],\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"token_program\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"performance_fee_bps\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"assessment_interval_secs\",\n          \"type\": \"i64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"set_keeper_authority\",\n      \"docs\": [\n        \"Set or remove the keeper authority on a vault.\",\n        \"When set, this key can call fulfill_withdrawal in addition to fund_authority.\"\n      ],\n      \"discriminator\": [\n        29,\n        124,\n        191,\n        114,\n        184,\n        243,\n        33,\n        155\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Fund authority — only they can change keeper authority.\"\n          ],\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"payer\",\n          \"docs\": [\n            \"Payer for any reallocation rent.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"keeper_authority\",\n          \"type\": \"pubkey\"\n        }\n      ]\n    },\n    {\n      \"name\": \"set_metadata\",\n      \"discriminator\": [\n        78,\n        157,\n        75,\n        242,\n        151,\n        20,\n        121,\n        144\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Fund authority - only they can set metadata.\"\n          ],\n          \"writable\": true,\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"docs\": [\n            \"LpVault that owns the shares_mint.\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"docs\": [\n            \"Shares mint for which we're setting metadata.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"metadata_account\",\n          \"docs\": [\n            \"Seeds: [\\\"metadata\\\", token_metadata_program_id, mint]\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  109,\n                  101,\n                  116,\n                  97,\n                  100,\n                  97,\n                  116,\n                  97\n                ]\n              },\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  11,\n                  112,\n                  101,\n                  177,\n                  227,\n                  209,\n                  124,\n                  69,\n                  56,\n                  157,\n                  82,\n                  127,\n                  107,\n                  4,\n                  195,\n                  205,\n                  88,\n                  184,\n                  108,\n                  115,\n                  26,\n                  160,\n                  253,\n                  181,\n                  73,\n                  182,\n                  209,\n                  188,\n                  3,\n                  248,\n                  41,\n                  70\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                11,\n                112,\n                101,\n                177,\n                227,\n                209,\n                124,\n                69,\n                56,\n                157,\n                82,\n                127,\n                107,\n                4,\n                195,\n                205,\n                88,\n                184,\n                108,\n                115,\n                26,\n                160,\n                253,\n                181,\n                73,\n                182,\n                209,\n                188,\n                3,\n                248,\n                41,\n                70\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"token_metadata_program\",\n          \"address\": \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"\n        },\n        {\n          \"name\": \"system_program\",\n          \"docs\": [\n            \"System program.\"\n          ],\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"rent\",\n          \"docs\": [\n            \"Rent sysvar.\"\n          ],\n          \"address\": \"SysvarRent111111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"name\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"symbol\",\n          \"type\": \"string\"\n        },\n        {\n          \"name\": \"uri\",\n          \"type\": \"string\"\n        }\n      ]\n    },\n    {\n      \"name\": \"set_withdrawal_policy\",\n      \"docs\": [\n        \"Configure retained withdrawal fees and net withdrawal caps.\"\n      ],\n      \"discriminator\": [\n        3,\n        223,\n        67,\n        81,\n        69,\n        30,\n        203,\n        150\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Fund authority for the vault.\"\n          ],\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"payer\",\n          \"docs\": [\n            \"Payer for creating the policy account on existing vaults.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lp_vault\"\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"withdrawal_fee_bps\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"hourly_withdrawal_cap_bps\",\n          \"type\": \"u16\"\n        },\n        {\n          \"name\": \"daily_withdrawal_cap_bps\",\n          \"type\": \"u16\"\n        }\n      ]\n    },\n    {\n      \"name\": \"settle_cross_chain_withdrawal\",\n      \"docs\": [\n        \"Realize an escrowed withdrawal intent's shares into native Solana vault\",\n        \"assets at fresh NAV, honoring the intent's `min_vault_assets` floor and\",\n        \"staging the assets for the BNB return send. Beta-only; reject-only\",\n        \"otherwise.\"\n      ],\n      \"discriminator\": [\n        48,\n        72,\n        115,\n        56,\n        187,\n        76,\n        67,\n        246\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"settlement_authority\",\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_intent\",\n          \"docs\": [\n            \"Program-authored withdrawal intent (kind = 2). Bound to this route; its\",\n            \"status is the idempotency guard against double settlement.\"\n          ],\n          \"writable\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_account\",\n          \"docs\": [\n            \"Vault's asset token account (source of the settled USDC).\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"share_escrow\",\n          \"docs\": [\n            \"Route-owned share escrow; source of the shares being burned.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_vault_route\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"maker_asset_account\",\n          \"docs\": [\n            \"Destination for the settled USDC and the give-ATA of the off-chain DLN\",\n            \"return order: the canonical ATA(settlement_authority, assets_mint). The\",\n            \"keeper that signs settle (`is_keeper_authorized`) receives the assets and\",\n            \"is the real DLN order maker (DLN requires a signing maker). No trust\",\n            \"expansion — this authority already controls vault funds. b-gva pins the\",\n            \"maker give-ATA to exactly this account.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"settlement_authority\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"fee_recipient_account\",\n          \"docs\": [\n            \"Required (and validated against `lp_vault.fee_recipient`) only when the\",\n            \"vault has an active performance fee; omit otherwise.\"\n          ],\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": []\n    },\n    {\n      \"name\": \"update_admin_authorities\",\n      \"docs\": [\n        \"Rotate super_admin, create_authority, and permissioned_creation\",\n        \"atomically. Recovery instruction gated on the program's\",\n        \"BPFLoaderUpgradeable upgrade authority (NOT the current super_admin),\",\n        \"so a compromised or lost super_admin can be replaced.\"\n      ],\n      \"discriminator\": [\n        41,\n        241,\n        142,\n        184,\n        75,\n        212,\n        72,\n        171\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"signer\",\n          \"docs\": [\n            \"Signer rotating the authorities. MUST be the program's\",\n            \"BPFLoaderUpgradeable upgrade authority (proven by the constraints on\",\n            \"`program` + `program_data` below).\"\n          ],\n          \"signer\": true\n        },\n        {\n          \"name\": \"global_config\",\n          \"docs\": [\n            \"The global config account being rotated. Unique in the program.\",\n            \"Deliberately no `has_one = super_admin`: see the struct docs.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  103,\n                  108,\n                  111,\n                  98,\n                  97,\n                  108,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"program\",\n          \"docs\": [\n            \"This program's own account; ties `program_data` to this program so the\",\n            \"upgrade-authority check below cannot be satisfied with an unrelated\",\n            \"program's ProgramData.\"\n          ],\n          \"address\": \"GaMmanX9i4jGmqDZZD2tbD6B2v9p21btenPneMXnTczV\"\n        },\n        {\n          \"name\": \"program_data\",\n          \"docs\": [\n            \"ProgramData account holding the program's upgrade authority. Gate: the\",\n            \"signer must equal the upgrade authority. `programdata_address()` returns\",\n            \"`Ok(None)` for a non-upgradeable load and a revoked authority is `None`,\",\n            \"so a `None` on either side fails closed.\"\n          ]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_super_admin\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"new_create_authority\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"new_permissioned_creation\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_cross_chain_config\",\n      \"discriminator\": [\n        79,\n        141,\n        137,\n        119,\n        118,\n        242,\n        249,\n        118\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"signer\": true,\n          \"relations\": [\n            \"cross_chain_config\"\n          ]\n        },\n        {\n          \"name\": \"cross_chain_config\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_admin\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"deposits_paused\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_global_config\",\n      \"discriminator\": [\n        164,\n        84,\n        130,\n        189,\n        111,\n        58,\n        250,\n        200\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"super_admin\",\n          \"docs\": [\n            \"The signer must be the global_config super_admin.\"\n          ],\n          \"writable\": true,\n          \"signer\": true,\n          \"relations\": [\n            \"global_config\"\n          ]\n        },\n        {\n          \"name\": \"global_config\",\n          \"docs\": [\n            \"The global config account. Unique in the program.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  103,\n                  108,\n                  111,\n                  98,\n                  97,\n                  108,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_create_authority\",\n          \"type\": \"pubkey\"\n        },\n        {\n          \"name\": \"is_creation_permissioned\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_nav\",\n      \"docs\": [\n        \"Update the vault's NAV. Called by fund_authority (operator).\"\n      ],\n      \"discriminator\": [\n        56,\n        16,\n        234,\n        109,\n        155,\n        165,\n        5,\n        0\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Fund authority - only they can update NAV.\"\n          ],\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_nav\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_nav_checked\",\n      \"docs\": [\n        \"Atomically update NAV only when the vault still matches the state read\",\n        \"by the caller. This prevents deposits, withdrawals, fee assessments, or\",\n        \"another NAV publish from invalidating an off-chain NAV calculation\",\n        \"between preflight and transaction execution.\"\n      ],\n      \"discriminator\": [\n        2,\n        235,\n        178,\n        75,\n        223,\n        26,\n        72,\n        144\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Fund authority - only they can update NAV.\"\n          ],\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_nav\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_nav\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_total_shares\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_nav_updated_at\",\n          \"type\": \"i64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_nav_checked_v2\",\n      \"docs\": [\n        \"Race-safe NAV update. The caller supplies the complete vault state used\",\n        \"for its calculation, including pending-withdrawal value. The program\",\n        \"compares that tuple against the live account before writing.\"\n      ],\n      \"discriminator\": [\n        38,\n        73,\n        237,\n        91,\n        112,\n        231,\n        73,\n        41\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Fund authority - only they can update NAV.\"\n          ],\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true,\n          \"relations\": [\n            \"nav_update_policy\"\n          ]\n        },\n        {\n          \"name\": \"nav_update_policy\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  110,\n                  97,\n                  118,\n                  95,\n                  117,\n                  112,\n                  100,\n                  97,\n                  116,\n                  101,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"new_nav\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_nav\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_total_shares\",\n          \"type\": \"u64\"\n        },\n        {\n          \"name\": \"expected_nav_updated_at\",\n          \"type\": \"i64\"\n        },\n        {\n          \"name\": \"expected_pending_withdrawal_value\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"update_nav_max_staleness\",\n      \"docs\": [\n        \"Update the NAV max staleness window on a vault.\"\n      ],\n      \"discriminator\": [\n        212,\n        225,\n        120,\n        109,\n        83,\n        96,\n        40,\n        17\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"docs\": [\n            \"Fund authority — only they can change vault config.\"\n          ],\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"writable\": true\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"nav_max_staleness\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"upsert_cross_chain_vault_route\",\n      \"discriminator\": [\n        10,\n        80,\n        62,\n        8,\n        145,\n        215,\n        7,\n        31\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"admin\",\n          \"writable\": true,\n          \"signer\": true,\n          \"relations\": [\n            \"cross_chain_config\"\n          ]\n        },\n        {\n          \"name\": \"cross_chain_config\",\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  99,\n                  111,\n                  110,\n                  102,\n                  105,\n                  103\n                ]\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"cross_chain_vault_route\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  99,\n                  114,\n                  111,\n                  115,\n                  115,\n                  95,\n                  99,\n                  104,\n                  97,\n                  105,\n                  110,\n                  95,\n                  114,\n                  111,\n                  117,\n                  116,\n                  101\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"lp_vault\"\n        },\n        {\n          \"name\": \"assets_mint\"\n        },\n        {\n          \"name\": \"shares_mint\"\n        },\n        {\n          \"name\": \"share_escrow\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"cross_chain_vault_route\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"bnb_usdc\",\n          \"type\": {\n            \"array\": [\n              \"u8\",\n              20\n            ]\n          }\n        },\n        {\n          \"name\": \"bnb_usdt\",\n          \"type\": {\n            \"array\": [\n              \"u8\",\n              20\n            ]\n          }\n        },\n        {\n          \"name\": \"deposits_enabled\",\n          \"type\": \"bool\"\n        },\n        {\n          \"name\": \"withdrawals_enabled\",\n          \"type\": \"bool\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw\",\n      \"docs\": [\n        \"Withdraw shares for assets.\",\n        \"If vault has sufficient liquidity: instant withdrawal.\",\n        \"If illiquid: creates WithdrawReceipt, shares go to pending account.\"\n      ],\n      \"discriminator\": [\n        183,\n        18,\n        70,\n        156,\n        148,\n        109,\n        161,\n        34\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"user\",\n          \"docs\": [\n            \"User withdrawing from the vault.\"\n          ],\n          \"writable\": true,\n          \"signer\": true\n        },\n        {\n          \"name\": \"lp_vault\",\n          \"docs\": [\n            \"LpVault to withdraw from.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"withdrawal_policy\"\n          ]\n        },\n        {\n          \"name\": \"withdrawal_policy\",\n          \"docs\": [\n            \"Withdrawal policy for retained asset fees and net withdrawal caps.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  97,\n                  108,\n                  95,\n                  112,\n                  111,\n                  108,\n                  105,\n                  99,\n                  121\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"assets_account\",\n          \"docs\": [\n            \"Token account for vault assets.\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"user_share_ata\",\n          \"docs\": [\n            \"User's share token account (source of shares).\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"docs\": [\n            \"Mint of the vault assets.\"\n          ],\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"shares_mint\",\n          \"docs\": [\n            \"Mint for vault shares (mutable for fee mint CPI).\"\n          ],\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"fee_recipient_account\",\n          \"docs\": [\n            \"Token account that receives fee shares on withdrawal.\",\n            \"Required when `has_fee_config()` is true; omit otherwise.\",\n            \"Mutable because it is the destination of a MintTo CPI.\"\n          ],\n          \"writable\": true,\n          \"optional\": true\n        },\n        {\n          \"name\": \"withdraw_escrow\",\n          \"docs\": [\n            \"Withdraw escrow - holds assets and shares until user claims.\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  101,\n                  115,\n                  99,\n                  114,\n                  111,\n                  119\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"escrow_assets_account\",\n          \"docs\": [\n            \"Escrow's asset token account (holds USDC for user to claim).\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"withdraw_escrow\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"escrow_shares_account\",\n          \"docs\": [\n            \"Escrow's share token account (holds shares until burned on claim).\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"withdraw_escrow\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"shares_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"withdraw_receipt\",\n          \"docs\": [\n            \"Withdraw receipt - tracks pending and claimable amounts (accumulates).\"\n          ],\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"const\",\n                \"value\": [\n                  119,\n                  105,\n                  116,\n                  104,\n                  100,\n                  114,\n                  97,\n                  119,\n                  95,\n                  114,\n                  101,\n                  99,\n                  101,\n                  105,\n                  112,\n                  116\n                ]\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"user\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"lp_vault\"\n              }\n            ]\n          }\n        },\n        {\n          \"name\": \"system_program\",\n          \"docs\": [\n            \"System program.\"\n          ],\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\",\n          \"docs\": [\n            \"Token program.\"\n          ]\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"docs\": [\n            \"Associated token program.\"\n          ],\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"shares_amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    },\n    {\n      \"name\": \"withdraw_assets\",\n      \"docs\": [\n        \"Withdraw assets from vault to operator wallet for investment.\"\n      ],\n      \"discriminator\": [\n        202,\n        105,\n        54,\n        155,\n        56,\n        33,\n        207,\n        254\n      ],\n      \"accounts\": [\n        {\n          \"name\": \"fund_authority\",\n          \"writable\": true,\n          \"signer\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"lp_vault\"\n        },\n        {\n          \"name\": \"assets_account\",\n          \"writable\": true,\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"authority_asset_ata\",\n          \"writable\": true,\n          \"pda\": {\n            \"seeds\": [\n              {\n                \"kind\": \"account\",\n                \"path\": \"fund_authority\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"token_program\"\n              },\n              {\n                \"kind\": \"account\",\n                \"path\": \"assets_mint\"\n              }\n            ],\n            \"program\": {\n              \"kind\": \"const\",\n              \"value\": [\n                140,\n                151,\n                37,\n                143,\n                78,\n                36,\n                137,\n                241,\n                187,\n                61,\n                16,\n                41,\n                20,\n                142,\n                13,\n                131,\n                11,\n                90,\n                19,\n                153,\n                218,\n                255,\n                16,\n                132,\n                4,\n                142,\n                123,\n                216,\n                219,\n                233,\n                248,\n                89\n              ]\n            }\n          }\n        },\n        {\n          \"name\": \"assets_mint\",\n          \"relations\": [\n            \"lp_vault\"\n          ]\n        },\n        {\n          \"name\": \"system_program\",\n          \"address\": \"11111111111111111111111111111111\"\n        },\n        {\n          \"name\": \"token_program\"\n        },\n        {\n          \"name\": \"associated_token_program\",\n          \"address\": \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\"\n        }\n      ],\n      \"args\": [\n        {\n          \"name\": \"amount\",\n          \"type\": \"u64\"\n        }\n      ]\n    }\n  ],\n  \"accounts\": [\n    {\n      \"name\": \"CrossChainConfig\",\n      \"discriminator\": [\n        74,\n        146,\n        238,\n        67,\n        67,\n        21,\n        3,\n        218\n      ]\n    },\n    {\n      \"name\": \"CrossChainIntent\",\n      \"discriminator\": [\n        37,\n        183,\n        58,\n        87,\n        62,\n        179,\n        16,\n        114\n      ]\n    },\n    {\n      \"name\": \"CrossChainVaultRoute\",\n      \"discriminator\": [\n        48,\n        216,\n        186,\n        31,\n        186,\n        216,\n        19,\n        166\n      ]\n    },\n    {\n      \"name\": \"DepositPolicy\",\n      \"discriminator\": [\n        159,\n        243,\n        65,\n        242,\n        81,\n        27,\n        41,\n        167\n      ]\n    },\n    {\n      \"name\": \"DepositReceipt\",\n      \"discriminator\": [\n        64,\n        175,\n        24,\n        183,\n        138,\n        109,\n        70,\n        78\n      ]\n    },\n    {\n      \"name\": \"GlobalConfig\",\n      \"discriminator\": [\n        149,\n        8,\n        156,\n        202,\n        160,\n        252,\n        176,\n        217\n      ]\n    },\n    {\n      \"name\": \"LpVault\",\n      \"discriminator\": [\n        189,\n        45,\n        167,\n        23,\n        91,\n        118,\n        105,\n        190\n      ]\n    },\n    {\n      \"name\": \"NavUpdatePolicy\",\n      \"discriminator\": [\n        120,\n        129,\n        130,\n        73,\n        109,\n        226,\n        91,\n        12\n      ]\n    },\n    {\n      \"name\": \"WithdrawEscrow\",\n      \"discriminator\": [\n        161,\n        63,\n        221,\n        55,\n        116,\n        204,\n        131,\n        11\n      ]\n    },\n    {\n      \"name\": \"WithdrawReceipt\",\n      \"discriminator\": [\n        132,\n        238,\n        44,\n        182,\n        207,\n        9,\n        124,\n        140\n      ]\n    },\n    {\n      \"name\": \"WithdrawalPolicy\",\n      \"discriminator\": [\n        52,\n        231,\n        68,\n        59,\n        247,\n        250,\n        119,\n        244\n      ]\n    }\n  ],\n  \"events\": [\n    {\n      \"name\": \"AdminAuthoritiesUpdated\",\n      \"discriminator\": [\n        1,\n        164,\n        87,\n        62,\n        157,\n        85,\n        1,\n        113\n      ]\n    },\n    {\n      \"name\": \"CrossChainConfigUpdated\",\n      \"discriminator\": [\n        50,\n        228,\n        95,\n        17,\n        86,\n        48,\n        61,\n        70\n      ]\n    },\n    {\n      \"name\": \"CrossChainDepositCompleted\",\n      \"discriminator\": [\n        45,\n        209,\n        209,\n        207,\n        158,\n        87,\n        232,\n        168\n      ]\n    },\n    {\n      \"name\": \"CrossChainDepositDestinationAuthenticated\",\n      \"discriminator\": [\n        214,\n        108,\n        125,\n        178,\n        219,\n        22,\n        101,\n        214\n      ]\n    },\n    {\n      \"name\": \"CrossChainIntentReplayAccepted\",\n      \"discriminator\": [\n        221,\n        50,\n        69,\n        6,\n        52,\n        30,\n        90,\n        159\n      ]\n    },\n    {\n      \"name\": \"CrossChainVaultRouteUpdated\",\n      \"discriminator\": [\n        181,\n        72,\n        59,\n        8,\n        36,\n        234,\n        89,\n        88\n      ]\n    },\n    {\n      \"name\": \"CrossChainWithdrawalDeliverySurplus\",\n      \"discriminator\": [\n        213,\n        204,\n        131,\n        208,\n        81,\n        144,\n        99,\n        235\n      ]\n    },\n    {\n      \"name\": \"CrossChainWithdrawalEscrowed\",\n      \"discriminator\": [\n        72,\n        146,\n        194,\n        25,\n        142,\n        51,\n        182,\n        26\n      ]\n    },\n    {\n      \"name\": \"CrossChainWithdrawalReturnSent\",\n      \"discriminator\": [\n        237,\n        14,\n        156,\n        162,\n        211,\n        80,\n        105,\n        153\n      ]\n    },\n    {\n      \"name\": \"CrossChainWithdrawalSettled\",\n      \"discriminator\": [\n        96,\n        92,\n        225,\n        1,\n        2,\n        51,\n        96,\n        26\n      ]\n    },\n    {\n      \"name\": \"DepositPolicyUpdated\",\n      \"discriminator\": [\n        190,\n        38,\n        79,\n        160,\n        80,\n        143,\n        90,\n        255\n      ]\n    },\n    {\n      \"name\": \"FeeConfigUpdated\",\n      \"discriminator\": [\n        45,\n        50,\n        42,\n        173,\n        193,\n        67,\n        52,\n        244\n      ]\n    },\n    {\n      \"name\": \"FeesAssessed\",\n      \"discriminator\": [\n        210,\n        177,\n        59,\n        191,\n        116,\n        251,\n        25,\n        131\n      ]\n    },\n    {\n      \"name\": \"NavEmergencyOverrideApplied\",\n      \"discriminator\": [\n        106,\n        20,\n        168,\n        70,\n        152,\n        131,\n        110,\n        219\n      ]\n    },\n    {\n      \"name\": \"NavUpdatePolicyInitialized\",\n      \"discriminator\": [\n        67,\n        240,\n        192,\n        111,\n        90,\n        46,\n        28,\n        18\n      ]\n    },\n    {\n      \"name\": \"NavUpdateWindowApplied\",\n      \"discriminator\": [\n        215,\n        116,\n        21,\n        53,\n        41,\n        234,\n        250,\n        73\n      ]\n    },\n    {\n      \"name\": \"WithdrawalFeeRetained\",\n      \"discriminator\": [\n        105,\n        104,\n        190,\n        198,\n        168,\n        231,\n        18,\n        182\n      ]\n    },\n    {\n      \"name\": \"WithdrawalFeesSettled\",\n      \"discriminator\": [\n        106,\n        253,\n        199,\n        177,\n        101,\n        104,\n        38,\n        219\n      ]\n    },\n    {\n      \"name\": \"WithdrawalPolicyUpdated\",\n      \"discriminator\": [\n        252,\n        196,\n        144,\n        224,\n        210,\n        3,\n        71,\n        66\n      ]\n    }\n  ],\n  \"errors\": [\n    {\n      \"code\": 6000,\n      \"name\": \"ArithmeticError\",\n      \"msg\": \"Arithmetic error!\"\n    },\n    {\n      \"code\": 6001,\n      \"name\": \"ObsoleteVaultData\",\n      \"msg\": \"LpVault data is outdated!\"\n    },\n    {\n      \"code\": 6002,\n      \"name\": \"StaleNav\",\n      \"msg\": \"NAV is stale - operator must update NAV before this operation!\"\n    },\n    {\n      \"code\": 6003,\n      \"name\": \"Unauthorized\",\n      \"msg\": \"Signer is not an authority!\"\n    },\n    {\n      \"code\": 6004,\n      \"name\": \"InvalidMint\",\n      \"msg\": \"Invalid mint extension!\"\n    },\n    {\n      \"code\": 6005,\n      \"name\": \"NameTooLong\",\n      \"msg\": \"LP Vault name is too long!\"\n    },\n    {\n      \"code\": 6006,\n      \"name\": \"BlockedDeposit\",\n      \"msg\": \"Deposits are blocked - NAV is zero!\"\n    },\n    {\n      \"code\": 6007,\n      \"name\": \"InsufficientLiquidity\",\n      \"msg\": \"Insufficient liquid assets for instant withdrawal!\"\n    },\n    {\n      \"code\": 6008,\n      \"name\": \"InvalidShareAmount\",\n      \"msg\": \"Invalid share amount!\"\n    },\n    {\n      \"code\": 6009,\n      \"name\": \"InvalidDepositAmount\",\n      \"msg\": \"Invalid deposit amount!\"\n    },\n    {\n      \"code\": 6010,\n      \"name\": \"NoPendingWithdrawal\",\n      \"msg\": \"No pending withdrawal to fulfill!\"\n    },\n    {\n      \"code\": 6011,\n      \"name\": \"NoClaimableAssets\",\n      \"msg\": \"No claimable assets to withdraw!\"\n    },\n    {\n      \"code\": 6012,\n      \"name\": \"FeeRecipientNotConfigured\",\n      \"msg\": \"Fee recipient is not configured!\"\n    },\n    {\n      \"code\": 6013,\n      \"name\": \"InvalidPerformanceFeeBps\",\n      \"msg\": \"Invalid performance fee - must be <= MAX_PERFORMANCE_FEE_BPS!\"\n    },\n    {\n      \"code\": 6014,\n      \"name\": \"InvalidFeeRecipient\",\n      \"msg\": \"Invalid fee recipient account!\"\n    },\n    {\n      \"code\": 6015,\n      \"name\": \"AssessmentTooEarly\",\n      \"msg\": \"Assessment interval has not elapsed!\"\n    },\n    {\n      \"code\": 6016,\n      \"name\": \"InvalidAssessmentInterval\",\n      \"msg\": \"Invalid assessment interval!\"\n    },\n    {\n      \"code\": 6017,\n      \"name\": \"NavUpdateTooLarge\",\n      \"msg\": \"NAV update would change share price by more than the allowed maximum!\"\n    },\n    {\n      \"code\": 6018,\n      \"name\": \"InvalidWithdrawalFeeBps\",\n      \"msg\": \"Invalid withdrawal fee - must be <= MAX_WITHDRAWAL_FEE_BPS!\"\n    },\n    {\n      \"code\": 6019,\n      \"name\": \"InvalidWithdrawalCapBps\",\n      \"msg\": \"Invalid withdrawal cap - must be <= 10000 bps!\"\n    },\n    {\n      \"code\": 6020,\n      \"name\": \"HourlyWithdrawalCapExceeded\",\n      \"msg\": \"Withdrawal exceeds hourly vault capacity!\"\n    },\n    {\n      \"code\": 6021,\n      \"name\": \"DailyWithdrawalCapExceeded\",\n      \"msg\": \"Withdrawal exceeds daily vault capacity!\"\n    },\n    {\n      \"code\": 6022,\n      \"name\": \"InvalidWithdrawalPolicy\",\n      \"msg\": \"Invalid withdrawal policy account!\"\n    },\n    {\n      \"code\": 6023,\n      \"name\": \"InvalidAuthority\",\n      \"msg\": \"New authority cannot be the default (all-zeros) pubkey!\"\n    },\n    {\n      \"code\": 6024,\n      \"name\": \"NavUpdateStateMismatch\",\n      \"msg\": \"Vault NAV state changed since the expected state was read!\"\n    },\n    {\n      \"code\": 6025,\n      \"name\": \"InvalidDepositPolicy\",\n      \"msg\": \"Invalid deposit policy account!\"\n    },\n    {\n      \"code\": 6026,\n      \"name\": \"DepositsPaused\",\n      \"msg\": \"Deposits are paused for this vault!\"\n    },\n    {\n      \"code\": 6027,\n      \"name\": \"DepositCapacityExceeded\",\n      \"msg\": \"Deposit would exceed the vault capacity!\"\n    },\n    {\n      \"code\": 6028,\n      \"name\": \"InvalidCrossChainRoute\",\n      \"msg\": \"Invalid cross-chain vault route\"\n    },\n    {\n      \"code\": 6029,\n      \"name\": \"CrossChainRouteDisabled\",\n      \"msg\": \"Cross-chain vault route is disabled\"\n    },\n    {\n      \"code\": 6030,\n      \"name\": \"InvalidEvmAddress\",\n      \"msg\": \"Invalid BNB address\"\n    },\n    {\n      \"code\": 6031,\n      \"name\": \"CrossChainTokenNotAllowed\",\n      \"msg\": \"BNB token is not allowlisted\"\n    },\n    {\n      \"code\": 6032,\n      \"name\": \"CrossChainIntentExpired\",\n      \"msg\": \"Cross-chain intent deadline has expired\"\n    },\n    {\n      \"code\": 6033,\n      \"name\": \"InvalidCrossChainAmount\",\n      \"msg\": \"Invalid cross-chain amount\"\n    },\n    {\n      \"code\": 6034,\n      \"name\": \"CrossChainMinimumOutputNotMet\",\n      \"msg\": \"Cross-chain minimum output cannot be met\"\n    },\n    {\n      \"code\": 6035,\n      \"name\": \"CrossChainIntentReplayConflict\",\n      \"msg\": \"Conflicting replay of an existing cross-chain intent\"\n    },\n    {\n      \"code\": 6036,\n      \"name\": \"InvalidCrossChainIntentState\",\n      \"msg\": \"Invalid cross-chain intent state\"\n    },\n    {\n      \"code\": 6037,\n      \"name\": \"InvalidDebridgeCaller\",\n      \"msg\": \"Caller is not the authenticated deBridge execution program\"\n    },\n    {\n      \"code\": 6038,\n      \"name\": \"InvalidDebridgeMetadata\",\n      \"msg\": \"Invalid deBridge execution metadata account\"\n    },\n    {\n      \"code\": 6039,\n      \"name\": \"InvalidDebridgeSubmissionAuthority\",\n      \"msg\": \"Invalid deBridge submission authority\"\n    },\n    {\n      \"code\": 6040,\n      \"name\": \"InvalidDebridgeDeliveryBalance\",\n      \"msg\": \"Invalid deBridge delivery balance invariant\"\n    },\n    {\n      \"code\": 6041,\n      \"name\": \"InvalidDebridgeSendAccounts\",\n      \"msg\": \"Invalid deBridge send account boundary\"\n    },\n    {\n      \"code\": 6042,\n      \"name\": \"CrossChainExternalBindingUnavailable\",\n      \"msg\": \"Cross-chain external protocol binding is not activated\"\n    },\n    {\n      \"code\": 6043,\n      \"name\": \"CrossChainConfigurationRequiresPause\",\n      \"msg\": \"Cross-chain route configuration requires deposits to be paused\"\n    },\n    {\n      \"code\": 6044,\n      \"name\": \"InvalidDebridgeOutboundBalance\",\n      \"msg\": \"deBridge did not debit the exact outbound share amount\"\n    },\n    {\n      \"code\": 6045,\n      \"name\": \"LegacyNavUpdateDisabled\",\n      \"msg\": \"Legacy NAV update instructions are disabled; use update_nav_checked_v2\"\n    },\n    {\n      \"code\": 6046,\n      \"name\": \"ResidualNavRequiresReconciliation\",\n      \"msg\": \"A zero-share vault must have zero NAV before accepting deposits\"\n    },\n    {\n      \"code\": 6047,\n      \"name\": \"ResidualAssetsRequireReconciliation\",\n      \"msg\": \"A zero-share vault must have no residual custody assets before accepting deposits\"\n    },\n    {\n      \"code\": 6048,\n      \"name\": \"InvalidNavUpdatePolicy\",\n      \"msg\": \"Invalid NAV update policy account\"\n    },\n    {\n      \"code\": 6049,\n      \"name\": \"NavWindowAnchorZero\",\n      \"msg\": \"A zero-price NAV window requires the separately governed emergency override\"\n    },\n    {\n      \"code\": 6050,\n      \"name\": \"NavUpdateWindowClockInvalid\",\n      \"msg\": \"The NAV update window timestamp is ahead of the current clock\"\n    },\n    {\n      \"code\": 6051,\n      \"name\": \"NavEmergencyAuthoritiesNotDistinct\",\n      \"msg\": \"Emergency NAV override authorities must be distinct\"\n    },\n    {\n      \"code\": 6052,\n      \"name\": \"NavUpdateRequiresZeroNavWhenNoShares\",\n      \"msg\": \"A vault with no outstanding shares must keep NAV at zero\"\n    }\n  ],\n  \"types\": [\n    {\n      \"name\": \"AdminAuthoritiesUpdated\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"old_super_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"new_super_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"old_create_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"new_create_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"old_permissioned_creation\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"new_permissioned_creation\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainConfig\",\n      \"docs\": [\n        \"Program-wide administration for Gamma-owned cross-chain entrypoints.\",\n        \"Initialization is upgrade-authority gated and always starts paused.\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"deposits_paused\",\n            \"docs\": [\n              \"Global deposit-only circuit breaker. Withdrawal intake has its own hard\",\n              \"executable gate and remains unavailable in this release.\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainConfigUpdated\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"old_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"new_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"deposits_paused\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainDepositArgs\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"beneficiary\",\n            \"docs\": [\n              \"BNB recipient of the managed deAsset. This is order payload data; DLN's\",\n              \"public Solana metadata does not prove it is the source transaction maker.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"source_token\",\n            \"docs\": [\n              \"Declared hook payload value only. The published ExtcallMeta layout does\",\n              \"not expose the DLN CreatedOrder giveOffer, so this field cannot prove\",\n              \"which BNB token funded the order.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"deposit_amount\",\n            \"docs\": [\n              \"Declared destination take-token tranche. This is not the BNB\",\n              \"CreatedOrder give amount, which may use different decimals and terms.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_bnb_shares\",\n            \"docs\": [\n              \"Minimum shares after deBridge transfer fees.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainDepositCompleted\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"intent\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"replay_key\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"native_sender\",\n            \"docs\": [\n              \"Gamma-derived signer recorded by deBridge as `nativeSender`.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"beneficiary\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"deposited_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bridged_shares\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainDepositDestinationAuthenticated\",\n      \"docs\": [\n        \"Additive audit event for the exact destination-delivery boundary. The\",\n        \"existing `CrossChainDepositCompleted` event remains byte-for-byte stable.\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"intent\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"replay_key\",\n            \"docs\": [\n              \"DLN's executor-owned ExtcallMeta substituted for the active order.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"executor\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"extcall_authority\",\n            \"docs\": [\n              \"DLN executor-provided signer that owns the delivered-asset token account.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"extcall_wallet\",\n            \"docs\": [\n              \"Executor-selected token account, bound to ExtcallAuthority and\",\n              \"assets_mint by the instruction's Anchor account constraints.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"assets_mint\",\n            \"docs\": [\n              \"Exact native vault asset mint received by Gamma (USDC for gmSTBL beta).\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"declared_source_token\",\n            \"docs\": [\n              \"Untrusted hook label retained for off-chain source-policy monitoring.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"source_policy_enforced_on_chain\",\n            \"docs\": [\n              \"Always false in this implementation: BNB source terms are not decoded\",\n              \"or represented as authenticated by the Solana program.\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"source_policy_required_off_chain\",\n            \"docs\": [\n              \"Always true: quote, UX, observation, and reconciliation must\",\n              \"authenticate BNB give-chain/token/amount outside this program.\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"delivered_assets\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainIntent\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"version\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"kind\",\n            \"docs\": [\n              \"1 = deposit, 2 = withdrawal.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"route\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"replay_key\",\n            \"docs\": [\n              \"Opaque deBridge-owned account used as the replay key.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"beneficiary\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"source_or_output_token\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"input_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"minimum_output\",\n            \"docs\": [\n              \"Deposit intents store the six-decimal minimum shares here; withdrawal\",\n              \"intents store the six-decimal minimum native Solana vault assets here.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_output_amount_raw\",\n            \"docs\": [\n              \"Authenticated minimum final BNB USDC/USDT output for withdrawals,\",\n              \"encoded as a fixed-width unsigned U256 in big-endian order.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"actual_output\",\n            \"docs\": [\n              \"Actual native share output for the implemented deposit path.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"created_at\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"updated_at\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainIntentReplayAccepted\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"intent\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"replay_key\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"status\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainVaultRoute\",\n      \"docs\": [\n        \"Per-vault BNB route owned directly by the Gamma program.\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"lp_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"assets_mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"shares_mint\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"share_escrow\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"bnb_usdc\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"bnb_usdt\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"deposits_enabled\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"withdrawals_enabled\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"escrowed_shares\",\n            \"docs\": [\n              \"Native shares received from dePort but not yet consumed by a bound\",\n              \"Gamma-withdrawal/DLN-return implementation.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainVaultRouteUpdated\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"route\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"deposits_enabled\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"withdrawals_enabled\",\n            \"type\": \"bool\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainWithdrawalArgs\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"beneficiary\",\n            \"docs\": [\n              \"Authenticated external-call payload and final BNB recipient.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"output_token\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"shares_amount\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_vault_assets\",\n            \"docs\": [\n              \"Minimum six-decimal native Solana vault assets after Gamma fees.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_output_amount_raw\",\n            \"docs\": [\n              \"Minimum final BNB output in 18-decimal raw units, fixed-width U256 BE.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"deadline\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainWithdrawalDeliverySurplus\",\n      \"docs\": [\n        \"Emitted only when the inbound share wallet held more than the declared\",\n        \"tranche at withdrawal intake. Gamma escrows exactly the declared tranche and\",\n        \"leaves the remainder in the provider-owned wallet, so this is the signal that\",\n        \"something was left behind.\",\n        \"\",\n        \"`surplus_shares` is an aggregate balance difference and nothing more, and no\",\n        \"value of it is safe by inspection. The program cannot tell an unrelated\",\n        \"transfer into a public token account from the BNB side having delivered more\",\n        \"than the hook declared, and — because it cannot measure provider delivery at\",\n        \"all — it also cannot rule out the opposite: an under-delivery masked by an\",\n        \"unrelated balance, where the declared tranche was escrowed partly out of\",\n        \"someone else's shares. An unrelated balance is only harmless if full delivery\",\n        \"independently occurred, which is exactly what Gamma cannot prove.\",\n        \"Reconciliation must alert on EVERY occurrence and classify it against\",\n        \"authenticated off-chain delivery evidence.\",\n        \"\",\n        \"Equally important: the ABSENCE of this event proves nothing. Emission requires a\",\n        \"non-zero surplus, so an under-delivery exactly offset by an unrelated balance\",\n        \"emits nothing at all. This is a \\\"something was left behind\\\" signal, never a\",\n        \"funding-completeness signal.\",\n        \"\",\n        \"Recovery of a surplus is unproven: the pinned deBridge SDK exposes no close or\",\n        \"recovery operation for this wallet, and because intake now succeeds rather than\",\n        \"failing, whatever the provider would have done on external-call failure is not\",\n        \"exercised. Any non-zero surplus needs investigation.\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"intent\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"replay_key\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"inbound_share_wallet\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"declared_shares\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"surplus_shares\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainWithdrawalEscrowed\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"intent\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"replay_key\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"beneficiary\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"shares\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_vault_assets\",\n            \"docs\": [\n              \"Six-decimal native Solana vault-asset floor.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_output_amount_raw\",\n            \"docs\": [\n              \"Unsigned U256 big-endian final BNB USDC/USDT floor (18 decimals).\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainWithdrawalReturnSent\",\n      \"docs\": [\n        \"Emitted when the settled Solana USDC has been dispatched to the BNB\",\n        \"beneficiary through deBridge, completing the withdrawal reverse leg.\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"intent\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"replay_key\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"native_sender\",\n            \"docs\": [\n              \"Gamma-derived signer recorded by deBridge as `nativeSender`.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"beneficiary\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"returned_assets\",\n            \"docs\": [\n              \"Six-decimal native Solana USDC dispatched to deBridge.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"min_output_amount_raw\",\n            \"docs\": [\n              \"Authenticated 18-decimal BNB output floor honored by the send.\"\n            ],\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                32\n              ]\n            }\n          },\n          {\n            \"name\": \"nonce\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"CrossChainWithdrawalSettled\",\n      \"docs\": [\n        \"Emitted when a withdrawal intent's escrowed shares are realized into native\",\n        \"Solana vault assets at fresh NAV and staged for the BNB return send.\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"intent\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"replay_key\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"beneficiary\",\n            \"type\": {\n              \"array\": [\n                \"u8\",\n                20\n              ]\n            }\n          },\n          {\n            \"name\": \"maker\",\n            \"docs\": [\n              \"Authority that received the settled USDC and is the off-chain DLN return\",\n              \"order maker (the keeper that signed settle).\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"maker_asset_account\",\n            \"docs\": [\n              \"The maker's give-ATA the settled USDC landed in: ATA(maker, assets_mint).\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"shares_consumed\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"gross_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fee_assets\",\n            \"docs\": [\n              \"Base-asset fee retained in the vault for remaining LPs.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"net_assets\",\n            \"docs\": [\n              \"Six-decimal native Solana vault assets staged for the return send.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fee_shares_minted\",\n            \"docs\": [\n              \"Prorated performance-fee shares minted to the fee recipient (dilution).\"\n            ],\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositPolicy\",\n      \"docs\": [\n        \"Per-vault deposit controls shared by every deposit source, including\",\n        \"Solana-native users and cross-chain adapters.\",\n        \"\",\n        \"This is intentionally a separate PDA rather than a field on `LpVault` so\",\n        \"existing vault accounts do not require a layout migration. Existing vaults\",\n        \"fail closed after the program upgrade until their policy PDA is initialized\",\n        \"by the fund authority.\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"lp_vault\",\n            \"docs\": [\n              \"Vault this policy belongs to.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"capacity_assets\",\n            \"docs\": [\n              \"Maximum post-deposit NAV in the vault asset's base units.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"deposits_paused\",\n            \"docs\": [\n              \"Emergency switch for deposits. Withdrawals do not consult this field.\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"PDA derivation bump.\"\n            ],\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositPolicyUpdated\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"old_capacity_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_capacity_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"old_deposits_paused\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"new_deposits_paused\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"DepositReceipt\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"PDA bump seed.\"\n            ],\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FeeConfigUpdated\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"old_fee_recipient\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"new_fee_recipient\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"old_fee_bps\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"new_fee_bps\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"assessment_interval_secs\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"FeesAssessed\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"profit_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fee_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fee_shares_minted\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_pps\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"checkpoint_pps\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"GlobalConfig\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"super_admin\",\n            \"docs\": [\n              \"Key with the ability to update the GlobalConfig. Rotatable only via\",\n              \"`update_admin_authorities` (gated on the program upgrade authority).\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"permissioned_creation\",\n            \"docs\": [\n              \"When true InitializeLpVault requires create_authority to be a signer\"\n            ],\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"create_authority\",\n            \"docs\": [\n              \"The key with authority to call `InitializeLpVault`\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"Bump for increased efficiency.\"\n            ],\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"LpVault\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"assets_account\",\n            \"docs\": [\n              \"USDC TokenAccount where users deposit, funds agent operations.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"pending_shares_account\",\n            \"docs\": [\n              \"TokenAccount where shares are held during queued (illiquid) withdrawals.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"shares_mint\",\n            \"docs\": [\n              \"Derived mint (created on initialize) that represents LP tokens or shares.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"assets_mint\",\n            \"docs\": [\n              \"Mint corresponding to the asset, most of the time USDC.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fund_authority\",\n            \"docs\": [\n              \"Pubkey authorized to withdraw assets from assets_account and update NAV.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"nav\",\n            \"docs\": [\n              \"Current Net Asset Value (total vault value in asset decimals).\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"total_shares\",\n            \"docs\": [\n              \"Total shares outstanding (cached for efficiency). May temporarily diverge\",\n              \"from shares_mint.supply during the escrow withdrawal flow (between\",\n              \"fulfill_withdrawal and complete_withdrawal).\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"nav_updated_at\",\n            \"docs\": [\n              \"Timestamp for when NAV was last updated.\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"nav_max_staleness\",\n            \"docs\": [\n              \"Maximum NAV staleness for user operations (in seconds).\",\n              \"Deposits and withdrawals fail if NAV is older than this.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"PDA derivation bump, stored for CU saving purposes.\"\n            ],\n            \"type\": \"u8\"\n          },\n          {\n            \"name\": \"vault_name\",\n            \"type\": \"string\"\n          },\n          {\n            \"name\": \"pending_withdrawal_value\",\n            \"docs\": [\n              \"Total value of pending withdrawals awaiting liquidity.\",\n              \"When a withdrawal cannot be fulfilled instantly due to insufficient\",\n              \"liquid assets, the value is tracked here. This is approximate — the\",\n              \"value recorded at withdrawal time may differ from the value at\",\n              \"fulfillment time (recomputed at current NAV). Used for operator\",\n              \"visibility only, not for critical calculations.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fee_recipient\",\n            \"docs\": [\n              \"Shares token account that receives fee shares. Pubkey::default() = disabled.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"performance_fee_bps\",\n            \"docs\": [\n              \"Performance fee rate in basis points (2000 = 20%). 0 = disabled.\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"assessment_interval_secs\",\n            \"docs\": [\n              \"How often scheduled fees are assessed (seconds). E.g., 86400 = 24h.\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"last_assessment_timestamp\",\n            \"docs\": [\n              \"Unix timestamp of last fee event (scheduled or withdrawal-triggered).\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"price_per_share_at_last_assessment\",\n            \"docs\": [\n              \"PPS at last fee event, scaled by PRICE_SCALE. High-water mark for fees.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"keeper_authority\",\n            \"docs\": [\n              \"Optional keeper authority. When set (non-default), this key can call\",\n              \"fulfill_withdrawal in addition to fund_authority. Allows the keeper\",\n              \"process to use a separate key from the agent/fund_authority.\",\n              \"Pubkey::default() = not set (only fund_authority can fulfill).\"\n            ],\n            \"type\": \"pubkey\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"NavEmergencyOverrideApplied\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"fund_authority\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"super_admin\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"old_nav\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_nav\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"old_price_per_share\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_price_per_share\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"NavUpdatePolicy\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"lp_vault\",\n            \"docs\": [\n              \"Vault whose checked NAV publications this policy constrains.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"window_started_at\",\n            \"docs\": [\n              \"Chain timestamp at which the current fixed window began.\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"anchor_price_per_share\",\n            \"docs\": [\n              \"Window-start share price, scaled by PRICE_SCALE.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"PDA derivation bump.\"\n            ],\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"NavUpdatePolicyInitialized\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"anchor_price_per_share\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"window_started_at\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"NavUpdateWindowApplied\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"old_nav\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_nav\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"anchor_price_per_share\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"new_price_per_share\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"window_started_at\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"window_reset\",\n            \"type\": \"bool\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawEscrow\",\n      \"docs\": [\n        \"Escrow account that holds assets and shares for a pending withdrawal.\",\n        \"Each user has one escrow per vault, derived as PDA from [WITHDRAW_ESCROW_SEED, user, vault].\"\n      ],\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"docs\": [\n              \"User who owns this escrow.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"docs\": [\n              \"The vault this escrow is associated with.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_assets_account\",\n            \"docs\": [\n              \"Token account holding escrowed assets (USDC).\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"escrow_shares_account\",\n            \"docs\": [\n              \"Token account holding escrowed shares (for burning on claim).\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"PDA derivation bump.\"\n            ],\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawReceipt\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"user\",\n            \"docs\": [\n              \"User requesting withdrawal.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"lp_vault\",\n            \"docs\": [\n              \"Vault where the user has invested.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"pending_shares\",\n            \"docs\": [\n              \"Shares waiting for liquidity (keeper needs to fulfill these).\",\n              \"These shares are held in the escrow_shares_account.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"claimable_shares\",\n            \"docs\": [\n              \"Shares that have been fulfilled and are ready to claim.\",\n              \"These shares are also in escrow_shares_account, waiting to be burned on claim.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"claimable_assets\",\n            \"docs\": [\n              \"Asset value ready to claim (held in escrow_assets_account).\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"oldest_pending_at\",\n            \"docs\": [\n              \"NAV ordering floor for the whole `pending_shares` aggregate, re-derived on\",\n              \"the MOST RECENT addition.\",\n              \"\",\n              \"Despite the name and the `i64` type this is NOT a wall-clock timestamp of\",\n              \"the addition: it stores `observed_nav_updated_at + 1`, i.e. one past the\",\n              \"NAV version in force when that addition was queued. It shares the\",\n              \"`nav_updated_at` number space, which is why the existing `>=` comparisons\",\n              \"in the program and the keeper keep working unchanged.\",\n              \"\",\n              \"`fulfill_withdrawal` prices all of `pending_shares` at once and requires\",\n              \"`nav_updated_at >= oldest_pending_at`, so this must track the newest\",\n              \"request, not the first: a first-request-only stamp lets every subsequent\",\n              \"addition settle against a NAV that predates it.\",\n              \"\",\n              \"NOTE: the field name is retained for wire/IDL compatibility — the keeper\",\n              \"reads it by name and orders fulfilment on it. Renaming it to\",\n              \"`newest_pending_at` is a follow-up that must land with a keeper change.\",\n              \"\",\n              \"The floor is derived from the NAV VERSION the request observed —\",\n              \"`lp_vault.nav_updated_at + 1` — not from the wall clock. Combined with\",\n              \"fulfilment's `nav_updated_at >= oldest_pending_at`, that requires a NAV\",\n              \"write STRICTLY NEWER than the one in force when the request was queued.\",\n              \"\",\n              \"KNOWN RESIDUAL — a newer VERSION does not prove a later VALUATION. An\",\n              \"`update_nav_checked` prepared BEFORE the request can still land after it:\",\n              \"its compare-and-set covers only `(nav, total_shares, nav_updated_at)`, and\",\n              \"a fee-free illiquid queue changes none of them. `apply_illiquid_withdrawal`\",\n              \"adds only `fee_shares` (zero here) to `total_shares` and moves\",\n              \"`pending_withdrawal_value`, which is NOT part of the CAS tuple — the\",\n              \"cross-chain path passes `fee_shares = 0` explicitly. So the prepared\",\n              \"update still validates, advances the timestamp past the floor, and\",\n              \"fulfilment settles against a valuation computed before the request.\",\n              \"\",\n              \"Two writers, two different bounds:\",\n              \"\",\n              \"- `update_nav_checked` — bounded by the publisher's prepare-to-publish\",\n              \"interval (`NAV_PUBLISH_INTENT_MAX_AGE_MS`, 120s in gamma-vault-agents),\",\n              \"because a prepared intent older than that is discarded client-side.\",\n              \"- `update_nav` (legacy, `handler`) — **UNBOUNDED**. It validates no\",\n              \"expected state and carries no age limit, so a valuation computed\",\n              \"arbitrarily long before the request can be published at any later time\",\n              \"and will advance `nav_updated_at` past the floor.\",\n              \"\",\n              \"This residual is still reachable WITHOUT any privileged actor: a holder\",\n              \"only has to queue between an honest publisher's prepare and its publish.\",\n              \"No compromised key and no operator error is required — only timing inside\",\n              \"that window. What the `+1` narrows is the SIZE of the window (from \\\"any\",\n              \"NAV after the first request on the receipt\\\" to \\\"the publisher's in-flight\",\n              \"interval\\\"), not the privilege needed to hit it.\",\n              \"\",\n              \"The legacy entrypoint is already slated for removal (gamma-vault-agents\",\n              \"calls only `update_nav_checked`, with no fallback, and the legacy client\",\n              \"helper has no callers). Deleting it closes the unbounded half of this\",\n              \"residual and should be sequenced with removing the web-server's\",\n              \"`/gamma/update-vault-nav` route.\",\n              \"\",\n              \"Either way this is strictly narrower than the pre-fix behaviour, which\",\n              \"accepted any NAV after the FIRST request on the receipt.\",\n              \"\",\n              \"Closing it requires the queue to invalidate in-flight NAV writes — i.e.\",\n              \"extending the CAS tuple with `pending_withdrawal_value` (or a receipt\",\n              \"version). That changes `update_nav_checked`'s signature, so it is a\",\n              \"coordinated program + IDL + agent + web-server change and an on-chain\",\n              \"upgrade; the agent calls `update_nav_checked` with no fallback, so a\",\n              \"required new argument breaks it against the deployed program until all\",\n              \"four ship together. Deliberately not bundled here.\",\n              \"\",\n              \"This needs no new state and no change to either comparison:\",\n              \"`next_nav_updated_at` already guarantees `nav_updated_at` strictly\",\n              \"increases on every NAV write (`max(clock_now, previous + 1)`), so\",\n              \"`observed + 1` is always reachable by the next write. It proves only that\",\n              \"the version ALREADY OBSERVED cannot settle the request — a stale\",\n              \"valuation that becomes the next write still passes, which is exactly the\",\n              \"residual above. The keeper's mirrored `>=` check keeps working unchanged.\",\n              \"\",\n              \"A wall-clock floor left a same-second hole: `Clock::unix_timestamp` is\",\n              \"second-resolution and the comparison is `>=`, so a NAV published earlier\",\n              \"in the same second as the request compared equal and passed.\",\n              \"\",\n              \"UPGRADE GATE — receipts already pending at the upgrade carry a LEGACY\",\n              \"floor. Accounts survive a program upgrade, and nothing re-stamps a\",\n              \"receipt until its next `withdraw`, so a receipt queued under the previous\",\n              \"release keeps a wall-clock, first-request-only value that\",\n              \"`fulfill_withdrawal` still accepts. Concretely: 1 share queued at T0,\",\n              \"NAV published at T1, an unrecorded loss, then 1,000,000 shares added —\",\n              \"all pre-upgrade — leaves the receipt at T0, and post-upgrade fulfilment\",\n              \"accepts the stale T1 NAV.\",\n              \"\",\n              \"Publishing a fresh NAV after the upgrade does NOT fix this: any NAV after\",\n              \"T0 satisfies a T0 floor, which is the whole defect. The gate is therefore\",\n              \"to DRAIN pending receipts before the upgrade, so no legacy floor survives\",\n              \"it.\",\n              \"\",\n              \"A scan alone is NOT sufficient: `withdraw` intake is permissionless, so a\",\n              \"user can create a fresh legacy-floor receipt between the scan and the\",\n              \"upgrade, and no off-chain maintenance mode can stop a direct transaction.\",\n              \"\",\n              \"There is no withdrawal pause flag for the native path — `withdrawals_enabled`\",\n              \"gates only the cross-chain intake, and zeroing the `WithdrawalPolicy` caps\",\n              \"REMOVES the limits rather than applying them. The one enforceable on-chain\",\n              \"lever is NAV staleness: `withdraw` begins with `require_fresh_nav`, so once\",\n              \"NAV ages past `nav_max_staleness` every new intake reverts with `StaleNav`.\",\n              \"`fulfill_withdrawal` requires fresh NAV too, so draining must finish first:\",\n              \"\",\n              \"1. drain — fulfil until `pending_shares == 0` on EVERY receipt, with NAV\",\n              \"still being published. \\\"Every receipt\\\" means an on-chain\",\n              \"`getProgramAccounts` scan for `WithdrawReceipt` filtered by\",\n              \"`lp_vault`; the off-chain `gamma_pending_withdrawals` table is NOT a\",\n              \"valid inventory — it tracks only agent-managed parent-to-child Gamma\",\n              \"withdrawals for dedup and NAV enumeration, and omits ordinary user\",\n              \"and cross-chain receipts entirely;\",\n              \"2. stop publishing NAV and wait out `nav_max_staleness` (1800s on prod\",\n              \"STBL1). New `withdraw` calls now revert on-chain, not by convention;\",\n              \"3. RE-CHECK that every receipt is still at zero — nothing can have been\",\n              \"added during step 2;\",\n              \"4. upgrade;\",\n              \"5. resume NAV publication, which re-opens intake.\",\n              \"\",\n              \"No production pre-verification is claimed here: the scan in step 1 has not\",\n              \"been run, and the agent-side table cannot stand in for it. Steps 2 and 3\",\n              \"are required regardless, because the count can otherwise change under you.\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"PDA derivation bump, stored for CU saving purposes.\"\n            ],\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawalFeeRetained\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"gross_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fee_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"net_assets\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"withdrawal_fee_bps\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawalFeesSettled\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"user\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"shares_withdrawn\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"asset_value\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"fee_shares_minted\",\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"proration_elapsed\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"proration_interval\",\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"pps_after_fees\",\n            \"type\": \"u64\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawalPolicy\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"lp_vault\",\n            \"docs\": [\n              \"Vault this policy belongs to.\"\n            ],\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"withdrawal_fee_bps\",\n            \"docs\": [\n              \"Base-asset fee retained in the vault on withdrawal. 30 = 0.30%.\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"hourly_withdrawal_cap_bps\",\n            \"docs\": [\n              \"Max net withdrawal accepted per hour as bps of current NAV. 0 = disabled.\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"daily_withdrawal_cap_bps\",\n            \"docs\": [\n              \"Max net withdrawal accepted per day as bps of current NAV. 0 = disabled.\"\n            ],\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"hourly_withdrawn_assets\",\n            \"docs\": [\n              \"Net withdrawn assets counted in the current hourly window.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"daily_withdrawn_assets\",\n            \"docs\": [\n              \"Net withdrawn assets counted in the current daily window.\"\n            ],\n            \"type\": \"u64\"\n          },\n          {\n            \"name\": \"hourly_window_start\",\n            \"docs\": [\n              \"Start timestamp for the current hourly cap window.\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"daily_window_start\",\n            \"docs\": [\n              \"Start timestamp for the current daily cap window.\"\n            ],\n            \"type\": \"i64\"\n          },\n          {\n            \"name\": \"bump\",\n            \"docs\": [\n              \"PDA derivation bump.\"\n            ],\n            \"type\": \"u8\"\n          }\n        ]\n      }\n    },\n    {\n      \"name\": \"WithdrawalPolicyUpdated\",\n      \"type\": {\n        \"kind\": \"struct\",\n        \"fields\": [\n          {\n            \"name\": \"vault\",\n            \"type\": \"pubkey\"\n          },\n          {\n            \"name\": \"withdrawal_fee_bps\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"hourly_withdrawal_cap_bps\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"daily_withdrawal_cap_bps\",\n            \"type\": \"u16\"\n          },\n          {\n            \"name\": \"timestamp\",\n            \"type\": \"i64\"\n          }\n        ]\n      }\n    }\n  ]\n}","import { GammaVault } from \"./gamma-idl\";\nimport GAMMA_VAULT_IDL_JSON from \"./gamma-idl.json\";\n\nexport const GAMMA_VAULT_IDL = GAMMA_VAULT_IDL_JSON as unknown as GammaVault;\nexport type GammaVaultIdlType = GammaVault;\n","import { PublicKey } from \"@solana/web3.js\";\n\nimport {\n  GAMMA_VAULT_PROGRAM_ID,\n  SEED_DEPOSIT_POLICY,\n  SEED_DEPOSIT_RECEIPT,\n  SEED_WITHDRAW_ESCROW,\n  SEED_WITHDRAW_RECEIPT,\n  SEED_WITHDRAWAL_POLICY,\n} from \"../constants\";\n\nimport {\n  ASSOCIATED_TOKEN_PROGRAM_ID,\n  getAssociatedTokenAddressSync,\n  TOKEN_PROGRAM_ID,\n} from \"~/vendor/spl\";\n\n/**\n * Derive the WithdrawalPolicy PDA for a vault.\n * Seeds: [\"withdrawal_policy\", lpVault]\n */\nexport function deriveGammaWithdrawalPolicy(\n  lpVault: PublicKey,\n  programId: PublicKey = GAMMA_VAULT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_WITHDRAWAL_POLICY), lpVault.toBuffer()],\n    programId\n  );\n}\n\n/**\n * Derive the DepositPolicy PDA for a vault.\n * Seeds: [\"deposit_policy\", lpVault]\n */\nexport function deriveGammaDepositPolicy(\n  lpVault: PublicKey,\n  programId: PublicKey = GAMMA_VAULT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_DEPOSIT_POLICY), lpVault.toBuffer()],\n    programId\n  );\n}\n\n/**\n * Derive the per-user DepositReceipt PDA for a vault.\n * Seeds: [\"deposit_receipt\", user, lpVault]\n */\nexport function deriveGammaDepositReceipt(\n  user: PublicKey,\n  lpVault: PublicKey,\n  programId: PublicKey = GAMMA_VAULT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_DEPOSIT_RECEIPT), user.toBuffer(), lpVault.toBuffer()],\n    programId\n  );\n}\n\n/**\n * Derive the per-user WithdrawEscrow PDA for a vault.\n * Seeds: [\"withdraw_escrow\", user, lpVault]\n */\nexport function deriveGammaWithdrawEscrow(\n  user: PublicKey,\n  lpVault: PublicKey,\n  programId: PublicKey = GAMMA_VAULT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_WITHDRAW_ESCROW), user.toBuffer(), lpVault.toBuffer()],\n    programId\n  );\n}\n\n/**\n * Derive the per-user WithdrawReceipt PDA for a vault.\n * Seeds: [\"withdraw_receipt\", user, lpVault]\n */\nexport function deriveGammaWithdrawReceipt(\n  user: PublicKey,\n  lpVault: PublicKey,\n  programId: PublicKey = GAMMA_VAULT_PROGRAM_ID\n): [PublicKey, number] {\n  return PublicKey.findProgramAddressSync(\n    [Buffer.from(SEED_WITHDRAW_RECEIPT), user.toBuffer(), lpVault.toBuffer()],\n    programId\n  );\n}\n\n/**\n * Associated token account derivation matching the Gamma program's ATA seeds\n * (`[owner, tokenProgram, mint]`). `allowOwnerOffCurve` is enabled since owners\n * are frequently PDAs (escrow, fee recipient).\n */\nexport function deriveGammaAta(\n  mint: PublicKey,\n  owner: PublicKey,\n  tokenProgram: PublicKey = TOKEN_PROGRAM_ID\n): PublicKey {\n  return getAssociatedTokenAddressSync(\n    mint,\n    owner,\n    true,\n    tokenProgram,\n    ASSOCIATED_TOKEN_PROGRAM_ID\n  );\n}\n","import { BorshAccountsCoder } from \"@coral-xyz/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport { GAMMA_VAULT_IDL } from \"../idl\";\nimport { GammaLpVaultRaw, GammaWithdrawReceiptRaw } from \"../types\";\n\nconst GAMMA_ACCOUNTS_CODER = new BorshAccountsCoder(GAMMA_VAULT_IDL);\n\nconst lpVaultDiscriminator = Buffer.from([189, 45, 167, 23, 91, 118, 105, 190]);\nconst withdrawReceiptDiscriminator = Buffer.from([132, 238, 44, 182, 207, 9, 124, 140]);\n\nconst toBN = (v: unknown): BN => (BN.isBN(v) ? v : new BN((v ?? 0).toString()));\n\n/** Decode a Gamma `LpVault` account from raw buffer data. */\nexport function decodeGammaLpVaultData(data: Buffer, pubkey: PublicKey): GammaLpVaultRaw {\n  if (!data.subarray(0, 8).equals(lpVaultDiscriminator)) {\n    throw new Error(\"invalid Gamma LpVault account discriminator\");\n  }\n\n  const d = GAMMA_ACCOUNTS_CODER.decode(\"LpVault\", data);\n\n  return {\n    pubkey,\n    assetsAccount: d.assets_account ?? d.assetsAccount,\n    pendingSharesAccount: d.pending_shares_account ?? d.pendingSharesAccount,\n    sharesMint: d.shares_mint ?? d.sharesMint,\n    assetsMint: d.assets_mint ?? d.assetsMint,\n    fundAuthority: d.fund_authority ?? d.fundAuthority,\n    nav: toBN(d.nav),\n    totalShares: toBN(d.total_shares ?? d.totalShares),\n    navUpdatedAt: toBN(d.nav_updated_at ?? d.navUpdatedAt),\n    navMaxStaleness: toBN(d.nav_max_staleness ?? d.navMaxStaleness),\n    bump: d.bump,\n    vaultName: d.vault_name ?? d.vaultName,\n    pendingWithdrawalValue: toBN(d.pending_withdrawal_value ?? d.pendingWithdrawalValue),\n    feeRecipient: d.fee_recipient ?? d.feeRecipient,\n    performanceFeeBps: d.performance_fee_bps ?? d.performanceFeeBps,\n    assessmentIntervalSecs: toBN(d.assessment_interval_secs ?? d.assessmentIntervalSecs),\n    lastAssessmentTimestamp: toBN(d.last_assessment_timestamp ?? d.lastAssessmentTimestamp),\n    pricePerShareAtLastAssessment: toBN(\n      d.price_per_share_at_last_assessment ?? d.pricePerShareAtLastAssessment\n    ),\n    keeperAuthority: d.keeper_authority ?? d.keeperAuthority,\n  };\n}\n\n/** Decode a Gamma `WithdrawReceipt` account from raw buffer data. */\nexport function decodeGammaWithdrawReceiptData(\n  data: Buffer,\n  pubkey: PublicKey\n): GammaWithdrawReceiptRaw {\n  if (!data.subarray(0, 8).equals(withdrawReceiptDiscriminator)) {\n    throw new Error(\"invalid Gamma WithdrawReceipt account discriminator\");\n  }\n\n  const d = GAMMA_ACCOUNTS_CODER.decode(\"WithdrawReceipt\", data);\n\n  return {\n    pubkey,\n    user: d.user,\n    lpVault: d.lp_vault ?? d.lpVault,\n    pendingShares: toBN(d.pending_shares ?? d.pendingShares),\n    claimableShares: toBN(d.claimable_shares ?? d.claimableShares),\n    claimableAssets: toBN(d.claimable_assets ?? d.claimableAssets),\n    oldestPendingAt: toBN(d.oldest_pending_at ?? d.oldestPendingAt),\n    bump: d.bump,\n  };\n}\n","import { AccountMeta, PublicKey, SystemProgram, TransactionInstruction } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\n\nimport { GAMMA_VAULT_PROGRAM_ID } from \"./constants\";\n\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID } from \"~/vendor/spl\";\n\n// Anchor instruction discriminators (from the Gamma vault IDL).\nconst DEPOSIT_DISCRIMINATOR = Buffer.from([242, 35, 198, 137, 82, 225, 242, 182]);\nconst WITHDRAW_DISCRIMINATOR = Buffer.from([183, 18, 70, 156, 148, 109, 161, 34]);\nconst COMPLETE_WITHDRAWAL_DISCRIMINATOR = Buffer.from([107, 98, 134, 131, 74, 120, 174, 121]);\n\n/** Encode a u64 argument as an 8-byte little-endian buffer. */\nconst encodeU64 = (amount: BN): Buffer => amount.toArrayLike(Buffer, \"le\", 8);\n\nconst meta = (pubkey: PublicKey, isSigner: boolean, isWritable: boolean): AccountMeta => ({\n  pubkey,\n  isSigner,\n  isWritable,\n});\n\n// ============================================================================\n// deposit\n// ============================================================================\n\nexport interface GammaDepositAccounts {\n  user: PublicKey;\n  lpVault: PublicKey;\n  withdrawalPolicy: PublicKey;\n  depositPolicy: PublicKey;\n  assetsAccount: PublicKey;\n  userAssetAta: PublicKey;\n  userShareAta: PublicKey;\n  depositReceipt: PublicKey;\n  assetsMint: PublicKey;\n  sharesMint: PublicKey;\n  tokenProgram?: PublicKey;\n  associatedTokenProgram?: PublicKey;\n}\n\n/**\n * Deposit `amount` (raw base units of the vault's asset mint) into a Gamma LP\n * vault. Instant deposit: user receives vault shares in the same transaction.\n * The program creates `user_share_ata` and `deposit_receipt` if needed.\n */\nexport function makeGammaDepositIx(\n  accounts: GammaDepositAccounts,\n  amount: BN\n): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const associatedTokenProgram = accounts.associatedTokenProgram ?? ASSOCIATED_TOKEN_PROGRAM_ID;\n\n  const keys: AccountMeta[] = [\n    meta(accounts.user, true, true),\n    meta(accounts.lpVault, false, true),\n    meta(accounts.withdrawalPolicy, false, true),\n    meta(accounts.depositPolicy, false, false),\n    meta(accounts.assetsAccount, false, true),\n    meta(accounts.userAssetAta, false, true),\n    meta(accounts.userShareAta, false, true),\n    meta(accounts.depositReceipt, false, true),\n    meta(accounts.assetsMint, false, false),\n    meta(accounts.sharesMint, false, true),\n    meta(SystemProgram.programId, false, false),\n    meta(tokenProgram, false, false),\n    meta(associatedTokenProgram, false, false),\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: GAMMA_VAULT_PROGRAM_ID,\n    data: Buffer.concat([DEPOSIT_DISCRIMINATOR, encodeU64(amount)]),\n  });\n}\n\n// ============================================================================\n// withdraw (initiate — queues an escrow withdrawal)\n// ============================================================================\n\nexport interface GammaWithdrawAccounts {\n  user: PublicKey;\n  lpVault: PublicKey;\n  withdrawalPolicy: PublicKey;\n  depositPolicy: PublicKey;\n  assetsAccount: PublicKey;\n  userShareAta: PublicKey;\n  assetsMint: PublicKey;\n  sharesMint: PublicKey;\n  feeRecipientAccount: PublicKey;\n  withdrawEscrow: PublicKey;\n  escrowAssetsAccount: PublicKey;\n  escrowSharesAccount: PublicKey;\n  withdrawReceipt: PublicKey;\n  tokenProgram?: PublicKey;\n  associatedTokenProgram?: PublicKey;\n}\n\n/**\n * Initiate a withdrawal of `sharesAmount` (raw base units of the vault's share\n * mint) from a Gamma LP vault. Shares are escrowed and a WithdrawReceipt is\n * created/updated; assets become claimable via {@link makeGammaCompleteWithdrawalIx}\n * once the withdrawal is fulfilled by a keeper.\n */\nexport function makeGammaWithdrawIx(\n  accounts: GammaWithdrawAccounts,\n  sharesAmount: BN\n): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const associatedTokenProgram = accounts.associatedTokenProgram ?? ASSOCIATED_TOKEN_PROGRAM_ID;\n\n  const keys: AccountMeta[] = [\n    meta(accounts.user, true, true),\n    meta(accounts.lpVault, false, true),\n    meta(accounts.withdrawalPolicy, false, true),\n    meta(accounts.assetsAccount, false, true),\n    meta(accounts.userShareAta, false, true),\n    meta(accounts.assetsMint, false, false),\n    meta(accounts.sharesMint, false, true),\n    meta(accounts.feeRecipientAccount, false, true),\n    meta(accounts.withdrawEscrow, false, true),\n    meta(accounts.escrowAssetsAccount, false, true),\n    meta(accounts.escrowSharesAccount, false, true),\n    meta(accounts.withdrawReceipt, false, true),\n    meta(SystemProgram.programId, false, false),\n    meta(tokenProgram, false, false),\n    meta(associatedTokenProgram, false, false),\n    // Program ≥2.3.0 reads DepositPolicy from remaining_accounts to base\n    // withdrawal caps on max(NAV, capacity); it is not in the IDL account list.\n    meta(accounts.depositPolicy, false, false),\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: GAMMA_VAULT_PROGRAM_ID,\n    data: Buffer.concat([WITHDRAW_DISCRIMINATOR, encodeU64(sharesAmount)]),\n  });\n}\n\n// ============================================================================\n// complete_withdrawal (claim fulfilled assets)\n// ============================================================================\n\nexport interface GammaCompleteWithdrawalAccounts {\n  user: PublicKey;\n  lpVault: PublicKey;\n  assetsMint: PublicKey;\n  sharesMint: PublicKey;\n  userAssetAta: PublicKey;\n  withdrawEscrow: PublicKey;\n  escrowAssetsAccount: PublicKey;\n  escrowSharesAccount: PublicKey;\n  withdrawReceipt: PublicKey;\n  tokenProgram?: PublicKey;\n  associatedTokenProgram?: PublicKey;\n}\n\n/**\n * Claim the assets from a fulfilled Gamma withdrawal. Transfers the claimable\n * assets from the escrow to the user's asset ATA (created if needed).\n */\nexport function makeGammaCompleteWithdrawalIx(\n  accounts: GammaCompleteWithdrawalAccounts\n): TransactionInstruction {\n  const tokenProgram = accounts.tokenProgram ?? TOKEN_PROGRAM_ID;\n  const associatedTokenProgram = accounts.associatedTokenProgram ?? ASSOCIATED_TOKEN_PROGRAM_ID;\n\n  const keys: AccountMeta[] = [\n    meta(accounts.user, true, true),\n    meta(accounts.lpVault, false, false),\n    meta(accounts.assetsMint, false, false),\n    meta(accounts.sharesMint, false, true),\n    meta(accounts.userAssetAta, false, true),\n    meta(accounts.withdrawEscrow, false, true),\n    meta(accounts.escrowAssetsAccount, false, true),\n    meta(accounts.escrowSharesAccount, false, true),\n    meta(accounts.withdrawReceipt, false, true),\n    meta(SystemProgram.programId, false, false),\n    meta(tokenProgram, false, false),\n    meta(associatedTokenProgram, false, false),\n  ];\n\n  return new TransactionInstruction({\n    keys,\n    programId: GAMMA_VAULT_PROGRAM_ID,\n    data: COMPLETE_WITHDRAWAL_DISCRIMINATOR,\n  });\n}\n"]}