@lightconexyz/lightcone-sdk 0.5.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -5
- package/dist/auth/client.d.ts.map +1 -1
- package/dist/auth/client.js +2 -0
- package/dist/auth/client.js.map +1 -1
- package/dist/auth/index.d.ts +15 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +10 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/client.d.ts +43 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +70 -9
- package/dist/client.js.map +1 -1
- package/dist/context.d.ts +7 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +60 -6
- package/dist/context.js.map +1 -1
- package/dist/domain/admin/client.d.ts +21 -2
- package/dist/domain/admin/client.d.ts.map +1 -1
- package/dist/domain/admin/client.js +90 -4
- package/dist/domain/admin/client.js.map +1 -1
- package/dist/domain/admin/wire.d.ts +292 -7
- package/dist/domain/admin/wire.d.ts.map +1 -1
- package/dist/domain/admin/wire.js.map +1 -1
- package/dist/domain/faucet.d.ts +25 -0
- package/dist/domain/faucet.d.ts.map +1 -0
- package/dist/domain/faucet.js +3 -0
- package/dist/domain/faucet.js.map +1 -0
- package/dist/domain/index.d.ts +2 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +3 -1
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/market/client.d.ts +23 -2
- package/dist/domain/market/client.d.ts.map +1 -1
- package/dist/domain/market/client.js +31 -1
- package/dist/domain/market/client.js.map +1 -1
- package/dist/domain/market/convert.d.ts +10 -0
- package/dist/domain/market/convert.d.ts.map +1 -1
- package/dist/domain/market/convert.js +44 -5
- package/dist/domain/market/convert.js.map +1 -1
- package/dist/domain/market/icon.d.ts +17 -0
- package/dist/domain/market/icon.d.ts.map +1 -0
- package/dist/domain/market/icon.js +25 -0
- package/dist/domain/market/icon.js.map +1 -0
- package/dist/domain/market/index.d.ts +21 -5
- package/dist/domain/market/index.d.ts.map +1 -1
- package/dist/domain/market/index.js +15 -1
- package/dist/domain/market/index.js.map +1 -1
- package/dist/domain/market/outcome.d.ts +4 -1
- package/dist/domain/market/outcome.d.ts.map +1 -1
- package/dist/domain/market/outcome.js +8 -7
- package/dist/domain/market/outcome.js.map +1 -1
- package/dist/domain/market/tokens.d.ts +55 -3
- package/dist/domain/market/tokens.d.ts.map +1 -1
- package/dist/domain/market/tokens.js +105 -9
- package/dist/domain/market/tokens.js.map +1 -1
- package/dist/domain/market/wire.d.ts +69 -10
- package/dist/domain/market/wire.d.ts.map +1 -1
- package/dist/domain/market/wire.js +5 -0
- package/dist/domain/market/wire.js.map +1 -1
- package/dist/domain/metrics/client.d.ts +66 -0
- package/dist/domain/metrics/client.d.ts.map +1 -0
- package/dist/domain/metrics/client.js +124 -0
- package/dist/domain/metrics/client.js.map +1 -0
- package/dist/domain/metrics/index.d.ts +3 -0
- package/dist/domain/metrics/index.d.ts.map +1 -0
- package/dist/domain/metrics/index.js +19 -0
- package/dist/domain/metrics/index.js.map +1 -0
- package/dist/domain/metrics/wire.d.ts +346 -0
- package/dist/domain/metrics/wire.d.ts.map +1 -0
- package/dist/domain/metrics/wire.js +3 -0
- package/dist/domain/metrics/wire.js.map +1 -0
- package/dist/domain/notification/client.d.ts +6 -0
- package/dist/domain/notification/client.d.ts.map +1 -1
- package/dist/domain/notification/client.js +10 -0
- package/dist/domain/notification/client.js.map +1 -1
- package/dist/domain/notification/index.d.ts +6 -2
- package/dist/domain/notification/index.d.ts.map +1 -1
- package/dist/domain/notification/index.js.map +1 -1
- package/dist/domain/order/client.d.ts +34 -6
- package/dist/domain/order/client.d.ts.map +1 -1
- package/dist/domain/order/client.js +88 -21
- package/dist/domain/order/client.js.map +1 -1
- package/dist/domain/order/convert.d.ts +5 -5
- package/dist/domain/order/convert.d.ts.map +1 -1
- package/dist/domain/order/convert.js +3 -3
- package/dist/domain/order/convert.js.map +1 -1
- package/dist/domain/order/index.d.ts +3 -2
- package/dist/domain/order/index.d.ts.map +1 -1
- package/dist/domain/order/index.js +11 -3
- package/dist/domain/order/index.js.map +1 -1
- package/dist/domain/order/state.d.ts +9 -7
- package/dist/domain/order/state.d.ts.map +1 -1
- package/dist/domain/order/state.js +81 -28
- package/dist/domain/order/state.js.map +1 -1
- package/dist/domain/orderbook/client.d.ts +6 -2
- package/dist/domain/orderbook/client.d.ts.map +1 -1
- package/dist/domain/orderbook/client.js +17 -0
- package/dist/domain/orderbook/client.js.map +1 -1
- package/dist/domain/orderbook/index.d.ts +1 -1
- package/dist/domain/orderbook/index.d.ts.map +1 -1
- package/dist/domain/orderbook/index.js +3 -8
- package/dist/domain/orderbook/index.js.map +1 -1
- package/dist/domain/orderbook/state.d.ts +30 -7
- package/dist/domain/orderbook/state.d.ts.map +1 -1
- package/dist/domain/orderbook/state.js +41 -12
- package/dist/domain/orderbook/state.js.map +1 -1
- package/dist/domain/position/builders.d.ts +11 -8
- package/dist/domain/position/builders.d.ts.map +1 -1
- package/dist/domain/position/builders.js +31 -25
- package/dist/domain/position/builders.js.map +1 -1
- package/dist/domain/position/client.d.ts +66 -5
- package/dist/domain/position/client.d.ts.map +1 -1
- package/dist/domain/position/client.js +101 -9
- package/dist/domain/position/client.js.map +1 -1
- package/dist/domain/position/index.d.ts +3 -2
- package/dist/domain/position/index.d.ts.map +1 -1
- package/dist/domain/position/index.js.map +1 -1
- package/dist/domain/price_history/client.d.ts +12 -1
- package/dist/domain/price_history/client.d.ts.map +1 -1
- package/dist/domain/price_history/client.js +14 -0
- package/dist/domain/price_history/client.js.map +1 -1
- package/dist/domain/price_history/wire.d.ts +27 -0
- package/dist/domain/price_history/wire.d.ts.map +1 -1
- package/dist/domain/price_history/wire.js.map +1 -1
- package/dist/domain/referral/client.d.ts +6 -0
- package/dist/domain/referral/client.d.ts.map +1 -1
- package/dist/domain/referral/client.js +22 -9
- package/dist/domain/referral/client.js.map +1 -1
- package/dist/domain/trade/client.d.ts +1 -0
- package/dist/domain/trade/client.d.ts.map +1 -1
- package/dist/domain/trade/client.js +14 -0
- package/dist/domain/trade/client.js.map +1 -1
- package/dist/domain/trade/wire.d.ts +6 -0
- package/dist/domain/trade/wire.d.ts.map +1 -1
- package/dist/domain/trade/wire.js.map +1 -1
- package/dist/env.d.ts +6 -1
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +19 -9
- package/dist/env.js.map +1 -1
- package/dist/http/client.d.ts +9 -0
- package/dist/http/client.d.ts.map +1 -1
- package/dist/http/client.js +29 -11
- package/dist/http/client.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/prelude.d.ts +16 -7
- package/dist/prelude.d.ts.map +1 -1
- package/dist/prelude.js +10 -7
- package/dist/prelude.js.map +1 -1
- package/dist/privy/index.d.ts +1 -1
- package/dist/privy/index.js.map +1 -1
- package/dist/program/accounts.d.ts +12 -7
- package/dist/program/accounts.d.ts.map +1 -1
- package/dist/program/accounts.js +38 -16
- package/dist/program/accounts.js.map +1 -1
- package/dist/program/builder.d.ts +0 -4
- package/dist/program/builder.d.ts.map +1 -1
- package/dist/program/builder.js +0 -8
- package/dist/program/builder.js.map +1 -1
- package/dist/program/constants.d.ts +20 -7
- package/dist/program/constants.d.ts.map +1 -1
- package/dist/program/constants.js +21 -8
- package/dist/program/constants.js.map +1 -1
- package/dist/program/error.d.ts +25 -1
- package/dist/program/error.d.ts.map +1 -1
- package/dist/program/error.js +72 -0
- package/dist/program/error.js.map +1 -1
- package/dist/program/index.d.ts +7 -7
- package/dist/program/index.d.ts.map +1 -1
- package/dist/program/index.js +36 -9
- package/dist/program/index.js.map +1 -1
- package/dist/program/instructions.d.ts +184 -71
- package/dist/program/instructions.d.ts.map +1 -1
- package/dist/program/instructions.js +573 -140
- package/dist/program/instructions.js.map +1 -1
- package/dist/program/orders.js +2 -2
- package/dist/program/orders.js.map +1 -1
- package/dist/program/pda.d.ts +21 -3
- package/dist/program/pda.d.ts.map +1 -1
- package/dist/program/pda.js +43 -6
- package/dist/program/pda.js.map +1 -1
- package/dist/program/types.d.ts +139 -21
- package/dist/program/types.d.ts.map +1 -1
- package/dist/program/types.js.map +1 -1
- package/dist/program/utils.d.ts +31 -2
- package/dist/program/utils.d.ts.map +1 -1
- package/dist/program/utils.js +132 -5
- package/dist/program/utils.js.map +1 -1
- package/dist/rpc.d.ts +6 -1
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +9 -7
- package/dist/rpc.js.map +1 -1
- package/dist/rpcFailover.d.ts +22 -0
- package/dist/rpcFailover.d.ts.map +1 -0
- package/dist/rpcFailover.js +71 -0
- package/dist/rpcFailover.js.map +1 -0
- package/dist/shared/fmt/constants.d.ts +5 -0
- package/dist/shared/fmt/constants.d.ts.map +1 -0
- package/dist/shared/fmt/constants.js +25 -0
- package/dist/shared/fmt/constants.js.map +1 -0
- package/dist/shared/fmt/decimal.d.ts +7 -0
- package/dist/shared/fmt/decimal.d.ts.map +1 -1
- package/dist/shared/fmt/decimal.js +32 -24
- package/dist/shared/fmt/decimal.js.map +1 -1
- package/dist/shared/fmt/num.d.ts +7 -0
- package/dist/shared/fmt/num.d.ts.map +1 -1
- package/dist/shared/fmt/num.js +27 -15
- package/dist/shared/fmt/num.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +2 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/types.d.ts +1 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +19 -0
- package/dist/shared/types.js.map +1 -1
- package/dist/ws/client.node.js +1 -1
- package/dist/ws/client.node.js.map +1 -1
- package/dist/ws/index.d.ts +12 -1
- package/dist/ws/index.d.ts.map +1 -1
- package/dist/ws/index.js +20 -0
- package/dist/ws/index.js.map +1 -1
- package/dist/ws/subscriptions.d.ts +6 -0
- package/dist/ws/subscriptions.d.ts.map +1 -1
- package/dist/ws/subscriptions.js +4 -0
- package/dist/ws/subscriptions.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/program/instructions.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PublicKey,\n Transaction,\n TransactionInstruction,\n AccountMeta,\n} from \"@solana/web3.js\";\nimport {\n INSTRUCTION,\n SYSTEM_PROGRAM_ID,\n TOKEN_PROGRAM_ID,\n TOKEN_2022_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n ALT_PROGRAM_ID,\n MAX_MAKERS,\n} from \"./constants\";\nimport { PROGRAM_ID } from \"../env\";\nimport {\n InitializeParams,\n CreateMarketParams,\n AddDepositMintParams,\n BuildDepositParams,\n BuildMergeParams,\n SettleMarketParams,\n RedeemWinningsParams,\n WithdrawFromPositionParams,\n ActivateMarketParams,\n MatchOrdersMultiParams,\n SetAuthorityParams,\n CreateOrderbookParams,\n WhitelistDepositTokenParams,\n DepositToGlobalParams,\n GlobalToMarketDepositParams,\n InitPositionTokensParams,\n ExtendPositionTokensParams,\n DepositAndSwapParams,\n WithdrawFromGlobalParams,\n SignedOrder,\n OutcomeMetadata,\n OrderSide,\n} from \"./types\";\nimport {\n getExchangePda,\n getMarketPda,\n getVaultPda,\n getMintAuthorityPda,\n getAllConditionalMintPdas,\n getOrderStatusPda,\n getUserNoncePda,\n getPositionPda,\n getOrderbookPda,\n getAltPda,\n getGlobalDepositTokenPda,\n getUserGlobalDepositPda,\n getPositionAltPda,\n} from \"./pda\";\nimport {\n toU8,\n toU64Le,\n serializeString,\n getConditionalTokenAta,\n getDepositTokenAta,\n validateOutcomes,\n} from \"./utils\";\nimport { hashOrder, serializeSignedOrder, serializeOrder, signedOrderToOrder } from \"./orders\";\nimport { ProgramSdkError } from \"./error\";\n\n// ============================================================================\n// HELPER FUNCTIONS\n// ============================================================================\n\nfunction signerMut(pubkey: PublicKey): AccountMeta {\n return { pubkey, isSigner: true, isWritable: true };\n}\n\nfunction writable(pubkey: PublicKey): AccountMeta {\n return { pubkey, isSigner: false, isWritable: true };\n}\n\nfunction readonly(pubkey: PublicKey): AccountMeta {\n return { pubkey, isSigner: false, isWritable: false };\n}\n\n// ============================================================================\n// INSTRUCTION BUILDERS\n// ============================================================================\n\n/**\n * Build Initialize instruction\n * Creates the exchange account (singleton)\n *\n * Accounts:\n * 0. authority (signer, mut) - Initial admin\n * 1. exchange (mut) - Exchange PDA\n * 2. system_program (readonly)\n *\n * Data: [discriminator (1 byte)]\n */\nexport function buildInitializeIx(\n params: InitializeParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n writable(exchange),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n const data = Buffer.from([INSTRUCTION.INITIALIZE]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build CreateMarket instruction\n * Creates a new market in Pending status\n *\n * Accounts:\n * 0. authority (signer, mut) - Must be exchange authority\n * 1. exchange (mut) - Exchange PDA\n * 2. market (mut) - Market PDA\n * 3. system_program (readonly)\n *\n * Data: [discriminator, num_outcomes (u8), oracle (32), question_id (32)]\n */\nexport function buildCreateMarketIx(\n params: CreateMarketParams,\n marketId: bigint,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n validateOutcomes(params.numOutcomes);\n\n const [exchange] = getExchangePda(programId);\n const [market] = getMarketPda(marketId, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n writable(exchange),\n writable(market),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.CREATE_MARKET]),\n toU8(params.numOutcomes),\n params.oracle.toBuffer(),\n params.questionId,\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Serialize outcome metadata for addDepositMint instruction\n */\nfunction serializeOutcomeMetadata(metadata: OutcomeMetadata[]): Buffer {\n const buffers: Buffer[] = [];\n for (const m of metadata) {\n buffers.push(serializeString(m.name));\n buffers.push(serializeString(m.symbol));\n buffers.push(serializeString(m.uri));\n }\n return Buffer.concat(buffers);\n}\n\n/**\n * Build AddDepositMint instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange\n * 2. market\n * 2. deposit_mint\n * 3. vault\n * 4. mint_authority\n * 5. token_program (SPL Token)\n * 6. token_2022_program\n * 7. system_program\n * 8+ conditional_mints[0..num_outcomes]\n *\n * Data: [discriminator, ...serialized_metadata]\n */\nexport function buildAddDepositMintIx(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n if (params.outcomeMetadata.length !== numOutcomes) {\n throw ProgramSdkError.invalidOutcomeCount(params.outcomeMetadata.length);\n }\n\n const [vault] = getVaultPda(params.depositMint, market, programId);\n const [mintAuthority] = getMintAuthorityPda(market, programId);\n const conditionalMints = getAllConditionalMintPdas(\n market,\n params.depositMint,\n numOutcomes,\n programId\n );\n\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n readonly(exchange),\n writable(market),\n readonly(params.depositMint),\n writable(vault),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(TOKEN_2022_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (const [mint] of conditionalMints) {\n keys.push(writable(mint));\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.ADD_DEPOSIT_MINT]),\n serializeOutcomeMetadata(params.outcomeMetadata),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build MintCompleteSet instruction\n *\n * Accounts:\n * 0. user (signer)\n * 1. exchange\n * 2. market\n * 3. deposit_mint\n * 4. vault\n * 5. user_deposit_ata\n * 6. position\n * 7. position_collateral_ata\n * 8. mint_authority\n * 9. token_program\n * 10. token_2022_program\n * 11. associated_token_program\n * 12. system_program\n * Remaining: [conditional_mint[i], position_conditional_ata[i]]\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildDepositIx(\n params: BuildDepositParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [vault] = getVaultPda(params.depositMint, params.market, programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const userDepositAta = getDepositTokenAta(params.depositMint, params.user);\n const positionCollateralAta = getDepositTokenAta(params.depositMint, position);\n const conditionalMints = getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n programId\n );\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(exchange),\n readonly(params.market),\n readonly(params.depositMint),\n writable(vault),\n writable(userDepositAta),\n writable(position),\n writable(positionCollateralAta),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(TOKEN_2022_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (const [mint] of conditionalMints) {\n keys.push(writable(mint));\n const positionAta = getConditionalTokenAta(mint, position);\n keys.push(writable(positionAta));\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.MINT_COMPLETE_SET]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build MergeCompleteSet instruction\n *\n * Accounts:\n * 0. user (signer)\n * 1. exchange\n * 2. market\n * 3. deposit_mint\n * 4. vault\n * 5. position\n * 6. user_deposit_ata\n * 7. mint_authority\n * 8. token_program\n * 9. token_2022_program\n * Remaining: [conditional_mint[i], position_conditional_ata[i]]\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildMergeIx(\n params: BuildMergeParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [vault] = getVaultPda(params.depositMint, params.market, programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const userDepositAta = getDepositTokenAta(params.depositMint, params.user);\n const conditionalMints = getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n programId\n );\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(exchange),\n readonly(params.market),\n readonly(params.depositMint),\n writable(vault),\n writable(position),\n writable(userDepositAta),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(TOKEN_2022_PROGRAM_ID),\n ];\n\n for (const [mint] of conditionalMints) {\n keys.push(writable(mint));\n const positionAta = getConditionalTokenAta(mint, position);\n keys.push(writable(positionAta));\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.MERGE_COMPLETE_SET]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build CancelOrder instruction\n *\n * Accounts:\n * 0. maker (signer, mut)\n * 1. market (readonly)\n * 2. order_status (mut)\n * 3. system_program (readonly)\n *\n * Data: [discriminator, order_hash (32), signed_order (225)]\n */\nexport function buildCancelOrderIx(\n maker: PublicKey,\n market: PublicKey,\n order: SignedOrder,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const orderHash = hashOrder(order);\n const [orderStatus] = getOrderStatusPda(orderHash, programId);\n\n const keys: AccountMeta[] = [\n signerMut(maker),\n readonly(market),\n writable(orderStatus),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.CANCEL_ORDER]),\n orderHash,\n serializeSignedOrder(order),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build IncrementNonce instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. user_nonce (mut)\n * 2. system_program (readonly)\n *\n * Data: [discriminator]\n */\nexport function buildIncrementNonceIx(\n user: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [userNonce] = getUserNoncePda(user, programId);\n\n const keys: AccountMeta[] = [\n signerMut(user),\n writable(userNonce),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n const data = Buffer.from([INSTRUCTION.INCREMENT_NONCE]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SettleMarket instruction\n *\n * Accounts:\n * 0. oracle (signer)\n * 1. exchange (readonly)\n * 2. market (mut)\n *\n * Data: [discriminator, winning_outcome (u8)]\n */\nexport function buildSettleMarketIx(\n params: SettleMarketParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [market] = getMarketPda(params.marketId, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.oracle),\n readonly(exchange),\n writable(market),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SETTLE_MARKET]),\n toU8(params.winningOutcome),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build RedeemWinnings instruction\n *\n * Accounts:\n * 0. user (signer)\n * 1. market\n * 2. deposit_mint\n * 3. vault\n * 4. winning_conditional_mint\n * 5. position\n * 6. position_conditional_ata\n * 7. user_deposit_ata\n * 8. mint_authority\n * 9. token_program\n * 10. token_2022_program\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildRedeemWinningsIx(\n params: RedeemWinningsParams,\n winningOutcome: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [vault] = getVaultPda(params.depositMint, params.market, programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const [winningMint] = getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n winningOutcome + 1,\n programId\n )[winningOutcome];\n const positionWinningAta = getConditionalTokenAta(winningMint, position);\n const userDepositAta = getDepositTokenAta(params.depositMint, params.user);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(params.market),\n readonly(params.depositMint),\n writable(vault),\n writable(winningMint),\n writable(position),\n writable(positionWinningAta),\n writable(userDepositAta),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(TOKEN_2022_PROGRAM_ID),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.REDEEM_WINNINGS]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SetPaused instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange (mut)\n *\n * Data: [discriminator, paused (u8)]\n */\nexport function buildSetPausedIx(\n authority: PublicKey,\n paused: boolean,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [signerMut(authority), writable(exchange)];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SET_PAUSED]),\n toU8(paused ? 1 : 0),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SetOperator instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange (mut)\n *\n * Data: [discriminator, new_operator (32)]\n */\nexport function buildSetOperatorIx(\n authority: PublicKey,\n newOperator: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [signerMut(authority), writable(exchange)];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SET_OPERATOR]),\n newOperator.toBuffer(),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build WithdrawFromPosition instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. market (readonly)\n * 2. position (mut)\n * 3. mint (readonly)\n * 4. position_ata (mut)\n * 5. user_ata (mut)\n * 6. token_program (readonly)\n *\n * Data: [discriminator, amount (u64), outcome_index (u8)]\n */\nexport function buildWithdrawFromPositionIx(\n params: WithdrawFromPositionParams,\n isToken2022: boolean,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [position] = getPositionPda(params.user, params.market, programId);\n const positionAta = isToken2022\n ? getConditionalTokenAta(params.mint, position)\n : getDepositTokenAta(params.mint, position);\n const userAta = isToken2022\n ? getConditionalTokenAta(params.mint, params.user)\n : getDepositTokenAta(params.mint, params.user);\n const tokenProgram = isToken2022 ? TOKEN_2022_PROGRAM_ID : TOKEN_PROGRAM_ID;\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(params.market),\n writable(position),\n readonly(params.mint),\n writable(positionAta),\n writable(userAta),\n readonly(tokenProgram),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.WITHDRAW_FROM_POSITION]),\n toU64Le(params.amount),\n toU8(params.outcomeIndex),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build ActivateMarket instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange (readonly)\n * 2. market (mut)\n *\n * Data: [discriminator]\n */\nexport function buildActivateMarketIx(\n params: ActivateMarketParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [market] = getMarketPda(params.marketId, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n readonly(exchange),\n writable(market),\n ];\n\n const data = Buffer.from([INSTRUCTION.ACTIVATE_MARKET]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build MatchOrdersMulti instruction\n *\n * Dynamic accounts based on full_fill_bitmask:\n * 0. operator (signer)\n * 1. exchange (readonly)\n * 2. market (readonly)\n * [taker_order_status if bit7=0] (mut)\n * taker_nonce (readonly)\n * taker_position (mut)\n * base_mint (readonly)\n * quote_mint (readonly)\n * taker_base_ata (mut)\n * taker_quote_ata (mut)\n * token_2022_program (readonly)\n * system_program (readonly)\n * Per maker:\n * [maker_order_status if bit_i=0] (mut)\n * maker_nonce (readonly)\n * maker_position (mut)\n * maker_base_ata (mut)\n * maker_quote_ata (mut)\n *\n * Data:\n * [0] discriminator\n * [1..30] taker Order (29 bytes)\n * [30..94] taker_signature (64 bytes)\n * [94] num_makers\n * [95] full_fill_bitmask\n * Per maker (109 bytes):\n * [+0..+29] maker Order (29)\n * [+29..+93] maker_signature (64)\n * [+93..+101] maker_fill_amount (8)\n * [+101..+109] taker_fill_amount (8)\n */\nexport function buildMatchOrdersMultiIx(\n params: MatchOrdersMultiParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n if (params.makerOrders.length === 0) {\n throw ProgramSdkError.missingField(\"makers\");\n }\n if (params.makerOrders.length > MAX_MAKERS) {\n throw ProgramSdkError.tooManyMakers(params.makerOrders.length);\n }\n if (params.makerOrders.length !== params.makerFillAmounts.length) {\n throw ProgramSdkError.invalidDataLength(\"makerFillAmounts\", params.makerOrders.length, params.makerFillAmounts.length);\n }\n if (params.makerOrders.length !== params.takerFillAmounts.length) {\n throw ProgramSdkError.invalidDataLength(\"takerFillAmounts\", params.makerOrders.length, params.takerFillAmounts.length);\n }\n\n const [exchange] = getExchangePda(programId);\n const takerOrderHash = hashOrder(params.takerOrder);\n const [takerNonce] = getUserNoncePda(params.takerOrder.maker, programId);\n const [takerPosition] = getPositionPda(\n params.takerOrder.maker,\n params.market,\n programId\n );\n const takerBaseAta = getConditionalTokenAta(params.baseMint, takerPosition);\n const takerQuoteAta = getConditionalTokenAta(params.quoteMint, takerPosition);\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n readonly(params.market),\n ];\n\n // Taker order status if not fully filled (bit 7 = 0)\n const takerFullFill = (params.fullFillBitmask & 0x80) !== 0;\n if (!takerFullFill) {\n const [takerOrderStatus] = getOrderStatusPda(takerOrderHash, programId);\n keys.push(writable(takerOrderStatus));\n }\n\n keys.push(readonly(takerNonce));\n keys.push(writable(takerPosition));\n keys.push(readonly(params.baseMint));\n keys.push(readonly(params.quoteMint));\n keys.push(writable(takerBaseAta));\n keys.push(writable(takerQuoteAta));\n keys.push(readonly(TOKEN_2022_PROGRAM_ID));\n keys.push(readonly(SYSTEM_PROGRAM_ID));\n\n // Add maker accounts\n for (let i = 0; i < params.makerOrders.length; i++) {\n const makerOrder = params.makerOrders[i];\n const makerFullFill = (params.fullFillBitmask & (1 << i)) !== 0;\n\n if (!makerFullFill) {\n const makerOrderHash = hashOrder(makerOrder);\n const [makerOrderStatus] = getOrderStatusPda(makerOrderHash, programId);\n keys.push(writable(makerOrderStatus));\n }\n\n const [makerNonce] = getUserNoncePda(makerOrder.maker, programId);\n const [makerPosition] = getPositionPda(\n makerOrder.maker,\n params.market,\n programId\n );\n const makerBaseAta = getConditionalTokenAta(params.baseMint, makerPosition);\n const makerQuoteAta = getConditionalTokenAta(params.quoteMint, makerPosition);\n\n keys.push(readonly(makerNonce));\n keys.push(writable(makerPosition));\n keys.push(writable(makerBaseAta));\n keys.push(writable(makerQuoteAta));\n }\n\n // Build data\n const takerCompact = signedOrderToOrder(params.takerOrder);\n const dataBuffers: Buffer[] = [\n Buffer.from([INSTRUCTION.MATCH_ORDERS_MULTI]),\n serializeOrder(takerCompact),\n params.takerOrder.signature,\n toU8(params.makerOrders.length),\n toU8(params.fullFillBitmask),\n ];\n\n // Add maker data\n for (let i = 0; i < params.makerOrders.length; i++) {\n const makerOrder = params.makerOrders[i];\n const makerCompact = signedOrderToOrder(makerOrder);\n\n dataBuffers.push(serializeOrder(makerCompact));\n dataBuffers.push(makerOrder.signature);\n dataBuffers.push(toU64Le(params.makerFillAmounts[i]));\n dataBuffers.push(toU64Le(params.takerFillAmounts[i]));\n }\n\n const data = Buffer.concat(dataBuffers);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SetAuthority instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange (mut)\n *\n * Data: [discriminator, new_authority (32)]\n */\nexport function buildSetAuthorityIx(\n params: SetAuthorityParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.currentAuthority),\n writable(exchange),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SET_AUTHORITY]),\n params.newAuthority.toBuffer(),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build CreateOrderbook instruction\n *\n * Accounts:\n * 0. authority (signer, mut)\n * 1. market (readonly)\n * 2. mint_a (readonly)\n * 3. mint_b (readonly)\n * 4. orderbook (mut)\n * 5. lookup_table (mut)\n * 6. exchange (readonly)\n * 7. alt_program (readonly)\n * 8. system_program (readonly)\n *\n * Data: [discriminator, recent_slot (u64), base_index (u8)]\n */\nexport function buildCreateOrderbookIx(\n params: CreateOrderbookParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [orderbook] = getOrderbookPda(params.mintA, params.mintB, programId);\n const [alt] = getAltPda(orderbook, params.recentSlot);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n readonly(params.market),\n readonly(params.mintA),\n readonly(params.mintB),\n writable(orderbook),\n writable(alt),\n readonly(exchange),\n readonly(ALT_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.CREATE_ORDERBOOK]),\n toU64Le(params.recentSlot),\n Buffer.from([params.baseIndex]),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build WhitelistDepositToken instruction\n *\n * Accounts:\n * 0. authority (signer, mut)\n * 1. exchange (readonly)\n * 2. mint (readonly)\n * 3. global_deposit_token (mut)\n * 4. system_program (readonly)\n *\n * Data: [discriminator]\n */\nexport function buildWhitelistDepositTokenIx(\n params: WhitelistDepositTokenParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [globalDepositToken] = getGlobalDepositTokenPda(params.mint, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n writable(exchange),\n readonly(params.mint),\n writable(globalDepositToken),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.from([INSTRUCTION.WHITELIST_DEPOSIT_TOKEN]),\n });\n}\n\n/**\n * Build DepositToGlobal instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. global_deposit_token (readonly)\n * 2. mint (readonly)\n * 3. user_global_deposit (mut)\n * 4. user_token_account (mut)\n * 5. token_program (readonly)\n * 6. system_program (readonly)\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildDepositToGlobalIx(\n params: DepositToGlobalParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [globalDepositToken] = getGlobalDepositTokenPda(params.mint, programId);\n const [userGlobalDeposit] = getUserGlobalDepositPda(params.user, params.mint, programId);\n const userTokenAccount = getDepositTokenAta(params.mint, params.user);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(globalDepositToken),\n readonly(params.mint),\n writable(userGlobalDeposit),\n writable(userTokenAccount),\n readonly(TOKEN_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.DEPOSIT_TO_GLOBAL]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build GlobalToMarketDeposit instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. exchange (readonly)\n * 2. market (readonly)\n * 3. deposit_mint (readonly)\n * 4. vault (mut)\n * 5. global_deposit_token (readonly)\n * 6. user_global_deposit (mut)\n * 7. position (mut)\n * 8. position_collateral_ata (mut)\n * 9. mint_authority (readonly)\n * 10. token_program (readonly)\n * 11. token_2022_program (readonly)\n * 12. ata_program (readonly)\n * 13. system_program (readonly)\n * + per outcome: conditional_mint[i] (mut), position_conditional_ata[i] (mut)\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildGlobalToMarketDepositIx(\n params: GlobalToMarketDepositParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [vault] = getVaultPda(params.depositMint, params.market, programId);\n const [globalDepositToken] = getGlobalDepositTokenPda(params.depositMint, programId);\n const [userGlobalDeposit] = getUserGlobalDepositPda(params.user, params.depositMint, programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const positionCollateralAta = getDepositTokenAta(params.depositMint, position);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(exchange),\n readonly(params.market),\n readonly(params.depositMint),\n writable(vault),\n readonly(globalDepositToken),\n writable(userGlobalDeposit),\n writable(position),\n writable(positionCollateralAta),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(TOKEN_2022_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (let i = 0; i < numOutcomes; i += 1) {\n const [conditionalMint] = getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n programId\n )[i];\n keys.push(writable(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, position)));\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.GLOBAL_TO_MARKET_DEPOSIT]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build InitPositionTokens instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. exchange (readonly)\n * 2. market (readonly)\n * 3. deposit_mint (readonly)\n * 4. vault (readonly)\n * 5. position (mut)\n * 6. lookup_table (mut)\n * 7. mint_authority (readonly)\n * 8. token_2022_program (readonly)\n * 9. ata_program (readonly)\n * 10. alt_program (readonly)\n * 11. system_program (readonly)\n * + per outcome: conditional_mint[i] (readonly), position_conditional_ata[i] (mut)\n *\n * Data: [discriminator, recent_slot (u64)]\n */\nexport function buildInitPositionTokensIx(\n params: InitPositionTokensParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const [lookupTable] = getPositionAltPda(position, params.recentSlot);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.payer),\n readonly(params.user),\n readonly(exchange),\n readonly(params.market),\n writable(position),\n writable(lookupTable),\n readonly(mintAuthority),\n readonly(TOKEN_2022_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(ALT_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (const depositMint of params.depositMints) {\n const [vault] = getVaultPda(depositMint, params.market, programId);\n const [gdt] = getGlobalDepositTokenPda(depositMint, programId);\n keys.push(readonly(depositMint));\n keys.push(readonly(vault));\n keys.push(readonly(gdt));\n\n for (let i = 0; i < numOutcomes; i += 1) {\n const [conditionalMint] = getAllConditionalMintPdas(\n params.market,\n depositMint,\n numOutcomes,\n programId\n )[i];\n keys.push(readonly(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, position)));\n }\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.INIT_POSITION_TOKENS]),\n toU64Le(params.recentSlot),\n toU8(params.depositMints.length),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build ExtendPositionTokens instruction\n *\n * Extends an existing position's lookup table with new deposit mints.\n *\n * Accounts:\n * 0. payer (signer, mut)\n * 1. user (readonly)\n * 2. exchange (readonly)\n * 3. market (readonly)\n * 4. position (readonly)\n * 5. lookup_table (mut)\n * 6. token_2022_program (readonly)\n * 7. ata_program (readonly)\n * 8. alt_program (readonly)\n * 9. system_program (readonly)\n * Per deposit_mint:\n * deposit_mint (readonly), vault (readonly), gdt (readonly),\n * per outcome: conditional_mint (readonly), position_ata (mut)\n *\n * Data: [discriminator, num_deposit_mints (u8)]\n */\nexport function buildExtendPositionTokensIx(\n params: ExtendPositionTokensParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n if (params.depositMints.length === 0) {\n throw ProgramSdkError.missingField(\"deposit_mints\");\n }\n\n const [exchange] = getExchangePda(programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.payer),\n readonly(params.user),\n readonly(exchange),\n readonly(params.market),\n readonly(position),\n writable(params.lookupTable),\n readonly(TOKEN_2022_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(ALT_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (const depositMint of params.depositMints) {\n const [vault] = getVaultPda(depositMint, params.market, programId);\n const [gdt] = getGlobalDepositTokenPda(depositMint, programId);\n keys.push(readonly(depositMint));\n keys.push(readonly(vault));\n keys.push(readonly(gdt));\n\n for (let i = 0; i < numOutcomes; i += 1) {\n const [conditionalMint] = getAllConditionalMintPdas(\n params.market,\n depositMint,\n numOutcomes,\n programId\n )[i];\n keys.push(readonly(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, position)));\n }\n }\n\n const data = Buffer.from([\n INSTRUCTION.EXTEND_POSITION_TOKENS,\n params.depositMints.length,\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build DepositAndSwap instruction.\n * Supports a mix of global deposits and token swaps in a single instruction.\n */\nexport function buildDepositAndSwapIx(\n params: DepositAndSwapParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n validateOutcomes(params.numOutcomes);\n\n if (params.makers.length === 0) {\n throw ProgramSdkError.missingField(\"makers\");\n }\n if (params.makers.length > MAX_MAKERS) {\n throw ProgramSdkError.tooManyMakers(params.makers.length);\n }\n\n const [exchange] = getExchangePda(programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [takerNonce] = getUserNoncePda(params.takerOrder.maker, programId);\n const [takerPosition] = getPositionPda(params.takerOrder.maker, params.market, programId);\n const [receiveMint, giveMint] =\n params.takerOrder.side === OrderSide.BID\n ? [params.baseMint, params.quoteMint]\n : [params.quoteMint, params.baseMint];\n\n let fullFillBitmask = 0;\n let depositBitmask = 0;\n\n if (params.takerIsFullFill) {\n fullFillBitmask |= 0x80;\n }\n if (params.takerIsDeposit) {\n depositBitmask |= 0x80;\n }\n\n for (let i = 0; i < params.makers.length; i += 1) {\n const maker = params.makers[i];\n if (maker.isFullFill) {\n fullFillBitmask |= 1 << i;\n }\n if (maker.isDeposit) {\n depositBitmask |= 1 << i;\n }\n }\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n readonly(params.market),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n ];\n\n if (!params.takerIsFullFill) {\n const takerOrderHash = hashOrder(params.takerOrder);\n const [takerOrderStatus] = getOrderStatusPda(takerOrderHash, programId);\n keys.push(writable(takerOrderStatus));\n }\n\n keys.push(readonly(takerNonce));\n keys.push(writable(takerPosition));\n keys.push(readonly(params.baseMint));\n keys.push(readonly(params.quoteMint));\n keys.push(writable(getConditionalTokenAta(receiveMint, takerPosition)));\n keys.push(writable(getConditionalTokenAta(giveMint, takerPosition)));\n keys.push(readonly(TOKEN_2022_PROGRAM_ID));\n keys.push(readonly(SYSTEM_PROGRAM_ID));\n\n if (params.takerIsDeposit) {\n const [vault] = getVaultPda(\n params.takerDepositMint,\n params.market,\n programId\n );\n const [globalDepositToken] = getGlobalDepositTokenPda(\n params.takerDepositMint,\n programId\n );\n const [takerGlobalDeposit] = getUserGlobalDepositPda(\n params.takerOrder.maker,\n params.takerDepositMint,\n programId\n );\n\n keys.push(readonly(params.takerDepositMint));\n keys.push(writable(vault));\n keys.push(readonly(globalDepositToken));\n keys.push(writable(takerGlobalDeposit));\n\n for (const [conditionalMint] of getAllConditionalMintPdas(\n params.market,\n params.takerDepositMint,\n params.numOutcomes,\n programId\n )) {\n keys.push(writable(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, takerPosition)));\n }\n }\n\n for (const maker of params.makers) {\n const [makerNonce] = getUserNoncePda(maker.order.maker, programId);\n const [makerPosition] = getPositionPda(maker.order.maker, params.market, programId);\n\n if (!maker.isFullFill) {\n const makerOrderHash = hashOrder(maker.order);\n const [makerOrderStatus] = getOrderStatusPda(makerOrderHash, programId);\n keys.push(writable(makerOrderStatus));\n }\n\n keys.push(readonly(makerNonce));\n keys.push(writable(makerPosition));\n\n if (maker.isDeposit) {\n const [vault] = getVaultPda(maker.depositMint, params.market, programId);\n const [globalDepositToken] = getGlobalDepositTokenPda(\n maker.depositMint,\n programId\n );\n const [makerGlobalDeposit] = getUserGlobalDepositPda(\n maker.order.maker,\n maker.depositMint,\n programId\n );\n\n keys.push(readonly(maker.depositMint));\n keys.push(writable(vault));\n keys.push(readonly(globalDepositToken));\n keys.push(writable(makerGlobalDeposit));\n\n for (const [conditionalMint] of getAllConditionalMintPdas(\n params.market,\n maker.depositMint,\n params.numOutcomes,\n programId\n )) {\n keys.push(writable(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, makerPosition)));\n }\n }\n\n keys.push(writable(getConditionalTokenAta(receiveMint, makerPosition)));\n keys.push(writable(getConditionalTokenAta(giveMint, makerPosition)));\n }\n\n const buffers: Buffer[] = [\n Buffer.from([INSTRUCTION.DEPOSIT_AND_SWAP]),\n serializeOrder(signedOrderToOrder(params.takerOrder)),\n params.takerOrder.signature,\n toU8(params.makers.length),\n toU8(fullFillBitmask),\n toU8(depositBitmask),\n ];\n\n for (const maker of params.makers) {\n buffers.push(serializeOrder(signedOrderToOrder(maker.order)));\n buffers.push(maker.order.signature);\n buffers.push(toU64Le(maker.makerFillAmount));\n buffers.push(toU64Le(maker.takerFillAmount));\n }\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.concat(buffers),\n });\n}\n\n/**\n * Build WithdrawFromGlobal instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. global_deposit_token (readonly) - PDA [\"global_deposit\", mint]\n * 2. mint (readonly)\n * 3. user_global_deposit (mut) - PDA [\"global_deposit\", user, mint]\n * 4. user_token_account (mut) - user's ATA for mint\n * 5. token_program (readonly)\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildWithdrawFromGlobalIx(\n params: WithdrawFromGlobalParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [globalDepositToken] = getGlobalDepositTokenPda(params.mint, programId);\n const [userGlobalDeposit] = getUserGlobalDepositPda(params.user, params.mint, programId);\n const userTokenAccount = getDepositTokenAta(params.mint, params.user);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(globalDepositToken),\n readonly(params.mint),\n writable(userGlobalDeposit),\n writable(userTokenAccount),\n readonly(TOKEN_PROGRAM_ID),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.WITHDRAW_FROM_GLOBAL]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n// ============================================================================\n// TRANSACTION BUILDERS (_tx convenience wrappers)\n// Each wraps the corresponding _ix builder into a Transaction with feePayer set.\n// ============================================================================\n\nexport function buildInitializeTx(\n params: InitializeParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildInitializeIx(params, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildCreateMarketTx(\n params: CreateMarketParams,\n marketId: bigint,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCreateMarketIx(params, marketId, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildAddDepositMintTx(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildAddDepositMintIx(params, market, numOutcomes, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildDepositTx(\n params: BuildDepositParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildDepositIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildMergeTx(\n params: BuildMergeParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildMergeIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildCancelOrderTx(\n maker: PublicKey,\n market: PublicKey,\n order: SignedOrder,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCancelOrderIx(maker, market, order, programId);\n return new Transaction({ feePayer: maker }).add(ix);\n}\n\nexport function buildIncrementNonceTx(\n user: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildIncrementNonceIx(user, programId);\n return new Transaction({ feePayer: user }).add(ix);\n}\n\nexport function buildSettleMarketTx(\n params: SettleMarketParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSettleMarketIx(params, programId);\n return new Transaction({ feePayer: params.oracle }).add(ix);\n}\n\nexport function buildRedeemWinningsTx(\n params: RedeemWinningsParams,\n winningOutcome: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildRedeemWinningsIx(params, winningOutcome, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildSetPausedTx(\n authority: PublicKey,\n paused: boolean,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetPausedIx(authority, paused, programId);\n return new Transaction({ feePayer: authority }).add(ix);\n}\n\nexport function buildSetOperatorTx(\n authority: PublicKey,\n newOperator: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetOperatorIx(authority, newOperator, programId);\n return new Transaction({ feePayer: authority }).add(ix);\n}\n\nexport function buildWithdrawFromPositionTx(\n params: WithdrawFromPositionParams,\n isToken2022: boolean,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildWithdrawFromPositionIx(params, isToken2022, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildActivateMarketTx(\n params: ActivateMarketParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildActivateMarketIx(params, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildMatchOrdersMultiTx(\n params: MatchOrdersMultiParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildMatchOrdersMultiIx(params, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildSetAuthorityTx(\n params: SetAuthorityParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetAuthorityIx(params, programId);\n return new Transaction({ feePayer: params.currentAuthority }).add(ix);\n}\n\nexport function buildCreateOrderbookTx(\n params: CreateOrderbookParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCreateOrderbookIx(params, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildWhitelistDepositTokenTx(\n params: WhitelistDepositTokenParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildWhitelistDepositTokenIx(params, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildDepositToGlobalTx(\n params: DepositToGlobalParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildDepositToGlobalIx(params, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildGlobalToMarketDepositTx(\n params: GlobalToMarketDepositParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildGlobalToMarketDepositIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildInitPositionTokensTx(\n params: InitPositionTokensParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildInitPositionTokensIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.payer }).add(ix);\n}\n\nexport function buildExtendPositionTokensTx(\n params: ExtendPositionTokensParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildExtendPositionTokensIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.payer }).add(ix);\n}\n\nexport function buildDepositAndSwapTx(\n params: DepositAndSwapParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildDepositAndSwapIx(params, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildWithdrawFromGlobalTx(\n params: WithdrawFromGlobalParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildWithdrawFromGlobalIx(params, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/program/instructions.ts"],"names":[],"mappings":";;AAoMA,8CAmBC;AAeD,kDAuCC;AAmBD,sDA2CC;AAqBD,wCA+CC;AAmBD,oCA6CC;AAaD,gDA4BC;AAaD,sDAqBC;AAYD,kDAyBC;AAoBD,sDA+CC;AAWD,4CAmBC;AAWD,gDAmBC;AAiBD,kEA+BC;AAYD,sDAoBC;AAuCD,0DA+GC;AAWD,kDAqBC;AAwBD,wDA0CC;AAWD,8CAqBC;AAKD,oDA2BC;AAKD,sDAsBC;AAED,4EAKC;AAED,4EAKC;AAoED,oEAoBC;AAqBD,wDAKC;AAKD,sEAMC;AAuED,oEAgDC;AAqBD,8DAsDC;AAyBD,kEAsDC;AAMD,sDAyKC;AAgBD,8DA6BC;AAeD,0DAoBC;AAYD,0DAuBC;AAeD,8EAwCC;AAeD,4DAoBC;AAcD,sDAmBC;AAOD,8CAMC;AAED,kDAOC;AAED,sDAQC;AAED,wCAOC;AAED,oCAOC;AAED,gDAQC;AAED,sDAMC;AAED,kDAMC;AAED,sDAOC;AAED,4CAOC;AAED,gDAOC;AAED,kEAMC;AAED,sDAMC;AAED,0DAMC;AAED,kDAMC;AAED,8CAMC;AAED,oDAMC;AAED,sDAMC;AAED,4EAMC;AAED,4EAMC;AAED,wDAMC;AAED,oEAMC;AAED,wDAMC;AAED,sEAOC;AAED,oEAOC;AAED,8DAOC;AAED,kEAOC;AAED,sDAMC;AAED,8DAMC;AAED,0DAMC;AAED,0DAMC;AAED,8EAOC;AAED,4DAMC;AAED,sDAMC;AA9rED,6CAKyB;AACzB,2CAWqB;AACrB,gCAAoC;AACpC,mCAgCiB;AACjB,+BAiBe;AACf,mCAWiB;AACjB,qCAA+F;AAC/F,mCAA0C;AAE1C,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,SAAS,SAAS,CAAC,MAAiB;IAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,MAAM,CAAC,MAAiB;IAC/B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,MAAiB;IACjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CAAC,MAAiB;IACjC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,mBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAeD,SAAS,uBAAuB,CAAC,MAA6B;IAC5D,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,uBAAe,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,uBAAe,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,IAAI,GAAuB;QAC/B,IAAI,EAAE,MAAM,CAAC,KAAK;QAClB,WAAW,EAAE,MAAM,CAAC,gBAAgB;QACpC,YAAY,EAAE,MAAM,CAAC,iBAAiB;QACtC,MAAM,EAAE,MAAM,CAAC,SAAS,KAAK,CAAC;KAC/B,CAAC;IACF,MAAM,KAAK,GAAuB;QAChC,IAAI,EAAE,MAAM,CAAC,KAAK;QAClB,WAAW,EAAE,MAAM,CAAC,gBAAgB;QACpC,YAAY,EAAE,MAAM,CAAC,iBAAiB;QACtC,MAAM,EAAE,MAAM,CAAC,SAAS,KAAK,CAAC;KAC/B,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAClB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC;QAC7D,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;QACf,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEpB,OAAO;QACL,KAAK;QACL,KAAK;QACL,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,gBAA0B;IAC1D,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC;IACtC,IAAI,KAAK,GAAG,wBAAY,IAAI,KAAK,GAAG,wBAAY,EAAE,CAAC;QACjD,MAAM,uBAAe,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;YAC5B,SAAS,GAAG,CAAC;YACb,SAAS,GAAG,UAAU,EACtB,CAAC;YACD,MAAM,uBAAe,CAAC,sBAAsB,EAAE,CAAC;QACjD,CAAC;QACD,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,WAAW,GAAG,WAAW,EAAE,CAAC;YAC9B,MAAM,uBAAe,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;QACvB,MAAM,uBAAe,CAAC,uBAAuB,EAAE,CAAC;IAClD,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,SAAgB,iBAAiB,CAC/B,MAAwB,EACxB,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,6BAAiB,CAAC;KAC5B,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAEnD,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,mBAAmB,CACjC,MAA0B,EAC1B,QAAgB,EAChB,YAAuB,gBAAU;IAEjC,IAAA,wBAAgB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACrC,IAAA,uBAAe,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAExD,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,kBAAY,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,IAAA,yBAAiB,EACnC,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,WAAW,CACnB,CAAC;IACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,8BAAwB,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAE9E,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC;QAChB,QAAQ,CAAC,6BAAiB,CAAC;QAC3B,QAAQ,CAAC,kBAAkB,CAAC;KAC7B,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,aAAa,CAAC,CAAC;QACxC,IAAA,YAAI,EAAC,MAAM,CAAC,WAAW,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;QACxB,MAAM,CAAC,UAAU;QACjB,IAAA,eAAO,EAAC,MAAM,CAAC,WAAW,CAAC;QAC3B,IAAA,eAAO,EAAC,MAAM,CAAC,WAAW,CAAC;KAC5B,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,MAAiB,EACjB,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;IAE9B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,yBAAmB,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,IAAA,+BAAyB,EAChD,MAAM,EACN,MAAM,CAAC,WAAW,EAClB,WAAW,EACX,SAAS,CACV,CAAC;IAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,8BAAwB,EAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAErF,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC;QAChB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC;QACf,QAAQ,CAAC,aAAa,CAAC;QACvB,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,6BAAiB,CAAC;QAC3B,QAAQ,CAAC,kBAAkB,CAAC;KAC7B,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEzD,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,cAAc,CAC5B,MAA0B,EAC1B,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,yBAAmB,EAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,IAAA,+BAAyB,EAChD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,EAClB,WAAW,EACX,SAAS,CACV,CAAC;IAEF,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC;QACf,QAAQ,CAAC,cAAc,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,aAAa,CAAC;QACvB,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,uCAA2B,CAAC;QACrC,QAAQ,CAAC,6BAAiB,CAAC;KAC5B,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAA,8BAAsB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,iBAAiB,CAAC,CAAC;QAC5C,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,YAAY,CAC1B,MAAwB,EACxB,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,yBAAmB,EAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,gBAAgB,GAAG,IAAA,+BAAyB,EAChD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,EAClB,WAAW,EACX,SAAS,CACV,CAAC;IAEF,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC;QACf,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,cAAc,CAAC;QACxB,QAAQ,CAAC,aAAa,CAAC;QACvB,QAAQ,CAAC,4BAAgB,CAAC;KAC3B,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAA,8BAAsB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,kBAAkB,CAAC,CAAC;QAC7C,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,kBAAkB,CAChC,QAAmB,EACnB,MAAiB,EACjB,KAAkB,EAClB,YAAuB,gBAAU;IAEjC,MAAM,SAAS,GAAG,IAAA,kBAAS,EAAC,KAAK,CAAC,CAAC;IACnC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,IAAA,uBAAiB,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE9D,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,QAAQ,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC;QAChB,QAAQ,CAAC,WAAW,CAAC;KACtB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,YAAY,CAAC,CAAC;QACvC,SAAS;QACT,IAAA,6BAAoB,EAAC,KAAK,CAAC;KAC5B,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,qBAAqB,CACnC,IAAe,EACf,YAAuB,gBAAU;IAEjC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,qBAAe,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,IAAI,CAAC;QACf,QAAQ,CAAC,SAAS,CAAC;QACnB,QAAQ,CAAC,6BAAiB,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IAExD,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CACjC,MAA0B,EAC1B,YAAuB,gBAAU;IAEjC,wBAAwB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAElD,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,kBAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAkB;QAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACrB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC;KACjB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,aAAa,CAAC,CAAC;QACxC,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAO,CAAC;KACxC,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAoB,EACpB,YAAuB,gBAAU;IAEjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,IAAI,EAAE,CAAC;QAC/E,MAAM,uBAAe,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,yBAAmB,EAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,2BAAqB,EAC7C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,SAAS,CACV,CAAC;IACF,MAAM,sBAAsB,GAAG,IAAA,8BAAsB,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACjF,MAAM,cAAc,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC;QACf,QAAQ,CAAC,eAAe,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,sBAAsB,CAAC;QAChC,QAAQ,CAAC,cAAc,CAAC;QACxB,QAAQ,CAAC,aAAa,CAAC;QACvB,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,eAAe,CAAC,CAAC;QAC1C,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC;QACtB,IAAA,YAAI,EAAC,YAAY,CAAC;KACnB,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,gBAAgB,CAC9B,SAAoB,EACpB,MAAe,EACf,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,UAAU,CAAC,CAAC;QACrC,IAAA,YAAI,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrB,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAChC,SAAoB,EACpB,WAAsB,EACtB,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,YAAY,CAAC,CAAC;QACvC,WAAW,CAAC,QAAQ,EAAE;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,2BAA2B,CACzC,MAAkC,EAClC,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,WAAW,CAAC;QACrB,QAAQ,CAAC,OAAO,CAAC;QACjB,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,sBAAsB,CAAC,CAAC;QACjD,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC;QACtB,IAAA,YAAI,EAAC,MAAM,CAAC,YAAY,CAAC;KAC1B,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,kBAAY,EAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC;KACjB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IAExD,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,SAAgB,uBAAuB,CACrC,MAA8B,EAC9B,YAAuB,gBAAU;IAEjC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,uBAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,sBAAU,EAAE,CAAC;QAC3C,MAAM,uBAAe,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,uBAAe,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACjE,MAAM,uBAAe,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClF,MAAM,cAAc,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,CAAC,UAAU,CAAC,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,oBAAc,EACpC,MAAM,CAAC,UAAU,CAAC,KAAK,EACvB,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;IACF,MAAM,YAAY,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAChD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,CACnB,CAAC;IAEF,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC;KACpB,CAAC;IAEF,qDAAqD;IACrD,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAA,uBAAiB,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,4BAAgB,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,6BAAiB,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEzC,qBAAqB;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEhE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,cAAc,GAAG,IAAA,kBAAS,EAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAA,uBAAiB,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,CAAC,UAAU,CAAC,GAAG,IAAA,qBAAe,EAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,oBAAc,EACpC,UAAU,CAAC,KAAK,EAChB,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;QACF,MAAM,YAAY,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAE9E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,aAAa;IACb,MAAM,YAAY,GAAG,IAAA,2BAAkB,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAa;QAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,kBAAkB,CAAC,CAAC;QAC7C,IAAA,uBAAc,EAAC,YAAY,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,SAAS;QAC3B,IAAA,YAAI,EAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QAC/B,IAAA,YAAI,EAAC,MAAM,CAAC,eAAe,CAAC;KAC7B,CAAC;IAEF,iBAAiB;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,IAAA,2BAAkB,EAAC,UAAU,CAAC,CAAC;QAEpD,WAAW,CAAC,IAAI,CAAC,IAAA,uBAAc,EAAC,YAAY,CAAC,CAAC,CAAC;QAC/C,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACvC,WAAW,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,WAAW,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAExC,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CACjC,MAA0B,EAC1B,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAClC,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;KAC/B,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,sBAAsB,CACpC,MAA6B,EAC7B,YAAuB,gBAAU;IAEjC,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,qBAAe,EAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3F,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,eAAS,EAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;IAC1F,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAElF,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9B,QAAQ,CAAC,SAAS,CAAC;QACnB,QAAQ,CAAC,GAAG,CAAC;QACb,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,0BAAc,CAAC;QACxB,QAAQ,CAAC,6BAAiB,CAAC;QAC3B,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;QACrC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;QACrC,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,uCAA2B,CAAC;QACrC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,mBAAmB,CAAC;KAC9B,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAA,eAAO,EAAC,MAAM,CAAC,UAAU,CAAC;QAC1B,IAAA,YAAI,EAAC,SAAS,CAAC,SAAS,CAAC;QACzB,IAAA,YAAI,EAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;QAClC,IAAA,YAAI,EAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;KACnC,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC/B,MAAwB,EACxB,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE;KAC7B,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,MAA2B,EAC3B,YAAuB,gBAAU;IAEjC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,uBAAe,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IACF,MAAM,OAAO,GAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAEvE,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,IAAA,uBAAe,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAuB,gBAAU;IAEjC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,uBAAe,CAAC,kBAAkB,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IAEF,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,gBAAgB,CAAC,CAAC;YAC3C,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE;SACjC,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,gCAAgC,CAC9C,MAAiC,EACjC,YAAuB,gBAAU;IAEjC,OAAO,0BAA0B,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,gCAAgC,CAC9C,MAAiC,EACjC,YAAuB,gBAAU;IAEjC,OAAO,0BAA0B,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,0BAA0B,CACjC,MAAiC,EACjC,QAAiB,EACjB,SAAoB;IAEpB,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;QACtC,MAAM,CAAC,YAAY,GAAG,CAAC;QACvB,MAAM,CAAC,YAAY,IAAI,wBAAY,EACnC,CAAC;QACD,MAAM,uBAAe,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,EAAE,wBAAY,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,2BAAqB,EAC7C,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,EACnB,SAAS,CACV,CAAC;IACF,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,yBAAmB,EAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,uBAAiB,EAAC,eAAe,CAAC,CAAC;IAEtD,MAAM,IAAI,GAAkB;QAC1B,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7D,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,eAAe,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,aAAa,CAAC;QACvB,QAAQ,CAAC,yCAA6B,CAAC;KACxC,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,6BAAiB,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAAc,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ;oBACN,CAAC,CAAC,uBAAW,CAAC,2BAA2B;oBACzC,CAAC,CAAC,uBAAW,CAAC,2BAA2B;gBAC3C,MAAM,CAAC,YAAY;aACpB,CAAC;YACF,IAAA,oCAA4B,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;SACrE,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,4BAA4B,CAC1C,MAAmC,EACnC,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,8BAAwB,EAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9E,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,kBAAkB,CAAC;QAC5B,QAAQ,CAAC,6BAAiB,CAAC;KAC5B,CAAC;IAEF,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,uBAAuB,CAAC,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,sBAAsB,CACpC,MAA6B,EAC7B,YAAuB,gBAAU;IAEjC,OAAO,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,6BAA6B,CAC3C,MAA6B,EAC7B,UAAqC,EACrC,YAAuB,gBAAU;IAEjC,OAAO,2BAA2B,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,2BAA2B,CAClC,MAA6B,EAC7B,UAAiD,EACjD,SAAoB;IAEpB,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,8BAAwB,EAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAA,6BAAuB,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzF,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,QAAQ,CAAC,kBAAkB,CAAC;QAC5B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,iBAAiB,CAAC;QAC3B,QAAQ,CAAC,gBAAgB,CAAC;QAC1B,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,6BAAiB,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,iBAAiB,CAAC,CAAC;QAC5C,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC;IAEF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5D,MAAM,WAAW,GACf,UAAU,CAAC,IAAI,KAAK,QAAQ;YAC1B,CAAC,CAAC,IAAA,eAAS,EAAC,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QAE7B,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAAc,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;KACjC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,4BAA4B,CAC1C,MAAmC,EACnC,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,8BAAwB,EAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACrF,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAA,6BAAuB,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAChG,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,yBAAmB,EAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC;QACf,QAAQ,CAAC,kBAAkB,CAAC;QAC5B,QAAQ,CAAC,iBAAiB,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,aAAa,CAAC;QACvB,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,uCAA2B,CAAC;QACrC,QAAQ,CAAC,6BAAiB,CAAC;KAC5B,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,+BAAyB,EACjD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,WAAW,EAClB,WAAW,EACX,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,wBAAwB,CAAC,CAAC;QACnD,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,yBAAyB,CACvC,MAAgC,EAChC,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,CAAC,WAAW,CAAC,GAAG,IAAA,uBAAiB,EAAC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,yBAAmB,EAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,WAAW,CAAC;QACrB,QAAQ,CAAC,aAAa,CAAC;QACvB,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,uCAA2B,CAAC;QACrC,QAAQ,CAAC,0BAAc,CAAC;QACxB,QAAQ,CAAC,6BAAiB,CAAC;KAC5B,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,8BAAwB,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,+BAAyB,EACjD,MAAM,CAAC,MAAM,EACb,WAAW,EACX,WAAW,EACX,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;YACL,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,oBAAoB,CAAC,CAAC;QAC/C,IAAA,eAAO,EAAC,MAAM,CAAC,UAAU,CAAC;QAC1B,IAAA,YAAI,EAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;KACjC,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,2BAA2B,CACzC,MAAkC,EAClC,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,uBAAe,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEzE,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,uCAA2B,CAAC;QACrC,QAAQ,CAAC,0BAAc,CAAC;QACxB,QAAQ,CAAC,6BAAiB,CAAC;KAC5B,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAA,8BAAwB,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,+BAAyB,EACjD,MAAM,CAAC,MAAM,EACb,WAAW,EACX,WAAW,EACX,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;YACL,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvB,uBAAW,CAAC,sBAAsB;QAClC,MAAM,CAAC,YAAY,CAAC,MAAM;KAC3B,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAuB,gBAAU;IAEjC,IAAA,wBAAgB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAErC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,uBAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,sBAAU,EAAE,CAAC;QACtC,MAAM,uBAAe,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,CAAC,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClF,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,yBAAmB,EAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,CAAC,UAAU,CAAC,GAAG,IAAA,qBAAe,EAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,oBAAc,EAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1F,MAAM,mBAAmB,GAAG,IAAA,8BAAsB,EAChD,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,CACnB,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAC3B,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,iBAAS,CAAC,GAAG;QACtC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC;QACrC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE1C,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,eAAe,IAAI,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,cAAc,IAAI,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,eAAe,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,cAAc,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC;QACnB,QAAQ,CAAC,aAAa,CAAC;QACvB,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,mBAAmB,CAAC;KAC9B,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,cAAc,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAA,uBAAiB,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,6BAAiB,CAAC,CAAC,CAAC;IAEvC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EACzB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,MAAM,EACb,SAAS,CACV,CAAC;QACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,8BAAwB,EACnD,MAAM,CAAC,gBAAgB,EACvB,SAAS,CACV,CAAC;QACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,6BAAuB,EAClD,MAAM,CAAC,UAAU,CAAC,KAAK,EACvB,MAAM,CAAC,gBAAgB,EACvB,SAAS,CACV,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAExC,KAAK,MAAM,CAAC,eAAe,CAAC,IAAI,IAAA,+BAAyB,EACvD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,WAAW,EAClB,SAAS,CACV,EAAE,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAA,qBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnE,MAAM,CAAC,aAAa,CAAC,GAAG,IAAA,oBAAc,EAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEpF,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,cAAc,GAAG,IAAA,kBAAS,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,CAAC,gBAAgB,CAAC,GAAG,IAAA,uBAAiB,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAW,EAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,8BAAwB,EACnD,KAAK,CAAC,WAAW,EACjB,SAAS,CACV,CAAC;YACF,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,6BAAuB,EAClD,KAAK,CAAC,KAAK,CAAC,KAAK,EACjB,KAAK,CAAC,WAAW,EACjB,SAAS,CACV,CAAC;YAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAExC,KAAK,MAAM,CAAC,eAAe,CAAC,IAAI,IAAA,+BAAyB,EACvD,MAAM,CAAC,MAAM,EACb,KAAK,CAAC,WAAW,EACjB,MAAM,CAAC,WAAW,EAClB,SAAS,CACV,EAAE,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAa;QACxB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,gBAAgB,CAAC,CAAC;QAC3C,IAAA,uBAAc,EAAC,IAAA,2BAAkB,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,CAAC,UAAU,CAAC,SAAS;QAC3B,IAAA,YAAI,EAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1B,IAAA,YAAI,EAAC,eAAe,CAAC;QACrB,IAAA,YAAI,EAAC,cAAc,CAAC;KACrB,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,IAAA,uBAAc,EAAC,IAAA,2BAAkB,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,IAAA,eAAO,EAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,yBAAyB,CACvC,MAAgC,EAChC,YAAuB,gBAAU;IAEjC,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAA,8BAAwB,EAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9E,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAA,6BAAuB,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzF,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAA,0BAAkB,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QACtB,QAAQ,CAAC,kBAAkB,CAAC;QAC5B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB,QAAQ,CAAC,iBAAiB,CAAC;QAC3B,QAAQ,CAAC,gBAAgB,CAAC;QAC1B,QAAQ,CAAC,4BAAgB,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;KACnB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,oBAAoB,CAAC,CAAC;QAC/C,IAAA,eAAO,EAAC,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,uBAAuB,CACrC,MAA8B,EAC9B,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,0BAAc,CAAC;KACzB,CAAC;IAEF,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,kBAAkB,CAAC,CAAC;KACpD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CACrC,MAA8B,EAC9B,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,CAAC,GAAG,IAAA,uBAAiB,EAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAErE,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,WAAW,CAAC;KACtB,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,kBAAkB,CAAC,CAAC;QAC7C,MAAM,CAAC,SAAS;KACjB,CAAC,CAAC;IAEH,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,iCAAiC,CAC/C,MAAwC,EACxC,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,uBAAe,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzB,QAAQ,CAAC,4BAAgB,CAAC;KAC3B,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,eAAe,CAAC,GAAG,IAAA,2BAAqB,EAC7C,MAAM,CAAC,MAAM,EACb,WAAW,EACX,CAAC,EACD,SAAS,CACV,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAA,8BAAsB,EAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,6BAA6B,CAAC,CAAC;KAC/D,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,wBAAwB,CACtC,MAA+B,EAC/B,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAC5B,QAAQ,CAAC,0BAAc,CAAC;KACzB,CAAC;IAEF,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,mBAAmB,CAAC,CAAC;KACrD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAuB,gBAAU;IAEjC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAA,oBAAc,EAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,IAAI,GAAkB;QAC1B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1B,QAAQ,CAAC,QAAQ,CAAC;QAClB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;KAC7B,CAAC;IAEF,OAAO,IAAI,gCAAsB,CAAC;QAChC,IAAI;QACJ,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,uBAAW,CAAC,eAAe,CAAC,CAAC;KACjD,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,kDAAkD;AAClD,iFAAiF;AACjF,+EAA+E;AAE/E,SAAgB,iBAAiB,CAC/B,MAAwB,EACxB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,mBAAmB,CACjC,MAA0B,EAC1B,QAAgB,EAChB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5D,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,MAAiB,EACjB,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACzE,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,cAAc,CAC5B,MAA0B,EAC1B,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1D,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,YAAY,CAC1B,MAAwB,EACxB,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACxD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,kBAAkB,CAChC,QAAmB,EACnB,MAAiB,EACjB,KAAkB,EAClB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAClE,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,qBAAqB,CACnC,IAAe,EACf,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,mBAAmB,CACjC,MAA0B,EAC1B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAoB,EACpB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAClE,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,gBAAgB,CAC9B,SAAoB,EACpB,MAAe,EACf,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1D,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,kBAAkB,CAChC,SAAoB,EACpB,WAAsB,EACtB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACjE,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,2BAA2B,CACzC,MAAkC,EAClC,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,2BAA2B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1D,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,uBAAuB,CACrC,MAA8B,EAC9B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,mBAAmB,CACjC,MAA0B,EAC1B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,SAAgB,iBAAiB,CAC/B,MAAwB,EACxB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,oBAAoB,CAClC,MAA2B,EAC3B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,gCAAgC,CAC9C,MAAiC,EACjC,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,gCAAgC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/D,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,gCAAgC,CAC9C,MAAiC,EACjC,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,gCAAgC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/D,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,sBAAsB,CACpC,MAA6B,EAC7B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,4BAA4B,CAC1C,MAAmC,EACnC,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,4BAA4B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3D,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,sBAAsB,CACpC,MAA6B,EAC7B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,sBAAsB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,6BAA6B,CAC3C,MAA6B,EAC7B,UAAqC,EACrC,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,6BAA6B,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACxE,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,4BAA4B,CAC1C,MAAmC,EACnC,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACxE,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,yBAAyB,CACvC,MAAgC,EAChC,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACrE,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAgB,2BAA2B,CACzC,MAAkC,EAClC,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IACvE,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,yBAAyB,CACvC,MAAgC,EAChC,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,uBAAuB,CACrC,MAA8B,EAC9B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,uBAAuB,CACrC,MAA8B,EAC9B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,uBAAuB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,iCAAiC,CAC/C,MAAwC,EACxC,WAAmB,EACnB,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,iCAAiC,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7E,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,wBAAwB,CACtC,MAA+B,EAC/B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAA4B,EAC5B,YAAuB,gBAAU;IAEjC,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,OAAO,IAAI,qBAAW,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC","sourcesContent":["import {\n PublicKey,\n Transaction,\n TransactionInstruction,\n AccountMeta,\n} from \"@solana/web3.js\";\nimport {\n INSTRUCTION,\n SYSTEM_PROGRAM_ID,\n TOKEN_PROGRAM_ID,\n ASSOCIATED_TOKEN_PROGRAM_ID,\n ALT_PROGRAM_ID,\n MPL_TOKEN_METADATA_PROGRAM_ID,\n RENT_SYSVAR_ID,\n MAX_MAKERS,\n MAX_OUTCOMES,\n MIN_OUTCOMES,\n} from \"./constants\";\nimport { PROGRAM_ID } from \"../env\";\nimport {\n InitializeParams,\n CreateMarketParams,\n AddDepositMintParams,\n BuildDepositParams,\n BuildMergeParams,\n SettleMarketParams,\n RedeemWinningsParams,\n WithdrawFromPositionParams,\n ActivateMarketParams,\n MatchOrdersMultiParams,\n SetAuthorityParams,\n SetManagerParams,\n CreateOrderbookParams,\n WhitelistDepositTokenParams,\n DepositToGlobalParams,\n DepositToGlobalAltContext,\n GlobalToMarketDepositParams,\n InitPositionTokensParams,\n ExtendPositionTokensParams,\n DepositAndSwapParams,\n WithdrawFromGlobalParams,\n ClosePositionAltParams,\n CloseOrderStatusParams,\n ClosePositionTokenAccountsParams,\n CloseOrderbookAltParams,\n CloseOrderbookParams,\n SignedOrder,\n ConditionalMetadataParams,\n SetFeeReceiverParams,\n SetMarketFeesParams,\n OrderSide,\n} from \"./types\";\nimport {\n getExchangePda,\n getMarketPda,\n getVaultPda,\n getMintAuthorityPda,\n getConditionalMintPda,\n getAllConditionalMintPdas,\n getOrderStatusPda,\n getUserNoncePda,\n getPositionPda,\n getConditionTombstonePda,\n getOrderbookPda,\n getAltPda,\n getGlobalDepositTokenPda,\n getUserGlobalDepositPda,\n getPositionAltPda,\n getMplMetadataPda,\n} from \"./pda\";\nimport {\n toU8,\n toI16Le,\n toU32Le,\n toU64Le,\n serializeConditionalMetadata,\n getConditionalTokenAta,\n getDepositTokenAta,\n validateOutcomes,\n validateFeePair,\n deriveConditionId,\n} from \"./utils\";\nimport { hashOrder, serializeSignedOrder, serializeOrder, signedOrderToOrder } from \"./orders\";\nimport { ProgramSdkError } from \"./error\";\n\n// ============================================================================\n// HELPER FUNCTIONS\n// ============================================================================\n\nfunction signerMut(pubkey: PublicKey): AccountMeta {\n return { pubkey, isSigner: true, isWritable: true };\n}\n\nfunction signer(pubkey: PublicKey): AccountMeta {\n return { pubkey, isSigner: true, isWritable: false };\n}\n\nfunction writable(pubkey: PublicKey): AccountMeta {\n return { pubkey, isSigner: false, isWritable: true };\n}\n\nfunction readonly(pubkey: PublicKey): AccountMeta {\n return { pubkey, isSigner: false, isWritable: false };\n}\n\nfunction zeroPubkey(): PublicKey {\n return new PublicKey(Buffer.alloc(32));\n}\n\ninterface OrderbookMintInput {\n mint: PublicKey;\n depositMint: PublicKey;\n outcomeIndex: number;\n isBase: boolean;\n}\n\ninterface CanonicalOrderbookMints {\n mintA: OrderbookMintInput;\n mintB: OrderbookMintInput;\n baseIndex: number;\n}\n\nfunction canonicalOrderbookMints(params: CreateOrderbookParams): CanonicalOrderbookMints {\n if (params.baseIndex > 1) {\n throw ProgramSdkError.invalidOutcomeIndex(params.baseIndex, 1);\n }\n if (params.mintA.equals(params.mintB)) {\n throw ProgramSdkError.invalidMintOrder();\n }\n\n const left: OrderbookMintInput = {\n mint: params.mintA,\n depositMint: params.mintADepositMint,\n outcomeIndex: params.mintAOutcomeIndex,\n isBase: params.baseIndex === 0,\n };\n const right: OrderbookMintInput = {\n mint: params.mintB,\n depositMint: params.mintBDepositMint,\n outcomeIndex: params.mintBOutcomeIndex,\n isBase: params.baseIndex === 1,\n };\n\n const [mintA, mintB] =\n Buffer.compare(left.mint.toBuffer(), right.mint.toBuffer()) < 0\n ? [left, right]\n : [right, left];\n\n return {\n mintA,\n mintB,\n baseIndex: mintA.isBase ? 0 : 1,\n };\n}\n\nfunction validatePayoutNumerators(payoutNumerators: number[]): void {\n const count = payoutNumerators.length;\n if (count < MIN_OUTCOMES || count > MAX_OUTCOMES) {\n throw ProgramSdkError.invalidOutcomeCount(count);\n }\n\n let denominator = 0n;\n for (const numerator of payoutNumerators) {\n if (\n !Number.isInteger(numerator) ||\n numerator < 0 ||\n numerator > 0xffffffff\n ) {\n throw ProgramSdkError.payoutVectorExceedsU32();\n }\n denominator += BigInt(numerator);\n if (denominator > 0xffffffffn) {\n throw ProgramSdkError.overflow(\"Payout denominator overflow\");\n }\n }\n\n if (denominator === 0n) {\n throw ProgramSdkError.invalidPayoutNumerators();\n }\n}\n\n// ============================================================================\n// INSTRUCTION BUILDERS\n// ============================================================================\n\n/**\n * Build Initialize instruction\n * Creates the exchange account (singleton)\n *\n * Accounts:\n * 0. authority (signer, mut) - Initial admin\n * 1. exchange (mut) - Exchange PDA\n * 2. system_program (readonly)\n *\n * Data: [discriminator (1 byte)]\n */\nexport function buildInitializeIx(\n params: InitializeParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n writable(exchange),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n const data = Buffer.from([INSTRUCTION.INITIALIZE]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build CreateMarket instruction\n * Creates a new market in Pending status\n *\n * Accounts:\n * 0. manager (signer, mut) - Must be exchange manager\n * 1. exchange (mut) - Exchange PDA\n * 2. market (mut) - Market PDA\n * 3. system_program (readonly)\n * 4. condition_tombstone (mut) - Condition uniqueness PDA\n *\n * Data: [discriminator, num_outcomes (u8), oracle (32), question_id (32), maker_fee_bps (i16), taker_fee_bps (i16)]\n */\nexport function buildCreateMarketIx(\n params: CreateMarketParams,\n marketId: bigint,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n validateOutcomes(params.numOutcomes);\n validateFeePair(params.makerFeeBps, params.takerFeeBps);\n\n const [exchange] = getExchangePda(programId);\n const [market] = getMarketPda(marketId, programId);\n const conditionId = deriveConditionId(\n params.oracle,\n params.questionId,\n params.numOutcomes\n );\n const [conditionTombstone] = getConditionTombstonePda(conditionId, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.manager),\n writable(exchange),\n writable(market),\n readonly(SYSTEM_PROGRAM_ID),\n writable(conditionTombstone),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.CREATE_MARKET]),\n toU8(params.numOutcomes),\n params.oracle.toBuffer(),\n params.questionId,\n toI16Le(params.makerFeeBps),\n toI16Le(params.takerFeeBps),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build AddDepositMint instruction\n *\n * Accounts:\n * 0. manager (signer)\n * 1. exchange\n * 2. market\n * 3. deposit_mint\n * 4. vault\n * 5. mint_authority\n * 6. token_program (SPL Token)\n * 7. system_program\n * 8. global_deposit_token\n * 9+ conditional_mints[0..num_outcomes]\n *\n * Data: [discriminator]\n */\nexport function buildAddDepositMintIx(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n validateOutcomes(numOutcomes);\n\n const [vault] = getVaultPda(params.depositMint, market, programId);\n const [mintAuthority] = getMintAuthorityPda(market, programId);\n const conditionalMints = getAllConditionalMintPdas(\n market,\n params.depositMint,\n numOutcomes,\n programId\n );\n\n const [exchange] = getExchangePda(programId);\n const [globalDepositToken] = getGlobalDepositTokenPda(params.depositMint, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.manager),\n readonly(exchange),\n readonly(market),\n readonly(params.depositMint),\n writable(vault),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n readonly(globalDepositToken),\n ];\n\n for (const [mint] of conditionalMints) {\n keys.push(writable(mint));\n }\n\n const data = Buffer.from([INSTRUCTION.ADD_DEPOSIT_MINT]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build MintCompleteSet instruction\n *\n * Accounts:\n * 0. user (signer)\n * 1. exchange\n * 2. market\n * 3. deposit_mint\n * 4. vault\n * 5. user_deposit_ata\n * 6. position\n * 7. mint_authority\n * 8. token_program\n * 9. associated_token_program\n * 10. system_program\n * Remaining: [conditional_mint[i], position_conditional_ata[i]]\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildDepositIx(\n params: BuildDepositParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [vault] = getVaultPda(params.depositMint, params.market, programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const userDepositAta = getDepositTokenAta(params.depositMint, params.user);\n const conditionalMints = getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n programId\n );\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(exchange),\n readonly(params.market),\n readonly(params.depositMint),\n writable(vault),\n writable(userDepositAta),\n writable(position),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (const [mint] of conditionalMints) {\n keys.push(writable(mint));\n const positionAta = getConditionalTokenAta(mint, position);\n keys.push(writable(positionAta));\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.MINT_COMPLETE_SET]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build MergeCompleteSet instruction\n *\n * Accounts:\n * 0. user (signer)\n * 1. exchange\n * 2. market\n * 3. deposit_mint\n * 4. vault\n * 5. position\n * 6. user_deposit_ata\n * 7. mint_authority\n * 8. token_program\n * Remaining: [conditional_mint[i], position_conditional_ata[i]]\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildMergeIx(\n params: BuildMergeParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [vault] = getVaultPda(params.depositMint, params.market, programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const userDepositAta = getDepositTokenAta(params.depositMint, params.user);\n const conditionalMints = getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n programId\n );\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(exchange),\n readonly(params.market),\n readonly(params.depositMint),\n writable(vault),\n writable(position),\n writable(userDepositAta),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n ];\n\n for (const [mint] of conditionalMints) {\n keys.push(writable(mint));\n const positionAta = getConditionalTokenAta(mint, position);\n keys.push(writable(positionAta));\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.MERGE_COMPLETE_SET]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build CancelOrder instruction\n *\n * Accounts:\n * 0. operator (signer, mut)\n * 1. exchange (readonly)\n * 2. market (readonly)\n * 3. order_status (mut)\n *\n * Data: [discriminator, order_hash (32), signed_order (233)]\n */\nexport function buildCancelOrderIx(\n operator: PublicKey,\n market: PublicKey,\n order: SignedOrder,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const orderHash = hashOrder(order);\n const [exchange] = getExchangePda(programId);\n const [orderStatus] = getOrderStatusPda(orderHash, programId);\n\n const keys: AccountMeta[] = [\n signerMut(operator),\n readonly(exchange),\n readonly(market),\n writable(orderStatus),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.CANCEL_ORDER]),\n orderHash,\n serializeSignedOrder(order),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build IncrementNonce instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. user_nonce (mut)\n * 2. system_program (readonly)\n * 3. exchange (readonly)\n *\n * Data: [discriminator]\n */\nexport function buildIncrementNonceIx(\n user: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [userNonce] = getUserNoncePda(user, programId);\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(user),\n writable(userNonce),\n readonly(SYSTEM_PROGRAM_ID),\n readonly(exchange),\n ];\n\n const data = Buffer.from([INSTRUCTION.INCREMENT_NONCE]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SettleMarket instruction\n *\n * Accounts:\n * 0. oracle (signer)\n * 1. exchange (readonly)\n * 2. market (mut)\n *\n * Data: [discriminator, payout_numerator_0 (u32), ...]\n */\nexport function buildSettleMarketIx(\n params: SettleMarketParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n validatePayoutNumerators(params.payoutNumerators);\n\n const [exchange] = getExchangePda(programId);\n const [market] = getMarketPda(params.marketId, programId);\n\n const keys: AccountMeta[] = [\n signer(params.oracle),\n readonly(exchange),\n writable(market),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SETTLE_MARKET]),\n ...params.payoutNumerators.map(toU32Le),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build RedeemWinnings instruction\n *\n * Accounts:\n * 0. user (signer)\n * 1. market\n * 2. deposit_mint\n * 3. vault\n * 4. winning_conditional_mint\n * 5. position\n * 6. position_conditional_ata\n * 7. user_deposit_ata\n * 8. mint_authority\n * 9. token_program\n * 10. exchange\n *\n * Data: [discriminator, amount (u64), outcome_index (u8)]\n */\nexport function buildRedeemWinningsIx(\n params: RedeemWinningsParams,\n outcomeIndex: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n if (!Number.isInteger(outcomeIndex) || outcomeIndex < 0 || outcomeIndex > 0xff) {\n throw ProgramSdkError.invalidOutcomeIndex(outcomeIndex, 0xff);\n }\n\n const [exchange] = getExchangePda(programId);\n const [vault] = getVaultPda(params.depositMint, params.market, programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const [conditionalMint] = getConditionalMintPda(\n params.market,\n params.depositMint,\n outcomeIndex,\n programId\n );\n const positionConditionalAta = getConditionalTokenAta(conditionalMint, position);\n const userDepositAta = getDepositTokenAta(params.depositMint, params.user);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(params.market),\n readonly(params.depositMint),\n writable(vault),\n writable(conditionalMint),\n readonly(position),\n writable(positionConditionalAta),\n writable(userDepositAta),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(exchange),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.REDEEM_WINNINGS]),\n toU64Le(params.amount),\n toU8(outcomeIndex),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SetPaused instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange (mut)\n *\n * Data: [discriminator, paused (u8)]\n */\nexport function buildSetPausedIx(\n authority: PublicKey,\n paused: boolean,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [signerMut(authority), writable(exchange)];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SET_PAUSED]),\n toU8(paused ? 1 : 0),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SetOperator instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange (mut)\n *\n * Data: [discriminator, new_operator (32)]\n */\nexport function buildSetOperatorIx(\n authority: PublicKey,\n newOperator: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [signerMut(authority), writable(exchange)];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SET_OPERATOR]),\n newOperator.toBuffer(),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build WithdrawFromPosition instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. market (readonly)\n * 2. position (mut)\n * 3. mint (readonly)\n * 4. position_ata (mut)\n * 5. user_ata (mut)\n * 6. token_program (readonly)\n * 7. exchange (readonly)\n *\n * Data: [discriminator, amount (u64), outcome_index (u8)]\n */\nexport function buildWithdrawFromPositionIx(\n params: WithdrawFromPositionParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const positionAta = getConditionalTokenAta(params.mint, position);\n const userAta = getConditionalTokenAta(params.mint, params.user);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(params.market),\n writable(position),\n readonly(params.mint),\n writable(positionAta),\n writable(userAta),\n readonly(TOKEN_PROGRAM_ID),\n readonly(exchange),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.WITHDRAW_FROM_POSITION]),\n toU64Le(params.amount),\n toU8(params.outcomeIndex),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build ActivateMarket instruction\n *\n * Accounts:\n * 0. manager (signer)\n * 1. exchange (readonly)\n * 2. market (mut)\n *\n * Data: [discriminator]\n */\nexport function buildActivateMarketIx(\n params: ActivateMarketParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [market] = getMarketPda(params.marketId, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.manager),\n readonly(exchange),\n writable(market),\n ];\n\n const data = Buffer.from([INSTRUCTION.ACTIVATE_MARKET]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build MatchOrdersMulti instruction\n *\n * Dynamic accounts based on full_fill_bitmask:\n * 0. operator (signer)\n * 1. exchange (readonly)\n * 2. market (readonly)\n * 3. orderbook (readonly)\n * [taker_order_status if bit7=0] (mut)\n * taker_nonce (readonly)\n * taker_position (mut)\n * base_mint (readonly)\n * quote_mint (readonly)\n * taker_base_ata (mut)\n * taker_quote_ata (mut)\n * token_program (readonly)\n * system_program (readonly)\n * fee_receiver_quote_ata (mut)\n * Per maker:\n * [maker_order_status if bit_i=0] (mut)\n * maker_nonce (readonly)\n * maker_position (mut)\n * maker_base_ata (mut)\n * maker_quote_ata (mut)\n *\n * Data:\n * [0] discriminator\n * [1..38] taker Order (37 bytes)\n * [38..102] taker_signature (64 bytes)\n * [102] num_makers\n * [103] full_fill_bitmask\n * Per maker (117 bytes):\n * [+0..+37] maker Order (37)\n * [+37..+101] maker_signature (64)\n * [+101..+109] maker_fill_amount (8)\n * [+109..+117] taker_fill_amount (8)\n */\nexport function buildMatchOrdersMultiIx(\n params: MatchOrdersMultiParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n if (params.makerOrders.length === 0) {\n throw ProgramSdkError.missingField(\"makers\");\n }\n if (params.makerOrders.length > MAX_MAKERS) {\n throw ProgramSdkError.tooManyMakers(params.makerOrders.length);\n }\n if (params.makerOrders.length !== params.makerFillAmounts.length) {\n throw ProgramSdkError.invalidDataLength(\"makerFillAmounts\", params.makerOrders.length, params.makerFillAmounts.length);\n }\n if (params.makerOrders.length !== params.takerFillAmounts.length) {\n throw ProgramSdkError.invalidDataLength(\"takerFillAmounts\", params.makerOrders.length, params.takerFillAmounts.length);\n }\n\n const [exchange] = getExchangePda(programId);\n const [orderbook] = getOrderbookPda(params.baseMint, params.quoteMint, programId);\n const takerOrderHash = hashOrder(params.takerOrder);\n const [takerNonce] = getUserNoncePda(params.takerOrder.maker, programId);\n const [takerPosition] = getPositionPda(\n params.takerOrder.maker,\n params.market,\n programId\n );\n const takerBaseAta = getConditionalTokenAta(params.baseMint, takerPosition);\n const takerQuoteAta = getConditionalTokenAta(params.quoteMint, takerPosition);\n const feeReceiverQuoteAta = getConditionalTokenAta(\n params.quoteMint,\n params.feeReceiver\n );\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n readonly(params.market),\n readonly(orderbook),\n ];\n\n // Taker order status if not fully filled (bit 7 = 0)\n const takerFullFill = (params.fullFillBitmask & 0x80) !== 0;\n if (!takerFullFill) {\n const [takerOrderStatus] = getOrderStatusPda(takerOrderHash, programId);\n keys.push(writable(takerOrderStatus));\n }\n\n keys.push(readonly(takerNonce));\n keys.push(writable(takerPosition));\n keys.push(readonly(params.baseMint));\n keys.push(readonly(params.quoteMint));\n keys.push(writable(takerBaseAta));\n keys.push(writable(takerQuoteAta));\n keys.push(readonly(TOKEN_PROGRAM_ID));\n keys.push(readonly(SYSTEM_PROGRAM_ID));\n keys.push(writable(feeReceiverQuoteAta));\n\n // Add maker accounts\n for (let i = 0; i < params.makerOrders.length; i++) {\n const makerOrder = params.makerOrders[i];\n const makerFullFill = (params.fullFillBitmask & (1 << i)) !== 0;\n\n if (!makerFullFill) {\n const makerOrderHash = hashOrder(makerOrder);\n const [makerOrderStatus] = getOrderStatusPda(makerOrderHash, programId);\n keys.push(writable(makerOrderStatus));\n }\n\n const [makerNonce] = getUserNoncePda(makerOrder.maker, programId);\n const [makerPosition] = getPositionPda(\n makerOrder.maker,\n params.market,\n programId\n );\n const makerBaseAta = getConditionalTokenAta(params.baseMint, makerPosition);\n const makerQuoteAta = getConditionalTokenAta(params.quoteMint, makerPosition);\n\n keys.push(readonly(makerNonce));\n keys.push(writable(makerPosition));\n keys.push(writable(makerBaseAta));\n keys.push(writable(makerQuoteAta));\n }\n\n // Build data\n const takerCompact = signedOrderToOrder(params.takerOrder);\n const dataBuffers: Buffer[] = [\n Buffer.from([INSTRUCTION.MATCH_ORDERS_MULTI]),\n serializeOrder(takerCompact),\n params.takerOrder.signature,\n toU8(params.makerOrders.length),\n toU8(params.fullFillBitmask),\n ];\n\n // Add maker data\n for (let i = 0; i < params.makerOrders.length; i++) {\n const makerOrder = params.makerOrders[i];\n const makerCompact = signedOrderToOrder(makerOrder);\n\n dataBuffers.push(serializeOrder(makerCompact));\n dataBuffers.push(makerOrder.signature);\n dataBuffers.push(toU64Le(params.makerFillAmounts[i]));\n dataBuffers.push(toU64Le(params.takerFillAmounts[i]));\n }\n\n const data = Buffer.concat(dataBuffers);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SetAuthority instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange (mut)\n *\n * Data: [discriminator, new_authority (32)]\n */\nexport function buildSetAuthorityIx(\n params: SetAuthorityParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.currentAuthority),\n writable(exchange),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SET_AUTHORITY]),\n params.newAuthority.toBuffer(),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build CreateOrderbook instruction\n *\n * Accounts:\n * 0. manager (signer, mut)\n * 1. market (readonly)\n * 2. mint_a (readonly, canonical order)\n * 3. mint_b (readonly, canonical order)\n * 4. orderbook (mut)\n * 5. lookup_table (mut)\n * 6. exchange (readonly)\n * 7. alt_program (readonly)\n * 8. system_program (readonly)\n * 9. mint_a_deposit_mint (readonly, canonical order)\n * 10. mint_b_deposit_mint (readonly, canonical order)\n * 11. token_program\n * 12. associated_token_program\n * 13. fee_receiver\n * 14. fee_receiver_quote_ata\n *\n * Data: [discriminator, recent_slot (u64), base_index (u8), mint_a_outcome_index (u8), mint_b_outcome_index (u8)]\n */\nexport function buildCreateOrderbookIx(\n params: CreateOrderbookParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const canonical = canonicalOrderbookMints(params);\n const [exchange] = getExchangePda(programId);\n const [orderbook] = getOrderbookPda(canonical.mintA.mint, canonical.mintB.mint, programId);\n const [alt] = getAltPda(orderbook, params.recentSlot);\n const quoteMint = canonical.baseIndex === 0 ? canonical.mintB.mint : canonical.mintA.mint;\n const feeReceiverQuoteAta = getConditionalTokenAta(quoteMint, params.feeReceiver);\n\n const keys: AccountMeta[] = [\n signerMut(params.manager),\n readonly(params.market),\n readonly(canonical.mintA.mint),\n readonly(canonical.mintB.mint),\n writable(orderbook),\n writable(alt),\n readonly(exchange),\n readonly(ALT_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n readonly(canonical.mintA.depositMint),\n readonly(canonical.mintB.depositMint),\n readonly(TOKEN_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(params.feeReceiver),\n writable(feeReceiverQuoteAta),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.CREATE_ORDERBOOK]),\n toU64Le(params.recentSlot),\n toU8(canonical.baseIndex),\n toU8(canonical.mintA.outcomeIndex),\n toU8(canonical.mintB.outcomeIndex),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SetManager instruction\n *\n * Accounts:\n * 0. authority (signer)\n * 1. exchange (mut)\n *\n * Data: [discriminator, new_manager (32)]\n */\nexport function buildSetManagerIx(\n params: SetManagerParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n writable(exchange),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.SET_MANAGER]),\n params.newManager.toBuffer(),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build SetMarketFees instruction.\n */\nexport function buildSetMarketFeesIx(\n params: SetMarketFeesParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n if (params.updates.length === 0) {\n throw ProgramSdkError.missingField(\"updates\");\n }\n\n const [exchange] = getExchangePda(programId);\n const keys: AccountMeta[] = [\n signerMut(params.manager),\n readonly(exchange),\n ];\n const buffers: Buffer[] = [Buffer.from([INSTRUCTION.SET_MARKET_FEES])];\n\n for (const update of params.updates) {\n validateFeePair(update.makerFeeBps, update.takerFeeBps);\n keys.push(writable(update.market));\n buffers.push(toI16Le(update.makerFeeBps));\n buffers.push(toI16Le(update.takerFeeBps));\n }\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.concat(buffers),\n });\n}\n\n/**\n * Build SetFeeReceiver instruction.\n */\nexport function buildSetFeeReceiverIx(\n params: SetFeeReceiverParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n if (params.newFeeReceiver.equals(zeroPubkey())) {\n throw ProgramSdkError.invalidFeeReceiver();\n }\n\n const [exchange] = getExchangePda(programId);\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n writable(exchange),\n ];\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.concat([\n Buffer.from([INSTRUCTION.SET_FEE_RECEIVER]),\n params.newFeeReceiver.toBuffer(),\n ]),\n });\n}\n\nexport function buildCreateConditionalMetadataIx(\n params: ConditionalMetadataParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n return buildConditionalMetadataIx(params, true, programId);\n}\n\nexport function buildUpdateConditionalMetadataIx(\n params: ConditionalMetadataParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n return buildConditionalMetadataIx(params, false, programId);\n}\n\nfunction buildConditionalMetadataIx(\n params: ConditionalMetadataParams,\n isCreate: boolean,\n programId: PublicKey\n): TransactionInstruction {\n if (\n !Number.isInteger(params.outcomeIndex) ||\n params.outcomeIndex < 0 ||\n params.outcomeIndex >= MAX_OUTCOMES\n ) {\n throw ProgramSdkError.invalidOutcomeIndex(params.outcomeIndex, MAX_OUTCOMES - 1);\n }\n\n const [exchange] = getExchangePda(programId);\n const [conditionalMint] = getConditionalMintPda(\n params.market,\n params.depositMint,\n params.outcomeIndex,\n programId\n );\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [metadata] = getMplMetadataPda(conditionalMint);\n\n const keys: AccountMeta[] = [\n isCreate ? signerMut(params.manager) : signer(params.manager),\n readonly(exchange),\n readonly(params.market),\n readonly(params.depositMint),\n readonly(conditionalMint),\n writable(metadata),\n readonly(mintAuthority),\n readonly(MPL_TOKEN_METADATA_PROGRAM_ID),\n ];\n\n if (isCreate) {\n keys.push(readonly(SYSTEM_PROGRAM_ID));\n keys.push(readonly(RENT_SYSVAR_ID));\n }\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.concat([\n Buffer.from([\n isCreate\n ? INSTRUCTION.CREATE_CONDITIONAL_METADATA\n : INSTRUCTION.UPDATE_CONDITIONAL_METADATA,\n params.outcomeIndex,\n ]),\n serializeConditionalMetadata(params.name, params.symbol, params.uri),\n ]),\n });\n}\n\n/**\n * Build WhitelistDepositToken instruction\n *\n * Accounts:\n * 0. authority (signer, mut)\n * 1. exchange (readonly)\n * 2. mint (readonly)\n * 3. global_deposit_token (mut)\n * 4. system_program (readonly)\n *\n * Data: [discriminator]\n */\nexport function buildWhitelistDepositTokenIx(\n params: WhitelistDepositTokenParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [globalDepositToken] = getGlobalDepositTokenPda(params.mint, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.authority),\n writable(exchange),\n readonly(params.mint),\n writable(globalDepositToken),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.from([INSTRUCTION.WHITELIST_DEPOSIT_TOKEN]),\n });\n}\n\n/**\n * Build DepositToGlobal instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. global_deposit_token (readonly)\n * 2. mint (readonly)\n * 3. user_global_deposit (mut)\n * 4. user_token_account (mut)\n * 5. token_program (readonly)\n * 6. system_program (readonly)\n * 7. exchange (readonly)\n * Optional ALT accounts:\n * 8. user_nonce (readonly)\n * 9. lookup_table (mut)\n * 10. alt_program (readonly)\n *\n * Data: [discriminator, amount (u64), recent_slot (u64 if creating ALT)]\n */\nexport function buildDepositToGlobalIx(\n params: DepositToGlobalParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n return buildDepositToGlobalIxInner(params, undefined, programId);\n}\n\n/**\n * Build DepositToGlobal instruction with user deposit ALT create/extend accounts.\n */\nexport function buildDepositToGlobalIxWithAlt(\n params: DepositToGlobalParams,\n altContext: DepositToGlobalAltContext,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n return buildDepositToGlobalIxInner(params, altContext, programId);\n}\n\nfunction buildDepositToGlobalIxInner(\n params: DepositToGlobalParams,\n altContext: DepositToGlobalAltContext | undefined,\n programId: PublicKey\n): TransactionInstruction {\n const [globalDepositToken] = getGlobalDepositTokenPda(params.mint, programId);\n const [userGlobalDeposit] = getUserGlobalDepositPda(params.user, params.mint, programId);\n const [exchange] = getExchangePda(programId);\n const userTokenAccount = getDepositTokenAta(params.mint, params.user);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(globalDepositToken),\n readonly(params.mint),\n writable(userGlobalDeposit),\n writable(userTokenAccount),\n readonly(TOKEN_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n readonly(exchange),\n ];\n\n const dataBuffers = [\n Buffer.from([INSTRUCTION.DEPOSIT_TO_GLOBAL]),\n toU64Le(params.amount),\n ];\n\n if (altContext !== undefined) {\n const [userNonce] = getUserNoncePda(params.user, programId);\n const lookupTable =\n altContext.kind === \"create\"\n ? getAltPda(userNonce, altContext.recentSlot)[0]\n : altContext.lookupTable;\n\n if (altContext.kind === \"create\") {\n dataBuffers.push(toU64Le(altContext.recentSlot));\n }\n\n keys.push(readonly(userNonce));\n keys.push(writable(lookupTable));\n keys.push(readonly(ALT_PROGRAM_ID));\n }\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.concat(dataBuffers),\n });\n}\n\n/**\n * Build GlobalToMarketDeposit instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. exchange (readonly)\n * 2. market (readonly)\n * 3. deposit_mint (readonly)\n * 4. vault (mut)\n * 5. global_deposit_token (readonly)\n * 6. user_global_deposit (mut)\n * 7. position (mut)\n * 8. mint_authority (readonly)\n * 9. token_program (readonly)\n * 10. ata_program (readonly)\n * 11. system_program (readonly)\n * + per outcome: conditional_mint[i] (mut), position_conditional_ata[i] (mut)\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildGlobalToMarketDepositIx(\n params: GlobalToMarketDepositParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [vault] = getVaultPda(params.depositMint, params.market, programId);\n const [globalDepositToken] = getGlobalDepositTokenPda(params.depositMint, programId);\n const [userGlobalDeposit] = getUserGlobalDepositPda(params.user, params.depositMint, programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(exchange),\n readonly(params.market),\n readonly(params.depositMint),\n writable(vault),\n readonly(globalDepositToken),\n writable(userGlobalDeposit),\n writable(position),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (let i = 0; i < numOutcomes; i += 1) {\n const [conditionalMint] = getAllConditionalMintPdas(\n params.market,\n params.depositMint,\n numOutcomes,\n programId\n )[i];\n keys.push(writable(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, position)));\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.GLOBAL_TO_MARKET_DEPOSIT]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build InitPositionTokens instruction\n *\n * Accounts:\n * 0. payer (signer, mut)\n * 1. user (readonly)\n * 2. exchange (readonly)\n * 3. market (readonly)\n * 4. position (mut)\n * 5. lookup_table (mut)\n * 6. mint_authority (readonly)\n * 7. token_program (readonly)\n * 8. ata_program (readonly)\n * 9. alt_program (readonly)\n * 10. system_program (readonly)\n * + per deposit_mint: deposit_mint, vault, gdt, conditional_mint/position_ata pairs\n *\n * Data: [discriminator, recent_slot (u64)]\n */\nexport function buildInitPositionTokensIx(\n params: InitPositionTokensParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n const [lookupTable] = getPositionAltPda(position, params.recentSlot);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.payer),\n readonly(params.user),\n readonly(exchange),\n readonly(params.market),\n writable(position),\n writable(lookupTable),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(ALT_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (const depositMint of params.depositMints) {\n const [vault] = getVaultPda(depositMint, params.market, programId);\n const [gdt] = getGlobalDepositTokenPda(depositMint, programId);\n keys.push(readonly(depositMint));\n keys.push(readonly(vault));\n keys.push(readonly(gdt));\n\n for (let i = 0; i < numOutcomes; i += 1) {\n const [conditionalMint] = getAllConditionalMintPdas(\n params.market,\n depositMint,\n numOutcomes,\n programId\n )[i];\n keys.push(readonly(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, position)));\n }\n }\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.INIT_POSITION_TOKENS]),\n toU64Le(params.recentSlot),\n toU8(params.depositMints.length),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build ExtendPositionTokens instruction\n *\n * Operator-only. Extends an existing position's lookup table after a market\n * adds new deposit mints.\n *\n * Accounts:\n * 0. operator (signer, mut)\n * 1. user (readonly)\n * 2. exchange (readonly)\n * 3. market (readonly)\n * 4. position (readonly)\n * 5. lookup_table (mut)\n * 6. token_program (readonly)\n * 7. ata_program (readonly)\n * 8. alt_program (readonly)\n * 9. system_program (readonly)\n * Per deposit_mint:\n * deposit_mint (readonly), vault (readonly), gdt (readonly),\n * per outcome: conditional_mint (readonly), position_ata (mut)\n *\n * Data: [discriminator, num_deposit_mints (u8)]\n */\nexport function buildExtendPositionTokensIx(\n params: ExtendPositionTokensParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n if (params.depositMints.length === 0) {\n throw ProgramSdkError.missingField(\"deposit_mints\");\n }\n\n const [exchange] = getExchangePda(programId);\n const [position] = getPositionPda(params.user, params.market, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(params.user),\n readonly(exchange),\n readonly(params.market),\n readonly(position),\n writable(params.lookupTable),\n readonly(TOKEN_PROGRAM_ID),\n readonly(ASSOCIATED_TOKEN_PROGRAM_ID),\n readonly(ALT_PROGRAM_ID),\n readonly(SYSTEM_PROGRAM_ID),\n ];\n\n for (const depositMint of params.depositMints) {\n const [vault] = getVaultPda(depositMint, params.market, programId);\n const [gdt] = getGlobalDepositTokenPda(depositMint, programId);\n keys.push(readonly(depositMint));\n keys.push(readonly(vault));\n keys.push(readonly(gdt));\n\n for (let i = 0; i < numOutcomes; i += 1) {\n const [conditionalMint] = getAllConditionalMintPdas(\n params.market,\n depositMint,\n numOutcomes,\n programId\n )[i];\n keys.push(readonly(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, position)));\n }\n }\n\n const data = Buffer.from([\n INSTRUCTION.EXTEND_POSITION_TOKENS,\n params.depositMints.length,\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build DepositAndSwap instruction.\n * Supports a mix of global deposits and token swaps in a single instruction.\n */\nexport function buildDepositAndSwapIx(\n params: DepositAndSwapParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n validateOutcomes(params.numOutcomes);\n\n if (params.makers.length === 0) {\n throw ProgramSdkError.missingField(\"makers\");\n }\n if (params.makers.length > MAX_MAKERS) {\n throw ProgramSdkError.tooManyMakers(params.makers.length);\n }\n\n const [exchange] = getExchangePda(programId);\n const [orderbook] = getOrderbookPda(params.baseMint, params.quoteMint, programId);\n const [mintAuthority] = getMintAuthorityPda(params.market, programId);\n const [takerNonce] = getUserNoncePda(params.takerOrder.maker, programId);\n const [takerPosition] = getPositionPda(params.takerOrder.maker, params.market, programId);\n const feeReceiverQuoteAta = getConditionalTokenAta(\n params.quoteMint,\n params.feeReceiver\n );\n const [receiveMint, giveMint] =\n params.takerOrder.side === OrderSide.BID\n ? [params.baseMint, params.quoteMint]\n : [params.quoteMint, params.baseMint];\n\n let fullFillBitmask = 0;\n let depositBitmask = 0;\n\n if (params.takerIsFullFill) {\n fullFillBitmask |= 0x80;\n }\n if (params.takerIsDeposit) {\n depositBitmask |= 0x80;\n }\n\n for (let i = 0; i < params.makers.length; i += 1) {\n const maker = params.makers[i];\n if (maker.isFullFill) {\n fullFillBitmask |= 1 << i;\n }\n if (maker.isDeposit) {\n depositBitmask |= 1 << i;\n }\n }\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n readonly(params.market),\n readonly(orderbook),\n readonly(mintAuthority),\n readonly(TOKEN_PROGRAM_ID),\n writable(feeReceiverQuoteAta),\n ];\n\n if (!params.takerIsFullFill) {\n const takerOrderHash = hashOrder(params.takerOrder);\n const [takerOrderStatus] = getOrderStatusPda(takerOrderHash, programId);\n keys.push(writable(takerOrderStatus));\n }\n\n keys.push(readonly(takerNonce));\n keys.push(writable(takerPosition));\n keys.push(readonly(params.baseMint));\n keys.push(readonly(params.quoteMint));\n keys.push(writable(getConditionalTokenAta(receiveMint, takerPosition)));\n keys.push(writable(getConditionalTokenAta(giveMint, takerPosition)));\n keys.push(readonly(SYSTEM_PROGRAM_ID));\n\n if (params.takerIsDeposit) {\n const [vault] = getVaultPda(\n params.takerDepositMint,\n params.market,\n programId\n );\n const [globalDepositToken] = getGlobalDepositTokenPda(\n params.takerDepositMint,\n programId\n );\n const [takerGlobalDeposit] = getUserGlobalDepositPda(\n params.takerOrder.maker,\n params.takerDepositMint,\n programId\n );\n\n keys.push(readonly(params.takerDepositMint));\n keys.push(writable(vault));\n keys.push(readonly(globalDepositToken));\n keys.push(writable(takerGlobalDeposit));\n\n for (const [conditionalMint] of getAllConditionalMintPdas(\n params.market,\n params.takerDepositMint,\n params.numOutcomes,\n programId\n )) {\n keys.push(writable(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, takerPosition)));\n }\n }\n\n for (const maker of params.makers) {\n const [makerNonce] = getUserNoncePda(maker.order.maker, programId);\n const [makerPosition] = getPositionPda(maker.order.maker, params.market, programId);\n\n if (!maker.isFullFill) {\n const makerOrderHash = hashOrder(maker.order);\n const [makerOrderStatus] = getOrderStatusPda(makerOrderHash, programId);\n keys.push(writable(makerOrderStatus));\n }\n\n keys.push(readonly(makerNonce));\n keys.push(writable(makerPosition));\n\n if (maker.isDeposit) {\n const [vault] = getVaultPda(maker.depositMint, params.market, programId);\n const [globalDepositToken] = getGlobalDepositTokenPda(\n maker.depositMint,\n programId\n );\n const [makerGlobalDeposit] = getUserGlobalDepositPda(\n maker.order.maker,\n maker.depositMint,\n programId\n );\n\n keys.push(readonly(maker.depositMint));\n keys.push(writable(vault));\n keys.push(readonly(globalDepositToken));\n keys.push(writable(makerGlobalDeposit));\n\n for (const [conditionalMint] of getAllConditionalMintPdas(\n params.market,\n maker.depositMint,\n params.numOutcomes,\n programId\n )) {\n keys.push(writable(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, makerPosition)));\n }\n }\n\n keys.push(writable(getConditionalTokenAta(receiveMint, makerPosition)));\n keys.push(writable(getConditionalTokenAta(giveMint, makerPosition)));\n }\n\n const buffers: Buffer[] = [\n Buffer.from([INSTRUCTION.DEPOSIT_AND_SWAP]),\n serializeOrder(signedOrderToOrder(params.takerOrder)),\n params.takerOrder.signature,\n toU8(params.makers.length),\n toU8(fullFillBitmask),\n toU8(depositBitmask),\n ];\n\n for (const maker of params.makers) {\n buffers.push(serializeOrder(signedOrderToOrder(maker.order)));\n buffers.push(maker.order.signature);\n buffers.push(toU64Le(maker.makerFillAmount));\n buffers.push(toU64Le(maker.takerFillAmount));\n }\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.concat(buffers),\n });\n}\n\n/**\n * Build WithdrawFromGlobal instruction\n *\n * Accounts:\n * 0. user (signer, mut)\n * 1. global_deposit_token (readonly) - PDA [\"global_deposit\", mint]\n * 2. mint (readonly)\n * 3. user_global_deposit (mut) - PDA [\"global_deposit\", user, mint]\n * 4. user_token_account (mut) - user's ATA for mint\n * 5. token_program (readonly)\n * 6. exchange (readonly)\n *\n * Data: [discriminator, amount (u64)]\n */\nexport function buildWithdrawFromGlobalIx(\n params: WithdrawFromGlobalParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [globalDepositToken] = getGlobalDepositTokenPda(params.mint, programId);\n const [userGlobalDeposit] = getUserGlobalDepositPda(params.user, params.mint, programId);\n const [exchange] = getExchangePda(programId);\n const userTokenAccount = getDepositTokenAta(params.mint, params.user);\n\n const keys: AccountMeta[] = [\n signerMut(params.user),\n readonly(globalDepositToken),\n readonly(params.mint),\n writable(userGlobalDeposit),\n writable(userTokenAccount),\n readonly(TOKEN_PROGRAM_ID),\n readonly(exchange),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.WITHDRAW_FROM_GLOBAL]),\n toU64Le(params.amount),\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build ClosePositionAlt instruction\n *\n * Accounts:\n * 0. operator (signer, mut)\n * 1. exchange (readonly)\n * 2. position (readonly)\n * 3. market (readonly)\n * 4. lookup_table (mut)\n * 5. alt_program (readonly)\n *\n * Data: [discriminator]\n */\nexport function buildClosePositionAltIx(\n params: ClosePositionAltParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n readonly(params.position),\n readonly(params.market),\n writable(params.lookupTable),\n readonly(ALT_PROGRAM_ID),\n ];\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.from([INSTRUCTION.CLOSE_POSITION_ALT]),\n });\n}\n\n/**\n * Build CloseOrderStatus instruction\n *\n * Accounts:\n * 0. operator (signer, mut)\n * 1. exchange (readonly)\n * 2. order_status (mut)\n *\n * Data: [discriminator, order_hash (32)]\n */\nexport function buildCloseOrderStatusIx(\n params: CloseOrderStatusParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n const [orderStatus] = getOrderStatusPda(params.orderHash, programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n writable(orderStatus),\n ];\n\n const data = Buffer.concat([\n Buffer.from([INSTRUCTION.CLOSE_ORDER_STATUS]),\n params.orderHash,\n ]);\n\n return new TransactionInstruction({\n keys,\n programId,\n data,\n });\n}\n\n/**\n * Build ClosePositionTokenAccounts instruction\n *\n * Accounts:\n * 0. operator (signer, mut)\n * 1. exchange (readonly)\n * 2. market (readonly)\n * 3. position (readonly)\n * 4. token_program (readonly)\n * + per deposit mint: deposit_mint, conditional_mint/position_ata pairs\n *\n * Data: [discriminator]\n */\nexport function buildClosePositionTokenAccountsIx(\n params: ClosePositionTokenAccountsParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n validateOutcomes(numOutcomes);\n if (params.depositMints.length === 0) {\n throw ProgramSdkError.missingField(\"deposit_mints\");\n }\n\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n readonly(params.market),\n readonly(params.position),\n readonly(TOKEN_PROGRAM_ID),\n ];\n\n for (const depositMint of params.depositMints) {\n keys.push(readonly(depositMint));\n\n for (let i = 0; i < numOutcomes; i += 1) {\n const [conditionalMint] = getConditionalMintPda(\n params.market,\n depositMint,\n i,\n programId\n );\n keys.push(readonly(conditionalMint));\n keys.push(writable(getConditionalTokenAta(conditionalMint, params.position)));\n }\n }\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.from([INSTRUCTION.CLOSE_POSITION_TOKEN_ACCOUNTS]),\n });\n}\n\n/**\n * Build CloseOrderbookAlt instruction\n *\n * Accounts:\n * 0. operator (signer, mut)\n * 1. exchange (readonly)\n * 2. orderbook (readonly)\n * 3. market (readonly)\n * 4. lookup_table (mut)\n * 5. alt_program (readonly)\n *\n * Data: [discriminator]\n */\nexport function buildCloseOrderbookAltIx(\n params: CloseOrderbookAltParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n readonly(params.orderbook),\n readonly(params.market),\n writable(params.lookupTable),\n readonly(ALT_PROGRAM_ID),\n ];\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.from([INSTRUCTION.CLOSE_ORDERBOOK_ALT]),\n });\n}\n\n/**\n * Build CloseOrderbook instruction\n *\n * Accounts:\n * 0. operator (signer, mut)\n * 1. exchange (readonly)\n * 2. orderbook (mut)\n * 3. market (readonly)\n * 4. lookup_table (readonly)\n *\n * Data: [discriminator]\n */\nexport function buildCloseOrderbookIx(\n params: CloseOrderbookParams,\n programId: PublicKey = PROGRAM_ID\n): TransactionInstruction {\n const [exchange] = getExchangePda(programId);\n\n const keys: AccountMeta[] = [\n signerMut(params.operator),\n readonly(exchange),\n writable(params.orderbook),\n readonly(params.market),\n readonly(params.lookupTable),\n ];\n\n return new TransactionInstruction({\n keys,\n programId,\n data: Buffer.from([INSTRUCTION.CLOSE_ORDERBOOK]),\n });\n}\n\n// ============================================================================\n// TRANSACTION BUILDERS (_tx convenience wrappers)\n// Each wraps the corresponding _ix builder into a Transaction with feePayer set.\n// ============================================================================\n\nexport function buildInitializeTx(\n params: InitializeParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildInitializeIx(params, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildCreateMarketTx(\n params: CreateMarketParams,\n marketId: bigint,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCreateMarketIx(params, marketId, programId);\n return new Transaction({ feePayer: params.manager }).add(ix);\n}\n\nexport function buildAddDepositMintTx(\n params: AddDepositMintParams,\n market: PublicKey,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildAddDepositMintIx(params, market, numOutcomes, programId);\n return new Transaction({ feePayer: params.manager }).add(ix);\n}\n\nexport function buildDepositTx(\n params: BuildDepositParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildDepositIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildMergeTx(\n params: BuildMergeParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildMergeIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildCancelOrderTx(\n operator: PublicKey,\n market: PublicKey,\n order: SignedOrder,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCancelOrderIx(operator, market, order, programId);\n return new Transaction({ feePayer: operator }).add(ix);\n}\n\nexport function buildIncrementNonceTx(\n user: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildIncrementNonceIx(user, programId);\n return new Transaction({ feePayer: user }).add(ix);\n}\n\nexport function buildSettleMarketTx(\n params: SettleMarketParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSettleMarketIx(params, programId);\n return new Transaction({ feePayer: params.oracle }).add(ix);\n}\n\nexport function buildRedeemWinningsTx(\n params: RedeemWinningsParams,\n outcomeIndex: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildRedeemWinningsIx(params, outcomeIndex, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildSetPausedTx(\n authority: PublicKey,\n paused: boolean,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetPausedIx(authority, paused, programId);\n return new Transaction({ feePayer: authority }).add(ix);\n}\n\nexport function buildSetOperatorTx(\n authority: PublicKey,\n newOperator: PublicKey,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetOperatorIx(authority, newOperator, programId);\n return new Transaction({ feePayer: authority }).add(ix);\n}\n\nexport function buildWithdrawFromPositionTx(\n params: WithdrawFromPositionParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildWithdrawFromPositionIx(params, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildActivateMarketTx(\n params: ActivateMarketParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildActivateMarketIx(params, programId);\n return new Transaction({ feePayer: params.manager }).add(ix);\n}\n\nexport function buildMatchOrdersMultiTx(\n params: MatchOrdersMultiParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildMatchOrdersMultiIx(params, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildSetAuthorityTx(\n params: SetAuthorityParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetAuthorityIx(params, programId);\n return new Transaction({ feePayer: params.currentAuthority }).add(ix);\n}\n\nexport function buildSetManagerTx(\n params: SetManagerParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetManagerIx(params, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildSetMarketFeesTx(\n params: SetMarketFeesParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetMarketFeesIx(params, programId);\n return new Transaction({ feePayer: params.manager }).add(ix);\n}\n\nexport function buildSetFeeReceiverTx(\n params: SetFeeReceiverParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildSetFeeReceiverIx(params, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildCreateConditionalMetadataTx(\n params: ConditionalMetadataParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCreateConditionalMetadataIx(params, programId);\n return new Transaction({ feePayer: params.manager }).add(ix);\n}\n\nexport function buildUpdateConditionalMetadataTx(\n params: ConditionalMetadataParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildUpdateConditionalMetadataIx(params, programId);\n return new Transaction({ feePayer: params.manager }).add(ix);\n}\n\nexport function buildCreateOrderbookTx(\n params: CreateOrderbookParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCreateOrderbookIx(params, programId);\n return new Transaction({ feePayer: params.manager }).add(ix);\n}\n\nexport function buildWhitelistDepositTokenTx(\n params: WhitelistDepositTokenParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildWhitelistDepositTokenIx(params, programId);\n return new Transaction({ feePayer: params.authority }).add(ix);\n}\n\nexport function buildDepositToGlobalTx(\n params: DepositToGlobalParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildDepositToGlobalIx(params, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildDepositToGlobalTxWithAlt(\n params: DepositToGlobalParams,\n altContext: DepositToGlobalAltContext,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildDepositToGlobalIxWithAlt(params, altContext, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildGlobalToMarketDepositTx(\n params: GlobalToMarketDepositParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildGlobalToMarketDepositIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildInitPositionTokensTx(\n params: InitPositionTokensParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildInitPositionTokensIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.payer }).add(ix);\n}\n\nexport function buildExtendPositionTokensTx(\n params: ExtendPositionTokensParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildExtendPositionTokensIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildDepositAndSwapTx(\n params: DepositAndSwapParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildDepositAndSwapIx(params, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildWithdrawFromGlobalTx(\n params: WithdrawFromGlobalParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildWithdrawFromGlobalIx(params, programId);\n return new Transaction({ feePayer: params.user }).add(ix);\n}\n\nexport function buildClosePositionAltTx(\n params: ClosePositionAltParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildClosePositionAltIx(params, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildCloseOrderStatusTx(\n params: CloseOrderStatusParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCloseOrderStatusIx(params, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildClosePositionTokenAccountsTx(\n params: ClosePositionTokenAccountsParams,\n numOutcomes: number,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildClosePositionTokenAccountsIx(params, numOutcomes, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildCloseOrderbookAltTx(\n params: CloseOrderbookAltParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCloseOrderbookAltIx(params, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n\nexport function buildCloseOrderbookTx(\n params: CloseOrderbookParams,\n programId: PublicKey = PROGRAM_ID\n): Transaction {\n const ix = buildCloseOrderbookIx(params, programId);\n return new Transaction({ feePayer: params.operator }).add(ix);\n}\n"]}
|
package/dist/program/orders.js
CHANGED
|
@@ -138,7 +138,7 @@ function verifyOrderSignature(order) {
|
|
|
138
138
|
return tweetnacl_1.sign.detached.verify(messageBytes, order.signature, order.maker.toBytes());
|
|
139
139
|
}
|
|
140
140
|
// ============================================================================
|
|
141
|
-
// SIGNED ORDER SERIALIZATION (
|
|
141
|
+
// SIGNED ORDER SERIALIZATION (233 bytes)
|
|
142
142
|
// ============================================================================
|
|
143
143
|
/**
|
|
144
144
|
* Serialize a signed order to bytes (233 bytes)
|
|
@@ -230,7 +230,7 @@ function deserializeSignedOrder(data) {
|
|
|
230
230
|
};
|
|
231
231
|
}
|
|
232
232
|
// ============================================================================
|
|
233
|
-
// ORDER SERIALIZATION (
|
|
233
|
+
// ORDER SERIALIZATION (37 bytes)
|
|
234
234
|
// ============================================================================
|
|
235
235
|
/**
|
|
236
236
|
* Serialize a compact order to bytes (37 bytes)
|