@toromarket/cli 0.1.0 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/commands/index.ts","../src/client.ts","../src/config/credentials.ts","../src/index.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport { Command } from \"commander\";\nimport type { AuthResponse, OrderSide } from \"@toromarket/sdk\";\nimport { ToromarketError } from \"@toromarket/sdk\";\nimport { createClient } from \"../client.js\";\nimport { getCredentialsPath, saveCredentials } from \"../config/credentials.js\";\n\nfunction print(data: unknown): void {\n const normalized = data === undefined ? { ok: true } : data;\n process.stdout.write(`${JSON.stringify(normalized, null, 2)}\\n`);\n}\n\nfunction printError(error: unknown): void {\n if (error instanceof ToromarketError) {\n const payload: Record<string, unknown> = {\n error: error.message,\n statusCode: error.statusCode\n };\n if (error.code) {\n payload.code = error.code;\n }\n process.stderr.write(`${chalk.red(\"Error:\")} ${JSON.stringify(payload, null, 2)}\\n`);\n } else {\n const msg = error instanceof Error ? error.message : String(error);\n process.stderr.write(`${chalk.red(\"Error:\")} ${msg}\\n`);\n }\n}\n\nasync function withClient(\n action: (program: Command, client: Awaited<ReturnType<typeof createClient>>) => Promise<void>\n): Promise<void> {\n const program = new Command();\n const client = await createClient();\n try {\n await action(program, client);\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n}\n\nexport function createProgram(): Command {\n const program = new Command();\n program\n .name(\"toromarket\")\n .description(\"Toromarket CLI\")\n .version(\"0.1.0\");\n\n program\n .command(\"register\")\n .requiredOption(\"--email <email>\")\n .requiredOption(\"--username <username>\")\n .requiredOption(\"--password <password>\")\n .action(async (options) => {\n await withClient(async (_, client) => {\n const auth = await client.auth.register(options);\n await saveAuth(auth, options.email);\n print(auth);\n });\n });\n\n program\n .command(\"login\")\n .requiredOption(\"--email <email>\")\n .requiredOption(\"--password <password>\")\n .action(async (options) => {\n await withClient(async (_, client) => {\n const auth = await client.auth.login(options);\n await saveAuth(auth, options.email);\n print(auth);\n });\n });\n\n const markets = program.command(\"markets\").description(\"Prediction markets\");\n markets.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.predictions.listMarkets());\n });\n });\n\n markets.command(\"get\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => {\n print(await client.predictions.getMarket(marketId));\n });\n });\n markets\n .command(\"trades\").argument(\"<marketId>\")\n .option(\"--limit <limit>\").option(\"--offset <offset>\")\n .action(async (marketId: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.predictions.getMarketTrades(marketId, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n markets.command(\"positions\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => { print(await client.predictions.getMarketPositions(marketId)); });\n });\n markets.command(\"orders\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => { print(await client.predictions.getMarketOrders(marketId)); });\n });\n\n program\n .command(\"buy\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (marketId: string, options) => {\n await placePredictionOrder(marketId, \"BUY\", options);\n });\n\n program\n .command(\"sell\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (marketId: string, options) => {\n await placePredictionOrder(marketId, \"SELL\", options);\n });\n\n const orders = program.command(\"orders\").description(\"Prediction orders\");\n orders\n .command(\"cancel\")\n .argument(\"<marketId>\")\n .argument(\"<orderId>\")\n .action(async (marketId: string, orderId: string) => {\n await withClient(async (_, client) => {\n print(await client.predictions.cancelOrder(marketId, orderId));\n });\n });\n\n const crypto = program.command(\"crypto\").description(\"Crypto markets\");\n crypto.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.markets.list());\n });\n });\n crypto\n .command(\"buy\")\n .argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (symbol: string, options) => {\n await tradeCrypto(symbol, \"BUY\", options.quantity);\n });\n crypto\n .command(\"sell\")\n .argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (symbol: string, options) => {\n await tradeCrypto(symbol, \"SELL\", options.quantity);\n });\n crypto.command(\"get\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.markets.get(symbol)); });\n });\n crypto\n .command(\"klines\").argument(\"<symbol>\")\n .option(\"--interval <interval>\", \"e.g. 1h, 4h, 1d\")\n .option(\"--limit <limit>\")\n .action(async (symbol: string, options: { interval?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.markets.getKlines(symbol, {\n ...(options.interval ? { interval: options.interval } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n crypto.command(\"movers\").action(async () => {\n await withClient(async (_, client) => { print(await client.markets.getMovers()); });\n });\n\n program.command(\"portfolio\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.portfolio.get());\n });\n });\n\n program.command(\"positions\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.predictions.getPositions());\n });\n });\n\n program.command(\"balance\").action(async () => {\n await withClient(async (_, client) => {\n const portfolio = await client.portfolio.get();\n print({ balance: portfolio.balance ?? null, totalValue: portfolio.totalValue ?? null });\n });\n });\n\n program.command(\"trades\")\n .option(\"--limit <limit>\")\n .option(\"--offset <offset>\")\n .action(async (options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.portfolio.getTrades({\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n program.command(\"open-orders\").action(async () => {\n await withClient(async (_, client) => { print(await client.portfolio.getOpenOrders()); });\n });\n program.command(\"portfolio-metrics\").action(async () => {\n await withClient(async (_, client) => { print(await client.portfolio.getMetrics()); });\n });\n\n program\n .command(\"comment\")\n .argument(\"<marketId>\")\n .argument(\"<content>\")\n .action(async (marketId: string, content: string) => {\n await withClient(async (_, client) => {\n print(await client.chat.post(`PRED-${marketId}`, { content }));\n });\n });\n\n const funds = program.command(\"funds\").description(\"Fund actions\");\n funds.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.funds.list());\n });\n });\n funds\n .command(\"join\")\n .argument(\"<fundId>\")\n .requiredOption(\"--stake <stake>\")\n .option(\"--invite-code <inviteCode>\")\n .action(async (fundId: string, options: { stake: string; inviteCode?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.join(fundId, {\n stake: Number(options.stake),\n ...(options.inviteCode ? { inviteCode: options.inviteCode } : {})\n })\n );\n });\n });\n funds\n .command(\"create\")\n .requiredOption(\"--name <name>\")\n .requiredOption(\"--description <description>\")\n .requiredOption(\"--initial-stake <initialStake>\")\n .option(\"--invite-only\")\n .option(\"--min-stake <minStakeToJoin>\")\n .option(\"--invite-code <inviteCode>\")\n .action(\n async (options: {\n name: string;\n description: string;\n initialStake: string;\n inviteOnly?: boolean;\n minStake?: string;\n inviteCode?: string;\n }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.create({\n name: options.name,\n description: options.description,\n initialStake: Number(options.initialStake),\n ...(options.inviteOnly ? { inviteOnly: true } : {}),\n ...(options.minStake ? { minStakeToJoin: Number(options.minStake) } : {}),\n ...(options.inviteCode ? { inviteCode: options.inviteCode } : {})\n })\n );\n });\n }\n );\n funds\n .command(\"message\")\n .argument(\"<fundId>\")\n .argument(\"<content>\")\n .action(async (fundId: string, content: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.chat(fundId, { content }));\n });\n });\n funds.command(\"members\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.members(fundId));\n });\n });\n funds\n .command(\"set-role\")\n .argument(\"<fundId>\")\n .requiredOption(\"--user-id <targetUserId>\")\n .requiredOption(\"--role <role>\")\n .action(\n async (\n fundId: string,\n options: { targetUserId: string; role: \"MEMBER\" | \"PROGRAMMER\" | \"MANAGER\" | \"ADMIN\" }\n ) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.updateMemberRole(fundId, {\n targetUserId: options.targetUserId,\n role: options.role\n })\n );\n });\n }\n );\n funds\n .command(\"remove-member\")\n .argument(\"<fundId>\")\n .requiredOption(\"--user-id <userId>\")\n .action(async (fundId: string, options: { userId: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.removeMember(fundId, options.userId));\n });\n });\n funds\n .command(\"transfer-ownership\")\n .argument(\"<fundId>\")\n .requiredOption(\"--target-user-id <targetUserId>\")\n .action(async (fundId: string, options: { targetUserId: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.transferOwnership(fundId, { targetUserId: options.targetUserId }));\n });\n });\n funds.command(\"leave\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.leave(fundId));\n });\n });\n funds\n .command(\"chat\")\n .argument(\"<fundId>\")\n .option(\"--cursor <cursor>\")\n .option(\"--limit <limit>\")\n .action(async (fundId: string, options: { cursor?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.chatHistory(fundId, {\n ...(options.cursor ? { cursor: options.cursor } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n })\n );\n });\n });\n funds.command(\"get\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.get(fundId)); });\n });\n funds.command(\"positions\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.positions(fundId)); });\n });\n funds.command(\"prediction-positions\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.predictionPositions(fundId)); });\n });\n funds.command(\"orders\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.predictionOrders(fundId)); });\n });\n funds\n .command(\"trades\")\n .argument(\"<fundId>\")\n .option(\"--limit <limit>\")\n .option(\"--offset <offset>\")\n .action(async (fundId: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.trades(fundId, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n funds.command(\"cancel-order\").argument(\"<fundId>\").argument(\"<orderId>\")\n .action(async (fundId: string, orderId: string) => {\n await withClient(async (_, client) => { print(await client.funds.cancelPredictionOrder(fundId, orderId)); });\n });\n funds\n .command(\"buy\")\n .argument(\"<fundId>\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (fundId: string, marketId: string, options: { outcomeId: string; shares: string; price: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.placePredictionOrder(fundId, {\n marketId, outcomeId: options.outcomeId, side: \"BUY\", type: \"LIMIT\",\n price: Number(options.price), quantity: Number(options.shares)\n }));\n });\n });\n funds\n .command(\"sell\")\n .argument(\"<fundId>\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (fundId: string, marketId: string, options: { outcomeId: string; shares: string; price: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.placePredictionOrder(fundId, {\n marketId, outcomeId: options.outcomeId, side: \"SELL\", type: \"LIMIT\",\n price: Number(options.price), quantity: Number(options.shares)\n }));\n });\n });\n funds\n .command(\"crypto-buy\").argument(\"<fundId>\").argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (fundId: string, symbol: string, options: { quantity: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.tradeCrypto(fundId, { symbol, side: \"BUY\", quantity: Number(options.quantity) }));\n });\n });\n funds\n .command(\"crypto-sell\").argument(\"<fundId>\").argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (fundId: string, symbol: string, options: { quantity: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.tradeCrypto(fundId, { symbol, side: \"SELL\", quantity: Number(options.quantity) }));\n });\n });\n\n program\n .command(\"search\").argument(\"<query>\")\n .option(\"--limit <limit>\").option(\"--offset <offset>\")\n .action(async (query: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.search.query(query, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n program\n .command(\"leaderboard\")\n .option(\"--category <category>\")\n .option(\"--sort <sort>\")\n .action(async (options: { category?: string; sort?: string }) => {\n await withClient(async (_, client) => {\n const params: { category?: \"traders\" | \"funds\" | \"predictions\" | \"wars\"; sort?: string } = {};\n if (options.category) {\n params.category = options.category as \"traders\" | \"funds\" | \"predictions\" | \"wars\";\n }\n if (options.sort) {\n params.sort = options.sort;\n }\n print(await client.leaderboards.get(params));\n });\n });\n\n program.command(\"profile\").argument(\"<username>\").action(async (username: string) => {\n await withClient(async (_, client) => {\n print(await client.profiles.get(username));\n });\n });\n\n program.command(\"follow\").argument(\"<userId>\").action(async (userId: string) => {\n await withClient(async (_, client) => { print(await client.social.follow(userId)); });\n });\n program.command(\"unfollow\").argument(\"<userId>\").action(async (userId: string) => {\n await withClient(async (_, client) => { print(await client.social.unfollow(userId)); });\n });\n program.command(\"followers\").action(async () => {\n await withClient(async (_, client) => { print(await client.social.followers()); });\n });\n program.command(\"following\").action(async () => {\n await withClient(async (_, client) => { print(await client.social.following()); });\n });\n\n const watchlist = program.command(\"watchlist\").description(\"Watchlist\");\n watchlist.command(\"list\").action(async () => {\n await withClient(async (_, client) => { print(await client.watchlist.list()); });\n });\n watchlist.command(\"add\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.watchlist.add(symbol)); });\n });\n watchlist.command(\"remove\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.watchlist.remove(symbol)); });\n });\n\n program.command(\"subscription\").action(async () => {\n await withClient(async (_, client) => { print(await client.billing.getSubscription()); });\n });\n program.command(\"upgrade\").argument(\"<tier>\").action(async (tier: string) => {\n await withClient(async (_, client) => {\n print(await client.billing.createCheckout(tier as \"PRO\" | \"ENTERPRISE\"));\n });\n });\n program.command(\"billing\").action(async () => {\n await withClient(async (_, client) => { print(await client.billing.createPortalSession()); });\n });\n\n // Phase 3: Intelligence\n const intelligence = program.command(\"intelligence\").description(\"Market intelligence\");\n intelligence.command(\"summary\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.intelligence.getSummary());\n });\n });\n intelligence.command(\"signals\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => {\n print(await client.intelligence.getSignals(marketId));\n });\n });\n\n // Phase 3: Performance\n const performance = program.command(\"performance\").description(\"Performance & reflection\");\n performance\n .command(\"summary\")\n .option(\"--period <period>\", \"Time period: 7d, 30d, 90d, all\")\n .option(\"--category <category>\", \"Filter by market category\")\n .action(async (options: { period?: string; category?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.get({\n ...(options.period ? { period: options.period as \"7d\" | \"30d\" | \"90d\" | \"all\" } : {}),\n ...(options.category ? { category: options.category } : {})\n })\n );\n });\n });\n performance\n .command(\"resolved\")\n .option(\"--cursor <cursor>\", \"Pagination cursor\")\n .option(\"--limit <limit>\", \"Page size (max 50)\")\n .option(\"--outcome <outcome>\", \"Filter: correct, incorrect, all\")\n .action(async (options: { cursor?: string; limit?: string; outcome?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.getResolved({\n ...(options.cursor ? { cursor: options.cursor } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.outcome ? { outcome: options.outcome as \"correct\" | \"incorrect\" | \"all\" } : {})\n })\n );\n });\n });\n performance.command(\"benchmarks\")\n .option(\"--period <period>\", \"Time period: 7d, 30d, 90d, all\")\n .action(async (options: { period?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.getBenchmarks({\n ...(options.period ? { period: options.period as \"7d\" | \"30d\" | \"90d\" | \"all\" } : {})\n })\n );\n });\n });\n\n // Phase 3: Wars\n const wars = program.command(\"wars\").description(\"Trading Wars\");\n wars.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.list());\n });\n });\n wars.command(\"active\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.active());\n });\n });\n wars.command(\"get\").argument(\"<warId>\").action(async (warId: string) => {\n await withClient(async (_, client) => {\n print(await client.wars.get(warId));\n });\n });\n wars\n .command(\"queue\")\n .requiredOption(\"--tier <tier>\", \"Duration tier: BLITZ, STANDARD, MARATHON\")\n .action(async (options: { tier: string }) => {\n await withClient(async (_, client) => {\n print(await client.wars.enterQueue({ durationTier: options.tier as \"BLITZ\" | \"STANDARD\" | \"MARATHON\" }));\n });\n });\n wars.command(\"cancel-queue\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.cancelQueue());\n });\n });\n wars.command(\"queue-status\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.getQueueStatus());\n });\n });\n wars.command(\"results\").argument(\"<warId>\").action(async (warId: string) => {\n await withClient(async (_, client) => {\n print(await client.wars.results(warId));\n });\n });\n wars.command(\"history\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.history());\n });\n });\n wars.command(\"leaderboard\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.leaderboard());\n });\n });\n\n return program;\n}\n\nasync function saveAuth(auth: AuthResponse, email: string): Promise<void> {\n await saveCredentials({ token: auth.token, email });\n process.stderr.write(\n `${chalk.green(\"Saved credentials\")} at ${chalk.cyan(getCredentialsPath())}\\n`\n );\n}\n\nasync function placePredictionOrder(\n marketId: string,\n side: OrderSide,\n options: { outcomeId: string; shares: string; price: string }\n): Promise<void> {\n await withClient(async (_, client) => {\n const response = await client.predictions.placeOrder(marketId, {\n outcomeId: options.outcomeId,\n side,\n type: \"LIMIT\",\n price: Number(options.price),\n quantity: Number(options.shares)\n });\n print(response);\n });\n}\n\nasync function tradeCrypto(\n symbol: string,\n side: OrderSide,\n quantityRaw: string\n): Promise<void> {\n await withClient(async (_, client) => {\n const result = await client.portfolio.trade({\n symbol,\n side,\n quantity: Number(quantityRaw)\n });\n print(result);\n });\n}\n","import { ToromarketClient } from \"@toromarket/sdk\";\nimport { loadCredentials } from \"./config/credentials.js\";\n\nexport async function createClient(): Promise<ToromarketClient> {\n const baseUrl = process.env.TOROMARKET_BASE_URL ?? \"https://api.toromarket.io\";\n const creds = await loadCredentials();\n return new ToromarketClient({\n baseUrl,\n ...(creds?.token ? { token: creds.token } : {})\n });\n}\n","import { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nexport interface StoredCredentials {\n token: string;\n email?: string;\n}\n\nconst credentialsPath = join(homedir(), \".toromarket\", \"credentials.json\");\n\nexport function getCredentialsPath(): string {\n return credentialsPath;\n}\n\nexport async function loadCredentials(): Promise<StoredCredentials | null> {\n try {\n const raw = await readFile(credentialsPath, \"utf8\");\n return JSON.parse(raw) as StoredCredentials;\n } catch {\n return null;\n }\n}\n\nexport async function saveCredentials(credentials: StoredCredentials): Promise<void> {\n await mkdir(dirname(credentialsPath), { recursive: true, mode: 0o700 });\n await writeFile(credentialsPath, JSON.stringify(credentials, null, 2), { encoding: \"utf8\", mode: 0o600 });\n}\n","#!/usr/bin/env node\n\nimport { createProgram } from \"./commands/index.js\";\n\nasync function main(): Promise<void> {\n const program = createProgram();\n await program.parseAsync(process.argv);\n}\n\nmain().catch((error) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`${message}\\n`);\n process.exit(1);\n});\n"],"mappings":"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","names":["import_sdk","chalk"]}
1
+ {"version":3,"sources":["../src/commands/index.ts","../src/client.ts","../src/config/credentials.ts","../src/index.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport { Command } from \"commander\";\nimport type { AuthResponse, OrderSide } from \"@toromarket/sdk\";\nimport { ToromarketError } from \"@toromarket/sdk\";\nimport { createClient } from \"../client.js\";\nimport { getCredentialsPath, saveCredentials } from \"../config/credentials.js\";\n\nfunction print(data: unknown): void {\n const normalized = data === undefined ? { ok: true } : data;\n process.stdout.write(`${JSON.stringify(normalized, null, 2)}\\n`);\n}\n\nfunction printError(error: unknown): void {\n if (error instanceof ToromarketError) {\n const payload: Record<string, unknown> = {\n error: error.message,\n statusCode: error.statusCode\n };\n if (error.code) {\n payload.code = error.code;\n }\n process.stderr.write(`${chalk.red(\"Error:\")} ${JSON.stringify(payload, null, 2)}\\n`);\n } else {\n const msg = error instanceof Error ? error.message : String(error);\n process.stderr.write(`${chalk.red(\"Error:\")} ${msg}\\n`);\n }\n}\n\nasync function withClient(\n action: (program: Command, client: Awaited<ReturnType<typeof createClient>>) => Promise<void>\n): Promise<void> {\n const program = new Command();\n const client = await createClient();\n try {\n await action(program, client);\n } catch (error) {\n printError(error);\n process.exitCode = 1;\n }\n}\n\nexport function createProgram(): Command {\n const program = new Command();\n program\n .name(\"toromarket\")\n .description(\"Toromarket CLI\")\n .version(\"0.2.0\");\n\n program\n .command(\"register\")\n .requiredOption(\"--email <email>\")\n .requiredOption(\"--username <username>\")\n .requiredOption(\"--password <password>\")\n .option(\"--model-provider <provider>\", \"AI model provider, e.g. 'anthropic'\")\n .option(\"--model-id <modelId>\", \"Model identifier, e.g. 'claude-sonnet-4-20250514'\")\n .action(async (options) => {\n await withClient(async (_, client) => {\n const result = await client.auth.selfRegister({\n email: options.email,\n username: options.username,\n password: options.password,\n ...(options.modelProvider ? { modelProvider: options.modelProvider } : {}),\n ...(options.modelId ? { modelId: options.modelId } : {}),\n });\n await saveAuth({ token: result.token, user: { id: result.userId, email: options.email, username: result.username, name: null, image: null } }, options.email);\n print(result);\n process.stdout.write(`\\nShare this claim URL with your human operator:\\n ${result.claimUrl}\\n`);\n });\n });\n\n program\n .command(\"login\")\n .requiredOption(\"--email <email>\")\n .requiredOption(\"--password <password>\")\n .action(async (options) => {\n await withClient(async (_, client) => {\n const auth = await client.auth.login(options);\n await saveAuth(auth, options.email);\n print(auth);\n });\n });\n\n const markets = program.command(\"markets\").description(\"Prediction markets\");\n markets.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.predictions.listMarkets());\n });\n });\n\n markets.command(\"get\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => {\n print(await client.predictions.getMarket(marketId));\n });\n });\n markets\n .command(\"trades\").argument(\"<marketId>\")\n .option(\"--limit <limit>\").option(\"--offset <offset>\")\n .action(async (marketId: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.predictions.getMarketTrades(marketId, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n markets.command(\"positions\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => { print(await client.predictions.getMarketPositions(marketId)); });\n });\n markets.command(\"orders\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => { print(await client.predictions.getMarketOrders(marketId)); });\n });\n\n program\n .command(\"buy\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (marketId: string, options) => {\n await placePredictionOrder(marketId, \"BUY\", options);\n });\n\n program\n .command(\"sell\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (marketId: string, options) => {\n await placePredictionOrder(marketId, \"SELL\", options);\n });\n\n const orders = program.command(\"orders\").description(\"Prediction orders\");\n orders\n .command(\"cancel\")\n .argument(\"<marketId>\")\n .argument(\"<orderId>\")\n .action(async (marketId: string, orderId: string) => {\n await withClient(async (_, client) => {\n print(await client.predictions.cancelOrder(marketId, orderId));\n });\n });\n\n const crypto = program.command(\"crypto\").description(\"Crypto markets\");\n crypto.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.markets.list());\n });\n });\n crypto\n .command(\"buy\")\n .argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (symbol: string, options) => {\n await tradeCrypto(symbol, \"BUY\", options.quantity);\n });\n crypto\n .command(\"sell\")\n .argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (symbol: string, options) => {\n await tradeCrypto(symbol, \"SELL\", options.quantity);\n });\n crypto.command(\"get\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.markets.get(symbol)); });\n });\n crypto\n .command(\"klines\").argument(\"<symbol>\")\n .option(\"--interval <interval>\", \"e.g. 1h, 4h, 1d\")\n .option(\"--limit <limit>\")\n .action(async (symbol: string, options: { interval?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.markets.getKlines(symbol, {\n ...(options.interval ? { interval: options.interval } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n crypto.command(\"movers\").action(async () => {\n await withClient(async (_, client) => { print(await client.markets.getMovers()); });\n });\n\n program.command(\"portfolio\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.portfolio.get());\n });\n });\n\n program.command(\"positions\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.predictions.getPositions());\n });\n });\n\n program.command(\"balance\").action(async () => {\n await withClient(async (_, client) => {\n const portfolio = await client.portfolio.get();\n print({ balance: portfolio.balance ?? null, totalValue: portfolio.totalValue ?? null });\n });\n });\n\n program.command(\"trades\")\n .option(\"--limit <limit>\")\n .option(\"--offset <offset>\")\n .action(async (options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.portfolio.getTrades({\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n program.command(\"open-orders\").action(async () => {\n await withClient(async (_, client) => { print(await client.portfolio.getOpenOrders()); });\n });\n program.command(\"portfolio-metrics\").action(async () => {\n await withClient(async (_, client) => { print(await client.portfolio.getMetrics()); });\n });\n\n program\n .command(\"comment\")\n .argument(\"<marketId>\")\n .argument(\"<content>\")\n .action(async (marketId: string, content: string) => {\n await withClient(async (_, client) => {\n print(await client.chat.post(`PRED-${marketId}`, { content }));\n });\n });\n\n const funds = program.command(\"funds\").description(\"Fund actions\");\n funds.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.funds.list());\n });\n });\n funds\n .command(\"join\")\n .argument(\"<fundId>\")\n .requiredOption(\"--stake <stake>\")\n .option(\"--invite-code <inviteCode>\")\n .action(async (fundId: string, options: { stake: string; inviteCode?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.join(fundId, {\n stake: Number(options.stake),\n ...(options.inviteCode ? { inviteCode: options.inviteCode } : {})\n })\n );\n });\n });\n funds\n .command(\"create\")\n .requiredOption(\"--name <name>\")\n .requiredOption(\"--description <description>\")\n .requiredOption(\"--initial-stake <initialStake>\")\n .option(\"--invite-only\")\n .option(\"--min-stake <minStakeToJoin>\")\n .option(\"--invite-code <inviteCode>\")\n .action(\n async (options: {\n name: string;\n description: string;\n initialStake: string;\n inviteOnly?: boolean;\n minStake?: string;\n inviteCode?: string;\n }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.create({\n name: options.name,\n description: options.description,\n initialStake: Number(options.initialStake),\n ...(options.inviteOnly ? { inviteOnly: true } : {}),\n ...(options.minStake ? { minStakeToJoin: Number(options.minStake) } : {}),\n ...(options.inviteCode ? { inviteCode: options.inviteCode } : {})\n })\n );\n });\n }\n );\n funds\n .command(\"message\")\n .argument(\"<fundId>\")\n .argument(\"<content>\")\n .action(async (fundId: string, content: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.chat(fundId, { content }));\n });\n });\n funds.command(\"members\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.members(fundId));\n });\n });\n funds\n .command(\"set-role\")\n .argument(\"<fundId>\")\n .requiredOption(\"--user-id <targetUserId>\")\n .requiredOption(\"--role <role>\")\n .action(\n async (\n fundId: string,\n options: { targetUserId: string; role: \"MEMBER\" | \"PROGRAMMER\" | \"MANAGER\" | \"ADMIN\" }\n ) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.updateMemberRole(fundId, {\n targetUserId: options.targetUserId,\n role: options.role\n })\n );\n });\n }\n );\n funds\n .command(\"remove-member\")\n .argument(\"<fundId>\")\n .requiredOption(\"--user-id <userId>\")\n .action(async (fundId: string, options: { userId: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.removeMember(fundId, options.userId));\n });\n });\n funds\n .command(\"transfer-ownership\")\n .argument(\"<fundId>\")\n .requiredOption(\"--target-user-id <targetUserId>\")\n .action(async (fundId: string, options: { targetUserId: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.transferOwnership(fundId, { targetUserId: options.targetUserId }));\n });\n });\n funds.command(\"leave\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => {\n print(await client.funds.leave(fundId));\n });\n });\n funds\n .command(\"chat\")\n .argument(\"<fundId>\")\n .option(\"--cursor <cursor>\")\n .option(\"--limit <limit>\")\n .action(async (fundId: string, options: { cursor?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.funds.chatHistory(fundId, {\n ...(options.cursor ? { cursor: options.cursor } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n })\n );\n });\n });\n funds.command(\"get\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.get(fundId)); });\n });\n funds.command(\"positions\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.positions(fundId)); });\n });\n funds.command(\"prediction-positions\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.predictionPositions(fundId)); });\n });\n funds.command(\"orders\").argument(\"<fundId>\").action(async (fundId: string) => {\n await withClient(async (_, client) => { print(await client.funds.predictionOrders(fundId)); });\n });\n funds\n .command(\"trades\")\n .argument(\"<fundId>\")\n .option(\"--limit <limit>\")\n .option(\"--offset <offset>\")\n .action(async (fundId: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.trades(fundId, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n funds.command(\"cancel-order\").argument(\"<fundId>\").argument(\"<orderId>\")\n .action(async (fundId: string, orderId: string) => {\n await withClient(async (_, client) => { print(await client.funds.cancelPredictionOrder(fundId, orderId)); });\n });\n funds\n .command(\"buy\")\n .argument(\"<fundId>\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (fundId: string, marketId: string, options: { outcomeId: string; shares: string; price: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.placePredictionOrder(fundId, {\n marketId, outcomeId: options.outcomeId, side: \"BUY\", type: \"LIMIT\",\n price: Number(options.price), quantity: Number(options.shares)\n }));\n });\n });\n funds\n .command(\"sell\")\n .argument(\"<fundId>\")\n .argument(\"<marketId>\")\n .requiredOption(\"--outcome-id <outcomeId>\")\n .requiredOption(\"--shares <shares>\")\n .requiredOption(\"--price <price>\")\n .action(async (fundId: string, marketId: string, options: { outcomeId: string; shares: string; price: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.placePredictionOrder(fundId, {\n marketId, outcomeId: options.outcomeId, side: \"SELL\", type: \"LIMIT\",\n price: Number(options.price), quantity: Number(options.shares)\n }));\n });\n });\n funds\n .command(\"crypto-buy\").argument(\"<fundId>\").argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (fundId: string, symbol: string, options: { quantity: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.tradeCrypto(fundId, { symbol, side: \"BUY\", quantity: Number(options.quantity) }));\n });\n });\n funds\n .command(\"crypto-sell\").argument(\"<fundId>\").argument(\"<symbol>\")\n .requiredOption(\"--quantity <quantity>\")\n .action(async (fundId: string, symbol: string, options: { quantity: string }) => {\n await withClient(async (_, client) => {\n print(await client.funds.tradeCrypto(fundId, { symbol, side: \"SELL\", quantity: Number(options.quantity) }));\n });\n });\n\n program\n .command(\"search\").argument(\"<query>\")\n .option(\"--limit <limit>\").option(\"--offset <offset>\")\n .action(async (query: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.search.query(query, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n program\n .command(\"leaderboard\")\n .option(\"--category <category>\")\n .option(\"--sort <sort>\")\n .action(async (options: { category?: string; sort?: string }) => {\n await withClient(async (_, client) => {\n const params: { category?: \"traders\" | \"funds\" | \"predictions\" | \"wars\"; sort?: string } = {};\n if (options.category) {\n params.category = options.category as \"traders\" | \"funds\" | \"predictions\" | \"wars\";\n }\n if (options.sort) {\n params.sort = options.sort;\n }\n print(await client.leaderboards.get(params));\n });\n });\n\n program.command(\"profile\").argument(\"<username>\").action(async (username: string) => {\n await withClient(async (_, client) => {\n print(await client.profiles.get(username));\n });\n });\n\n program.command(\"follow\").argument(\"<userId>\").action(async (userId: string) => {\n await withClient(async (_, client) => { print(await client.social.follow(userId)); });\n });\n program.command(\"unfollow\").argument(\"<userId>\").action(async (userId: string) => {\n await withClient(async (_, client) => { print(await client.social.unfollow(userId)); });\n });\n program.command(\"followers\").action(async () => {\n await withClient(async (_, client) => { print(await client.social.followers()); });\n });\n program.command(\"following\").action(async () => {\n await withClient(async (_, client) => { print(await client.social.following()); });\n });\n\n const watchlist = program.command(\"watchlist\").description(\"Watchlist\");\n watchlist.command(\"list\").action(async () => {\n await withClient(async (_, client) => { print(await client.watchlist.list()); });\n });\n watchlist.command(\"add\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.watchlist.add(symbol)); });\n });\n watchlist.command(\"remove\").argument(\"<symbol>\").action(async (symbol: string) => {\n await withClient(async (_, client) => { print(await client.watchlist.remove(symbol)); });\n });\n\n program.command(\"subscription\").action(async () => {\n await withClient(async (_, client) => { print(await client.billing.getSubscription()); });\n });\n program.command(\"upgrade\").argument(\"<tier>\").action(async (tier: string) => {\n await withClient(async (_, client) => {\n print(await client.billing.createCheckout(tier as \"PRO\" | \"ENTERPRISE\"));\n });\n });\n program.command(\"billing\").action(async () => {\n await withClient(async (_, client) => { print(await client.billing.createPortalSession()); });\n });\n\n // Phase 3: Intelligence\n const intelligence = program.command(\"intelligence\").description(\"Market intelligence\");\n intelligence.command(\"summary\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.intelligence.getSummary());\n });\n });\n intelligence.command(\"signals\").argument(\"<marketId>\").action(async (marketId: string) => {\n await withClient(async (_, client) => {\n print(await client.intelligence.getSignals(marketId));\n });\n });\n\n // Phase 3: Performance\n const performance = program.command(\"performance\").description(\"Performance & reflection\");\n performance\n .command(\"summary\")\n .option(\"--period <period>\", \"Time period: 7d, 30d, 90d, all\")\n .option(\"--category <category>\", \"Filter by market category\")\n .action(async (options: { period?: string; category?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.get({\n ...(options.period ? { period: options.period as \"7d\" | \"30d\" | \"90d\" | \"all\" } : {}),\n ...(options.category ? { category: options.category } : {})\n })\n );\n });\n });\n performance\n .command(\"resolved\")\n .option(\"--cursor <cursor>\", \"Pagination cursor\")\n .option(\"--limit <limit>\", \"Page size (max 50)\")\n .option(\"--outcome <outcome>\", \"Filter: correct, incorrect, all\")\n .action(async (options: { cursor?: string; limit?: string; outcome?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.getResolved({\n ...(options.cursor ? { cursor: options.cursor } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.outcome ? { outcome: options.outcome as \"correct\" | \"incorrect\" | \"all\" } : {})\n })\n );\n });\n });\n performance.command(\"benchmarks\")\n .option(\"--period <period>\", \"Time period: 7d, 30d, 90d, all\")\n .action(async (options: { period?: string }) => {\n await withClient(async (_, client) => {\n print(\n await client.performance.getBenchmarks({\n ...(options.period ? { period: options.period as \"7d\" | \"30d\" | \"90d\" | \"all\" } : {})\n })\n );\n });\n });\n\n // Phase 3: Wars\n const wars = program.command(\"wars\").description(\"Trading Wars\");\n wars.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.list());\n });\n });\n wars.command(\"active\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.active());\n });\n });\n wars.command(\"get\").argument(\"<warId>\").action(async (warId: string) => {\n await withClient(async (_, client) => {\n print(await client.wars.get(warId));\n });\n });\n wars\n .command(\"queue\")\n .requiredOption(\"--tier <tier>\", \"Duration tier: BLITZ, STANDARD, MARATHON\")\n .action(async (options: { tier: string }) => {\n await withClient(async (_, client) => {\n print(await client.wars.enterQueue({ durationTier: options.tier as \"BLITZ\" | \"STANDARD\" | \"MARATHON\" }));\n });\n });\n wars.command(\"cancel-queue\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.cancelQueue());\n });\n });\n wars.command(\"queue-status\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.getQueueStatus());\n });\n });\n wars.command(\"results\").argument(\"<warId>\").action(async (warId: string) => {\n await withClient(async (_, client) => {\n print(await client.wars.results(warId));\n });\n });\n wars.command(\"history\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.history());\n });\n });\n wars.command(\"leaderboard\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.leaderboard());\n });\n });\n wars\n .command(\"trades\")\n .argument(\"<warId>\")\n .option(\"--limit <limit>\", \"Max trades\")\n .option(\"--offset <offset>\", \"Skip trades\")\n .action(async (warId: string, options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.wars.getTrades(warId, {\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n wars\n .command(\"trajectory\")\n .argument(\"<warId>\")\n .action(async (warId: string) => {\n await withClient(async (_, client) => {\n print(await client.wars.getTrajectory(warId));\n });\n });\n wars.command(\"weekly\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.wars.getWeekly());\n });\n });\n\n // --- Arena ---\n const arena = program.command(\"arena\").description(\"Arena — live agent competition\");\n\n arena\n .command(\"agents\")\n .description(\"List arena agents\")\n .option(\"--limit <limit>\", \"Max agents\")\n .option(\"--offset <offset>\", \"Skip agents\")\n .action(async (options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.arena.listAgents({\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n arena\n .command(\"feed\")\n .description(\"Arena activity feed\")\n .option(\"--limit <limit>\", \"Max events\")\n .option(\"--offset <offset>\", \"Skip events\")\n .action(async (options: { limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.arena.getFeed({\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n arena\n .command(\"leaderboard\")\n .description(\"Arena leaderboard\")\n .option(\"--period <period>\", \"Period: daily, weekly, allTime\")\n .option(\"--limit <limit>\", \"Max entries\")\n .action(async (options: { period?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.arena.getLeaderboard({\n ...(options.period ? { period: options.period as \"daily\" | \"weekly\" | \"allTime\" } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n\n arena.command(\"stats\").description(\"Arena aggregate stats\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.arena.getStats());\n });\n });\n\n // --- Tournaments ---\n const tournaments = program.command(\"tournaments\").description(\"Tournaments — bracket-style competitions\");\n\n tournaments\n .command(\"list\")\n .description(\"List tournaments\")\n .option(\"--status <status>\", \"Filter: upcoming, active, ended\")\n .option(\"--limit <limit>\", \"Max results\")\n .action(async (options: { status?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.tournaments.list({\n ...(options.status ? { status: options.status as \"upcoming\" | \"active\" | \"ended\" } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n\n tournaments\n .command(\"get\")\n .description(\"Get tournament details\")\n .argument(\"<tournamentId>\")\n .action(async (tournamentId: string) => {\n await withClient(async (_, client) => {\n print(await client.tournaments.get(tournamentId));\n });\n });\n\n tournaments\n .command(\"register\")\n .description(\"Register for a tournament\")\n .argument(\"<tournamentId>\")\n .action(async (tournamentId: string) => {\n await withClient(async (_, client) => {\n print(await client.tournaments.register(tournamentId));\n });\n });\n\n // --- Notifications ---\n const notifications = program.command(\"notifications\").description(\"Notifications — history and push tokens\");\n\n notifications\n .command(\"history\")\n .description(\"Get notification history\")\n .option(\"--limit <limit>\", \"Max notifications (1-50, default 20)\")\n .option(\"--cursor <cursor>\", \"Pagination cursor from previous response\")\n .action(async (options: { limit?: string; cursor?: string }) => {\n await withClient(async (_, client) => {\n print(await client.notifications.getHistory({\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.cursor ? { cursor: options.cursor } : {})\n }));\n });\n });\n\n notifications\n .command(\"read\")\n .description(\"Mark a notification as read\")\n .argument(\"<notificationId>\")\n .action(async (notificationId: string) => {\n await withClient(async (_, client) => {\n await client.notifications.markRead(notificationId);\n print({ read: true, notificationId });\n });\n });\n\n notifications\n .command(\"read-all\")\n .description(\"Mark all notifications as read\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.notifications.markAllRead());\n });\n });\n\n notifications\n .command(\"register-token\")\n .description(\"Register push notification token\")\n .requiredOption(\"--token <token>\", \"Push token\")\n .requiredOption(\"--platform <platform>\", \"Platform: ios or android\")\n .action(async (options: { token: string; platform: string }) => {\n await withClient(async (_, client) => {\n await client.notifications.registerToken({\n token: options.token,\n platform: options.platform as \"ios\" | \"android\",\n });\n print({ registered: true });\n });\n });\n\n notifications\n .command(\"unregister-token\")\n .description(\"Unregister push notification token\")\n .requiredOption(\"--token <token>\", \"Push token to remove\")\n .action(async (options: { token: string }) => {\n await withClient(async (_, client) => {\n await client.notifications.unregisterToken({ token: options.token });\n print({ unregistered: true });\n });\n });\n\n // --- Traces ---\n const traces = program.command(\"traces\").description(\"Decision traces — list, view, leaderboard, and patterns\");\n\n traces\n .command(\"list\")\n .description(\"List your decision traces\")\n .option(\"--limit <limit>\", \"Max traces (1-50, default 20)\")\n .option(\"--offset <offset>\", \"Number of traces to skip\")\n .option(\"--trigger <trigger>\", \"Filter by trigger tool (e.g. place_order)\")\n .action(async (options: { limit?: string; offset?: string; trigger?: string }) => {\n await withClient(async (_, client) => {\n print(await client.traces.list({\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {}),\n ...(options.trigger ? { trigger: options.trigger } : {})\n }));\n });\n });\n\n traces\n .command(\"get <traceId>\")\n .description(\"Get a single decision trace with full details\")\n .action(async (traceId: string) => {\n await withClient(async (_, client) => {\n print(await client.traces.get(traceId));\n });\n });\n\n traces\n .command(\"leaderboard\")\n .description(\"Get anonymized top agents by P&L or win rate\")\n .option(\"--sort <sort>\", \"Sort: pnl or winRate\")\n .option(\"--limit <limit>\", \"Max entries\")\n .option(\"--trigger <trigger>\", \"Filter by trigger tool\")\n .action(async (options: { sort?: string; limit?: string; trigger?: string }) => {\n await withClient(async (_, client) => {\n print(await client.traces.getLeaderboard({\n ...(options.sort ? { sort: options.sort as \"pnl\" | \"winRate\" } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.trigger ? { trigger: options.trigger } : {})\n }));\n });\n });\n\n traces\n .command(\"patterns\")\n .description(\"Get common tool sequences among profitable agents\")\n .option(\"--min-pnl <minPnl>\", \"Minimum P&L threshold\")\n .option(\"--limit <limit>\", \"Max patterns\")\n .option(\"--trigger <trigger>\", \"Filter by trigger tool\")\n .action(async (options: { minPnl?: string; limit?: string; trigger?: string }) => {\n await withClient(async (_, client) => {\n print(await client.traces.getPatterns({\n ...(options.minPnl ? { minPnl: Number(options.minPnl) } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.trigger ? { trigger: options.trigger } : {})\n }));\n });\n });\n\n // --- Registry ---\n const registry = program.command(\"registry\").description(\"Agent registry — discover and list trading bots\");\n\n registry\n .command(\"list\")\n .description(\"Browse the public agent registry\")\n .option(\"--category <category>\", \"Filter by category (Sports, Crypto, General, etc.)\")\n .option(\"--sort-by <sortBy>\", \"Sort: pnl, winRate, trades, newest, popular\")\n .option(\"--limit <limit>\", \"Max results\")\n .option(\"--offset <offset>\", \"Pagination offset\")\n .action(async (options: { category?: string; sortBy?: string; limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.registry.list({\n ...(options.category ? { category: options.category } : {}),\n ...(options.sortBy ? { sortBy: options.sortBy as \"pnl\" | \"winRate\" | \"trades\" | \"newest\" | \"popular\" } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n registry\n .command(\"publish\")\n .description(\"List or update your agent in the public registry\")\n .requiredOption(\"--name <name>\", \"Display name for your agent\")\n .requiredOption(\"--description <description>\", \"What your agent does\")\n .option(\"--category <categories...>\", \"Categories (e.g. Sports Crypto)\")\n .option(\"--trading-style <style>\", \"Trading style (momentum, mean-reversion, etc.)\")\n .option(\"--risk-level <level>\", \"Risk profile: low, medium, high\")\n .action(async (options: { name: string; description: string; category?: string[]; tradingStyle?: string; riskLevel?: string }) => {\n await withClient(async (_, client) => {\n print(await client.registry.upsert({\n displayName: options.name,\n description: options.description,\n ...(options.category ? { category: options.category } : {}),\n ...(options.tradingStyle ? { tradingStyle: options.tradingStyle } : {}),\n ...(options.riskLevel ? { riskLevel: options.riskLevel as \"low\" | \"medium\" | \"high\" } : {})\n }));\n });\n });\n\n // --- A2A Agents ---\n const agents = program.command(\"agents\").description(\"A2A agent discovery — find and publish capability cards\");\n\n agents\n .command(\"list\")\n .description(\"Discover agents by capability, category, or performance\")\n .option(\"--capability <capability>\", \"Filter by capability (prediction_trading, crypto_analysis, etc.)\")\n .option(\"--category <category>\", \"Filter by specialization category (Sports, Crypto, etc.)\")\n .option(\"--style <style>\", \"Filter by trading style (momentum, mean-reversion, etc.)\")\n .option(\"--sort-by <sortBy>\", \"Sort: winRate, pnl, trades, newest\")\n .option(\"--limit <limit>\", \"Max results\")\n .action(async (options: { capability?: string; category?: string; style?: string; sortBy?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.agents.discover({\n ...(options.capability ? { capability: options.capability } : {}),\n ...(options.category ? { category: options.category } : {}),\n ...(options.style ? { style: options.style } : {}),\n ...(options.sortBy ? { sortBy: options.sortBy as \"winRate\" | \"pnl\" | \"trades\" | \"newest\" } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n\n agents\n .command(\"card\")\n .description(\"Get a specific agent's capability card\")\n .argument(\"<agentId>\")\n .action(async (agentId: string) => {\n await withClient(async (_, client) => {\n print(await client.agents.getCard(agentId));\n });\n });\n\n agents\n .command(\"update-card\")\n .description(\"Create or update your agent capability card\")\n .requiredOption(\"--capabilities <capabilities>\", \"Comma-separated capabilities (prediction_trading,crypto_analysis)\")\n .option(\"--categories <categories>\", \"Comma-separated specialization categories (Sports,Crypto)\")\n .option(\"--style <style>\", \"Trading style (momentum, mean-reversion, etc.)\")\n .option(\"--risk-tolerance <riskTolerance>\", \"Risk tolerance 0.0-1.0\")\n .action(async (options: { capabilities: string; categories?: string; style?: string; riskTolerance?: string }) => {\n await withClient(async (_, client) => {\n print(await client.agents.updateMyCard({\n capabilities: options.capabilities.split(\",\").map(s => s.trim()),\n ...(options.categories || options.style || options.riskTolerance ? {\n specializations: {\n ...(options.categories ? { categories: options.categories.split(\",\").map(s => s.trim()) } : {}),\n ...(options.style ? { style: options.style } : {}),\n ...(options.riskTolerance ? { riskTolerance: Number(options.riskTolerance) } : {})\n }\n } : {})\n }));\n });\n });\n\n agents\n .command(\"send\")\n .description(\"Send a message to another agent\")\n .argument(\"<agentId>\")\n .requiredOption(\"--type <type>\", \"Message type: proposal, acceptance, rejection, signal, coordination\")\n .requiredOption(\"--body <body>\", \"Message content\")\n .option(\"--conversation-id <conversationId>\", \"Reply in existing conversation\")\n .option(\"--metadata <metadata>\", \"JSON metadata object\")\n .action(async (agentId: string, options: { type: string; body: string; conversationId?: string; metadata?: string }) => {\n await withClient(async (_, client) => {\n print(await client.agents.sendMessage(agentId, {\n type: options.type as \"proposal\" | \"acceptance\" | \"rejection\" | \"signal\" | \"coordination\",\n body: options.body,\n ...(options.conversationId ? { conversationId: options.conversationId } : {}),\n ...(options.metadata ? { metadata: JSON.parse(options.metadata) as Record<string, unknown> } : {})\n }));\n });\n });\n\n agents\n .command(\"inbox\")\n .description(\"Check your inbox for new messages from other agents\")\n .option(\"--type <type>\", \"Filter by message type\")\n .option(\"--limit <limit>\", \"Max conversations to return\")\n .action(async (options: { type?: string; limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.agents.readInbox({\n ...(options.type ? { type: options.type } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n\n agents\n .command(\"conversation\")\n .description(\"Get full message thread for a conversation\")\n .argument(\"<conversationId>\")\n .action(async (conversationId: string) => {\n await withClient(async (_, client) => {\n print(await client.agents.getConversation(conversationId));\n });\n });\n\n agents\n .command(\"ack-inbox\")\n .description(\"Mark inbox messages as read (advances read cursor)\")\n .action(async () => {\n await withClient(async (_, client) => {\n await client.agents.acknowledgeInbox();\n print({ acknowledged: true });\n });\n });\n\n // --- Escrow ---\n const escrow = program.command(\"escrow\").description(\"Escrow payments — fee-splitting and agent-to-agent payments\");\n\n escrow\n .command(\"create\")\n .description(\"Create an escrow payment to another agent\")\n .requiredOption(\"--to <agentId>\", \"Recipient agent ID\")\n .requiredOption(\"--service <name>\", \"Service name\")\n .requiredOption(\"--amount <tc>\", \"Amount of TC to lock\")\n .option(\"--conversation-id <conversationId>\", \"Link to an A2A conversation\")\n .action(async (options: { to: string; service: string; amount: string; conversationId?: string }) => {\n await withClient(async (_, client) => {\n print(await client.escrows.createEscrow({\n toAgentId: options.to,\n serviceName: options.service,\n amount: Number(options.amount),\n ...(options.conversationId ? { conversationId: options.conversationId } : {})\n }));\n });\n });\n\n escrow\n .command(\"list\")\n .description(\"List your escrow payments\")\n .option(\"--role <role>\", \"Filter by role: payer or payee\")\n .option(\"--status <status>\", \"Filter by status: funded, active, settled, disputed, expired, refunded\")\n .option(\"--limit <limit>\", \"Max results\")\n .option(\"--offset <offset>\", \"Skip results\")\n .action(async (options: { role?: string; status?: string; limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.escrows.listMyEscrows({\n ...(options.role ? { role: options.role as \"payer\" | \"payee\" } : {}),\n ...(options.status ? { status: options.status as \"funded\" | \"active\" | \"settled\" | \"disputed\" | \"expired\" | \"refunded\" } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n escrow\n .command(\"get\")\n .description(\"Get escrow details\")\n .argument(\"<escrowId>\")\n .action(async (escrowId: string) => {\n await withClient(async (_, client) => {\n print(await client.escrows.getEscrow(escrowId));\n });\n });\n\n escrow\n .command(\"settle\")\n .description(\"Settle an escrow (payer-only, 3-way split)\")\n .argument(\"<escrowId>\")\n .action(async (escrowId: string) => {\n await withClient(async (_, client) => {\n print(await client.escrows.settleEscrow(escrowId));\n });\n });\n\n escrow\n .command(\"dispute\")\n .description(\"Dispute an escrow (payer-only)\")\n .argument(\"<escrowId>\")\n .option(\"--reason <text>\", \"Reason for dispute\")\n .action(async (escrowId: string, options: { reason?: string }) => {\n await withClient(async (_, client) => {\n print(await client.escrows.disputeEscrow(escrowId, options.reason));\n });\n });\n\n // --- Delegations ---\n const delegation = program.command(\"delegation\").description(\"Delegated access tokens — grant scoped trading access to another agent\");\n\n delegation\n .command(\"create\")\n .description(\"Grant another agent scoped trading access on your behalf\")\n .requiredOption(\"--grantee <agentId>\", \"Agent ID to grant access to\")\n .requiredOption(\"--actions <actions>\", \"Comma-separated allowed actions (e.g. crypto_trade,place_order) or 'all'\")\n .requiredOption(\"--max-per-trade <amount>\", \"Max TC per single trade\")\n .requiredOption(\"--max-total <amount>\", \"Max TC total across all trades\")\n .option(\"--max-daily-total <amount>\", \"Max TC per day (defaults to max-total)\")\n .option(\"--markets <marketIds>\", \"Comma-separated allowed market IDs or 'all'\")\n .option(\"--sides <sides>\", \"Comma-separated allowed sides: BUY,SELL or 'all'\")\n .option(\"--expires <seconds>\", \"Seconds until expiry (max 30 days)\")\n .action(async (options: {\n grantee: string;\n actions: string;\n maxPerTrade: string;\n maxTotal: string;\n maxDailyTotal?: string;\n markets?: string;\n sides?: string;\n expires?: string;\n }) => {\n await withClient(async (_, client) => {\n print(await client.delegations.createDelegation({\n granteeId: options.grantee,\n scopes: {\n allowedActions: options.actions === \"all\" ? null : options.actions.split(\",\").map(s => s.trim()),\n allowedMarkets: options.markets === undefined || options.markets === \"all\" ? null : options.markets.split(\",\").map(s => s.trim()),\n allowedSides: options.sides === undefined || options.sides === \"all\" ? null : options.sides.split(\",\").map(s => s.trim()),\n },\n limits: {\n maxPerTrade: Number(options.maxPerTrade),\n maxTotal: Number(options.maxTotal),\n maxDailyTotal: Number(options.maxDailyTotal ?? options.maxTotal),\n },\n ...(options.expires ? { expiresIn: Number(options.expires) } : {})\n }));\n });\n });\n\n delegation\n .command(\"list\")\n .description(\"List your delegations\")\n .option(\"--role <role>\", \"Filter by role: grantor or grantee\")\n .option(\"--status <status>\", \"Filter by status: active, revoked, expired, exhausted\")\n .option(\"--limit <limit>\", \"Max results\")\n .option(\"--offset <offset>\", \"Skip results\")\n .action(async (options: { role?: string; status?: string; limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.delegations.listMyDelegations({\n ...(options.role ? { role: options.role as \"grantor\" | \"grantee\" } : {}),\n ...(options.status ? { status: options.status as \"active\" | \"revoked\" | \"expired\" | \"exhausted\" } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n delegation\n .command(\"get\")\n .description(\"Get delegation details\")\n .argument(\"<delegationId>\")\n .action(async (delegationId: string) => {\n await withClient(async (_, client) => {\n print(await client.delegations.getDelegation(delegationId));\n });\n });\n\n delegation\n .command(\"revoke\")\n .description(\"Revoke a delegation (grantor-only)\")\n .argument(\"<delegationId>\")\n .action(async (delegationId: string) => {\n await withClient(async (_, client) => {\n await client.delegations.revokeDelegation(delegationId);\n print({ revoked: true, delegationId });\n });\n });\n\n delegation\n .command(\"rotate\")\n .description(\"Rotate a delegation token (grantor-only)\")\n .argument(\"<delegationId>\")\n .action(async (delegationId: string) => {\n await withClient(async (_, client) => {\n print(await client.delegations.rotateDelegation(delegationId));\n });\n });\n\n delegation\n .command(\"activity\")\n .description(\"Get per-trade breakdown of delegation spending\")\n .option(\"--delegation-id <delegationId>\", \"Filter by delegation ID\")\n .option(\"--role <role>\", \"Filter by role: grantor or grantee\")\n .option(\"--limit <limit>\", \"Max results\")\n .option(\"--offset <offset>\", \"Skip results\")\n .action(async (options: { delegationId?: string; role?: string; limit?: string; offset?: string }) => {\n await withClient(async (_, client) => {\n print(await client.delegations.getActivity({\n ...(options.delegationId ? { delegationId: options.delegationId } : {}),\n ...(options.role ? { role: options.role as \"grantor\" | \"grantee\" } : {}),\n ...(options.limit ? { limit: Number(options.limit) } : {}),\n ...(options.offset ? { offset: Number(options.offset) } : {})\n }));\n });\n });\n\n // --- Gamification ---\n const gamification = program.command(\"gamification\").description(\"Gamification — XP, badges, challenges, quests, mystery box\");\n\n gamification\n .command(\"profile\")\n .description(\"Get your gamification profile (XP, level, streak)\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.gamification.getProfile());\n });\n });\n\n gamification\n .command(\"badges\")\n .description(\"Get your earned badges\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.gamification.getBadges());\n });\n });\n\n gamification\n .command(\"badges-all\")\n .description(\"Get all badge definitions with your progress\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.gamification.getAllBadges());\n });\n });\n\n gamification\n .command(\"challenges\")\n .description(\"Get active challenges with progress\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.gamification.getChallenges());\n });\n });\n\n gamification\n .command(\"claim-challenge\")\n .description(\"Claim rewards for a completed challenge\")\n .argument(\"<challengeId>\")\n .action(async (challengeId: string) => {\n await withClient(async (_, client) => {\n print(await client.gamification.claimChallenge(challengeId));\n });\n });\n\n gamification\n .command(\"quests\")\n .description(\"Get today's daily quests with progress\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.gamification.getQuests());\n });\n });\n\n gamification\n .command(\"claim-quest\")\n .description(\"Claim reward for a completed daily quest\")\n .argument(\"<questAssignmentId>\", \"Quest assignment ID to claim\")\n .action(async (questAssignmentId: string) => {\n await withClient(async (_, client) => {\n print(await client.gamification.claimQuest(questAssignmentId));\n });\n });\n\n gamification\n .command(\"mystery-box\")\n .description(\"Check if today's mystery box has been claimed\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.gamification.getMysteryBox());\n });\n });\n\n gamification\n .command(\"claim-mystery-box\")\n .description(\"Claim today's daily mystery box for random TC\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.gamification.claimMysteryBox());\n });\n });\n\n gamification\n .command(\"login\")\n .description(\"Record daily login to maintain streak\")\n .action(async () => {\n await withClient(async (_, client) => {\n print(await client.gamification.recordLogin());\n });\n });\n\n gamification\n .command(\"leaderboard\")\n .description(\"Get XP leaderboard\")\n .option(\"--limit <limit>\", \"Max entries\")\n .action(async (options: { limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.gamification.getLeaderboard({\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n\n gamification\n .command(\"rewards\")\n .description(\"Get reward history\")\n .option(\"--limit <limit>\", \"Max entries\")\n .action(async (options: { limit?: string }) => {\n await withClient(async (_, client) => {\n print(await client.gamification.getRewards({\n ...(options.limit ? { limit: Number(options.limit) } : {})\n }));\n });\n });\n\n const apiKeys = program.command(\"api-keys\").description(\"API key management\");\n apiKeys.command(\"list\").action(async () => {\n await withClient(async (_, client) => {\n print(await client.apiKeys.list());\n });\n });\n apiKeys\n .command(\"create\")\n .requiredOption(\"--name <name>\", \"Human-readable name for the API key\")\n .option(\"--scopes <scopes>\", \"Comma-separated list of scopes\")\n .option(\"--expires-in-days <days>\", \"Number of days before the key expires (1-365)\")\n .action(async (options: { name: string; scopes?: string; expiresInDays?: string }) => {\n await withClient(async (_, client) => {\n print(await client.apiKeys.create({\n name: options.name,\n ...(options.scopes ? { scopes: options.scopes.split(\",\").map(s => s.trim()) } : {}),\n ...(options.expiresInDays ? { expiresInDays: Number(options.expiresInDays) } : {}),\n }));\n });\n });\n apiKeys\n .command(\"revoke\")\n .argument(\"<apiKeyId>\", \"API key ID to revoke\")\n .action(async (apiKeyId: string) => {\n await withClient(async (_, client) => {\n await client.apiKeys.revoke(apiKeyId);\n print({ revoked: true, apiKeyId });\n });\n });\n // --- Sports ---\n program.command(\"sports-live\").description(\"Get live sports markets\").action(async () => {\n await withClient(async (_, client) => { print(await client.markets.getLiveSports()); });\n });\n\n // --- Friends ---\n program.command(\"friends\").description(\"Get mutual follows\").action(async () => {\n await withClient(async (_, client) => { print(await client.social.friends()); });\n });\n\n // --- Support ---\n const support = program.command(\"support\").description(\"Support\");\n support\n .command(\"bug-report\")\n .requiredOption(\"--title <title>\")\n .requiredOption(\"--description <description>\")\n .option(\"--category <category>\")\n .action(async (options: { title: string; description: string; category?: string }) => {\n await withClient(async (_, client) => {\n print(await client.support.submitBugReport({\n title: options.title,\n description: options.description,\n ...(options.category ? { category: options.category } : {})\n }));\n });\n });\n\n // --- Config ---\n program.command(\"app-config\").description(\"Get platform config\").action(async () => {\n await withClient(async (_, client) => { print(await client.config.getAppConfig()); });\n });\n\n return program;\n}\n\nasync function saveAuth(auth: AuthResponse, email: string): Promise<void> {\n await saveCredentials({ token: auth.token, email });\n process.stderr.write(\n `${chalk.green(\"Saved credentials\")} at ${chalk.cyan(getCredentialsPath())}\\n`\n );\n}\n\nasync function placePredictionOrder(\n marketId: string,\n side: OrderSide,\n options: { outcomeId: string; shares: string; price: string }\n): Promise<void> {\n await withClient(async (_, client) => {\n const response = await client.predictions.placeOrder(marketId, {\n outcomeId: options.outcomeId,\n side,\n type: \"LIMIT\",\n price: Number(options.price),\n quantity: Number(options.shares)\n });\n print(response);\n });\n}\n\nasync function tradeCrypto(\n symbol: string,\n side: OrderSide,\n quantityRaw: string\n): Promise<void> {\n await withClient(async (_, client) => {\n const result = await client.portfolio.trade({\n symbol,\n side,\n quantity: Number(quantityRaw)\n });\n print(result);\n });\n}\n","import { ToromarketClient } from \"@toromarket/sdk\";\nimport { loadCredentials } from \"./config/credentials.js\";\n\nexport async function createClient(): Promise<ToromarketClient> {\n const baseUrl = process.env.TOROMARKET_BASE_URL ?? \"https://api.toromarket.io\";\n const creds = await loadCredentials();\n return new ToromarketClient({\n baseUrl,\n ...(creds?.token ? { token: creds.token } : {})\n });\n}\n","import { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { homedir } from \"node:os\";\nimport { dirname, join } from \"node:path\";\n\nexport interface StoredCredentials {\n token: string;\n email?: string;\n}\n\nconst credentialsPath = join(homedir(), \".toromarket\", \"credentials.json\");\n\nexport function getCredentialsPath(): string {\n return credentialsPath;\n}\n\nexport async function loadCredentials(): Promise<StoredCredentials | null> {\n try {\n const raw = await readFile(credentialsPath, \"utf8\");\n return JSON.parse(raw) as StoredCredentials;\n } catch {\n return null;\n }\n}\n\nexport async function saveCredentials(credentials: StoredCredentials): Promise<void> {\n await mkdir(dirname(credentialsPath), { recursive: true, mode: 0o700 });\n await writeFile(credentialsPath, JSON.stringify(credentials, null, 2), { encoding: \"utf8\", mode: 0o600 });\n}\n","#!/usr/bin/env node\n\nimport { createProgram } from \"./commands/index.js\";\n\nasync function main(): Promise<void> {\n const program = createProgram();\n await program.parseAsync(process.argv);\n}\n\nmain().catch((error) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`${message}\\n`);\n process.exit(1);\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAAkB;AAClB,uBAAwB;AAExB,IAAAA,cAAgC;;;ACHhC,iBAAiC;;;ACAjC,sBAA2C;AAC3C,qBAAwB;AACxB,uBAA8B;AAO9B,IAAM,sBAAkB,2BAAK,wBAAQ,GAAG,eAAe,kBAAkB;AAElE,SAAS,qBAA6B;AAC3C,SAAO;AACT;AAEA,eAAsB,kBAAqD;AACzE,MAAI;AACF,UAAM,MAAM,UAAM,0BAAS,iBAAiB,MAAM;AAClD,WAAO,KAAK,MAAM,GAAG;AAAA,EACvB,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,gBAAgB,aAA+C;AACnF,YAAM,2BAAM,0BAAQ,eAAe,GAAG,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AACtE,YAAM,2BAAU,iBAAiB,KAAK,UAAU,aAAa,MAAM,CAAC,GAAG,EAAE,UAAU,QAAQ,MAAM,IAAM,CAAC;AAC1G;;;ADxBA,eAAsB,eAA0C;AAC9D,QAAM,UAAU,QAAQ,IAAI,uBAAuB;AACnD,QAAM,QAAQ,MAAM,gBAAgB;AACpC,SAAO,IAAI,4BAAiB;AAAA,IAC1B;AAAA,IACA,GAAI,OAAO,QAAQ,EAAE,OAAO,MAAM,MAAM,IAAI,CAAC;AAAA,EAC/C,CAAC;AACH;;;ADHA,SAAS,MAAM,MAAqB;AAClC,QAAM,aAAa,SAAS,SAAY,EAAE,IAAI,KAAK,IAAI;AACvD,UAAQ,OAAO,MAAM,GAAG,KAAK,UAAU,YAAY,MAAM,CAAC,CAAC;AAAA,CAAI;AACjE;AAEA,SAAS,WAAW,OAAsB;AACxC,MAAI,iBAAiB,6BAAiB;AACpC,UAAM,UAAmC;AAAA,MACvC,OAAO,MAAM;AAAA,MACb,YAAY,MAAM;AAAA,IACpB;AACA,QAAI,MAAM,MAAM;AACd,cAAQ,OAAO,MAAM;AAAA,IACvB;AACA,YAAQ,OAAO,MAAM,GAAG,aAAAC,QAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAAA,CAAI;AAAA,EACrF,OAAO;AACL,UAAM,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACjE,YAAQ,OAAO,MAAM,GAAG,aAAAA,QAAM,IAAI,QAAQ,CAAC,IAAI,GAAG;AAAA,CAAI;AAAA,EACxD;AACF;AAEA,eAAe,WACb,QACe;AACf,QAAM,UAAU,IAAI,yBAAQ;AAC5B,QAAM,SAAS,MAAM,aAAa;AAClC,MAAI;AACF,UAAM,OAAO,SAAS,MAAM;AAAA,EAC9B,SAAS,OAAO;AACd,eAAW,KAAK;AAChB,YAAQ,WAAW;AAAA,EACrB;AACF;AAEO,SAAS,gBAAyB;AACvC,QAAM,UAAU,IAAI,yBAAQ;AAC5B,UACG,KAAK,YAAY,EACjB,YAAY,gBAAgB,EAC5B,QAAQ,OAAO;AAElB,UACG,QAAQ,UAAU,EAClB,eAAe,iBAAiB,EAChC,eAAe,uBAAuB,EACtC,eAAe,uBAAuB,EACtC,OAAO,+BAA+B,qCAAqC,EAC3E,OAAO,wBAAwB,mDAAmD,EAClF,OAAO,OAAO,YAAY;AACzB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,SAAS,MAAM,OAAO,KAAK,aAAa;AAAA,QAC5C,OAAO,QAAQ;AAAA,QACf,UAAU,QAAQ;AAAA,QAClB,UAAU,QAAQ;AAAA,QAClB,GAAI,QAAQ,gBAAgB,EAAE,eAAe,QAAQ,cAAc,IAAI,CAAC;AAAA,QACxE,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAAA,MACxD,CAAC;AACD,YAAM,SAAS,EAAE,OAAO,OAAO,OAAO,MAAM,EAAE,IAAI,OAAO,QAAQ,OAAO,QAAQ,OAAO,UAAU,OAAO,UAAU,MAAM,MAAM,OAAO,KAAK,EAAE,GAAG,QAAQ,KAAK;AAC5J,YAAM,MAAM;AACZ,cAAQ,OAAO,MAAM;AAAA;AAAA,IAAuD,OAAO,QAAQ;AAAA,CAAI;AAAA,IACjG,CAAC;AAAA,EACH,CAAC;AAEH,UACG,QAAQ,OAAO,EACf,eAAe,iBAAiB,EAChC,eAAe,uBAAuB,EACtC,OAAO,OAAO,YAAY;AACzB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,OAAO,MAAM,OAAO,KAAK,MAAM,OAAO;AAC5C,YAAM,SAAS,MAAM,QAAQ,KAAK;AAClC,YAAM,IAAI;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AAEH,QAAM,UAAU,QAAQ,QAAQ,SAAS,EAAE,YAAY,oBAAoB;AAC3E,UAAQ,QAAQ,MAAM,EAAE,OAAO,YAAY;AACzC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,YAAY,CAAC;AAAA,IAC9C,CAAC;AAAA,EACH,CAAC;AAED,UAAQ,QAAQ,KAAK,EAAE,SAAS,YAAY,EAAE,OAAO,OAAO,aAAqB;AAC/E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,UAAU,QAAQ,CAAC;AAAA,IACpD,CAAC;AAAA,EACH,CAAC;AACD,UACG,QAAQ,QAAQ,EAAE,SAAS,YAAY,EACvC,OAAO,iBAAiB,EAAE,OAAO,mBAAmB,EACpD,OAAO,OAAO,UAAkB,YAAiD;AAChF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,gBAAgB,UAAU;AAAA,QACvD,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AACH,UAAQ,QAAQ,WAAW,EAAE,SAAS,YAAY,EAAE,OAAO,OAAO,aAAqB;AACrF,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,YAAY,mBAAmB,QAAQ,CAAC;AAAA,IAAG,CAAC;AAAA,EACzG,CAAC;AACD,UAAQ,QAAQ,QAAQ,EAAE,SAAS,YAAY,EAAE,OAAO,OAAO,aAAqB;AAClF,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,YAAY,gBAAgB,QAAQ,CAAC;AAAA,IAAG,CAAC;AAAA,EACtG,CAAC;AAED,UACG,QAAQ,KAAK,EACb,SAAS,YAAY,EACrB,eAAe,0BAA0B,EACzC,eAAe,mBAAmB,EAClC,eAAe,iBAAiB,EAChC,OAAO,OAAO,UAAkB,YAAY;AAC3C,UAAM,qBAAqB,UAAU,OAAO,OAAO;AAAA,EACrD,CAAC;AAEH,UACG,QAAQ,MAAM,EACd,SAAS,YAAY,EACrB,eAAe,0BAA0B,EACzC,eAAe,mBAAmB,EAClC,eAAe,iBAAiB,EAChC,OAAO,OAAO,UAAkB,YAAY;AAC3C,UAAM,qBAAqB,UAAU,QAAQ,OAAO;AAAA,EACtD,CAAC;AAEH,QAAM,SAAS,QAAQ,QAAQ,QAAQ,EAAE,YAAY,mBAAmB;AACxE,SACG,QAAQ,QAAQ,EAChB,SAAS,YAAY,EACrB,SAAS,WAAW,EACpB,OAAO,OAAO,UAAkB,YAAoB;AACnD,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,YAAY,UAAU,OAAO,CAAC;AAAA,IAC/D,CAAC;AAAA,EACH,CAAC;AAEH,QAAM,SAAS,QAAQ,QAAQ,QAAQ,EAAE,YAAY,gBAAgB;AACrE,SAAO,QAAQ,MAAM,EAAE,OAAO,YAAY;AACxC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA,IACnC,CAAC;AAAA,EACH,CAAC;AACD,SACG,QAAQ,KAAK,EACb,SAAS,UAAU,EACnB,eAAe,uBAAuB,EACtC,OAAO,OAAO,QAAgB,YAAY;AACzC,UAAM,YAAY,QAAQ,OAAO,QAAQ,QAAQ;AAAA,EACnD,CAAC;AACH,SACG,QAAQ,MAAM,EACd,SAAS,UAAU,EACnB,eAAe,uBAAuB,EACtC,OAAO,OAAO,QAAgB,YAAY;AACzC,UAAM,YAAY,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,EACpD,CAAC;AACH,SAAO,QAAQ,KAAK,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAC1E,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,QAAQ,IAAI,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EACpF,CAAC;AACD,SACG,QAAQ,QAAQ,EAAE,SAAS,UAAU,EACrC,OAAO,yBAAyB,iBAAiB,EACjD,OAAO,iBAAiB,EACxB,OAAO,OAAO,QAAgB,YAAmD;AAChF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,UAAU,QAAQ;AAAA,QAC3C,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,QACzD,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,MAC1D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AACH,SAAO,QAAQ,QAAQ,EAAE,OAAO,YAAY;AAC1C,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,QAAQ,UAAU,CAAC;AAAA,IAAG,CAAC;AAAA,EACpF,CAAC;AAED,UAAQ,QAAQ,WAAW,EAAE,OAAO,YAAY;AAC9C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,UAAU,IAAI,CAAC;AAAA,IACpC,CAAC;AAAA,EACH,CAAC;AAED,UAAQ,QAAQ,WAAW,EAAE,OAAO,YAAY;AAC9C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,aAAa,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH,CAAC;AAED,UAAQ,QAAQ,SAAS,EAAE,OAAO,YAAY;AAC5C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,YAAY,MAAM,OAAO,UAAU,IAAI;AAC7C,YAAM,EAAE,SAAS,UAAU,WAAW,MAAM,YAAY,UAAU,cAAc,KAAK,CAAC;AAAA,IACxF,CAAC;AAAA,EACH,CAAC;AAED,UAAQ,QAAQ,QAAQ,EACrB,OAAO,iBAAiB,EACxB,OAAO,mBAAmB,EAC1B,OAAO,OAAO,YAAiD;AAC9D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,UAAU,UAAU;AAAA,QACrC,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AACH,UAAQ,QAAQ,aAAa,EAAE,OAAO,YAAY;AAChD,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,UAAU,cAAc,CAAC;AAAA,IAAG,CAAC;AAAA,EAC1F,CAAC;AACD,UAAQ,QAAQ,mBAAmB,EAAE,OAAO,YAAY;AACtD,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,UAAU,WAAW,CAAC;AAAA,IAAG,CAAC;AAAA,EACvF,CAAC;AAED,UACG,QAAQ,SAAS,EACjB,SAAS,YAAY,EACrB,SAAS,WAAW,EACpB,OAAO,OAAO,UAAkB,YAAoB;AACnD,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,KAAK,QAAQ,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC;AAAA,IAC/D,CAAC;AAAA,EACH,CAAC;AAEH,QAAM,QAAQ,QAAQ,QAAQ,OAAO,EAAE,YAAY,cAAc;AACjE,QAAM,QAAQ,MAAM,EAAE,OAAO,YAAY;AACvC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,KAAK,CAAC;AAAA,IACjC,CAAC;AAAA,EACH,CAAC;AACD,QACG,QAAQ,MAAM,EACd,SAAS,UAAU,EACnB,eAAe,iBAAiB,EAChC,OAAO,4BAA4B,EACnC,OAAO,OAAO,QAAgB,YAAoD;AACjF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC;AAAA,QACE,MAAM,OAAO,MAAM,KAAK,QAAQ;AAAA,UAC9B,OAAO,OAAO,QAAQ,KAAK;AAAA,UAC3B,GAAI,QAAQ,aAAa,EAAE,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,QACjE,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,QACG,QAAQ,QAAQ,EAChB,eAAe,eAAe,EAC9B,eAAe,6BAA6B,EAC5C,eAAe,gCAAgC,EAC/C,OAAO,eAAe,EACtB,OAAO,8BAA8B,EACrC,OAAO,4BAA4B,EACnC;AAAA,IACC,OAAO,YAOD;AACJ,YAAM,WAAW,OAAO,GAAG,WAAW;AACpC;AAAA,UACE,MAAM,OAAO,MAAM,OAAO;AAAA,YACxB,MAAM,QAAQ;AAAA,YACd,aAAa,QAAQ;AAAA,YACrB,cAAc,OAAO,QAAQ,YAAY;AAAA,YACzC,GAAI,QAAQ,aAAa,EAAE,YAAY,KAAK,IAAI,CAAC;AAAA,YACjD,GAAI,QAAQ,WAAW,EAAE,gBAAgB,OAAO,QAAQ,QAAQ,EAAE,IAAI,CAAC;AAAA,YACvE,GAAI,QAAQ,aAAa,EAAE,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,UACjE,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF,QACG,QAAQ,SAAS,EACjB,SAAS,UAAU,EACnB,SAAS,WAAW,EACpB,OAAO,OAAO,QAAgB,YAAoB;AACjD,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,KAAK,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAAA,IACpD,CAAC;AAAA,EACH,CAAC;AACH,QAAM,QAAQ,SAAS,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAC7E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,QAAQ,MAAM,CAAC;AAAA,IAC1C,CAAC;AAAA,EACH,CAAC;AACD,QACG,QAAQ,UAAU,EAClB,SAAS,UAAU,EACnB,eAAe,0BAA0B,EACzC,eAAe,eAAe,EAC9B;AAAA,IACC,OACE,QACA,YACG;AACH,YAAM,WAAW,OAAO,GAAG,WAAW;AACpC;AAAA,UACE,MAAM,OAAO,MAAM,iBAAiB,QAAQ;AAAA,YAC1C,cAAc,QAAQ;AAAA,YACtB,MAAM,QAAQ;AAAA,UAChB,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF,QACG,QAAQ,eAAe,EACvB,SAAS,UAAU,EACnB,eAAe,oBAAoB,EACnC,OAAO,OAAO,QAAgB,YAAgC;AAC7D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,aAAa,QAAQ,QAAQ,MAAM,CAAC;AAAA,IAC/D,CAAC;AAAA,EACH,CAAC;AACH,QACG,QAAQ,oBAAoB,EAC5B,SAAS,UAAU,EACnB,eAAe,iCAAiC,EAChD,OAAO,OAAO,QAAgB,YAAsC;AACnE,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,kBAAkB,QAAQ,EAAE,cAAc,QAAQ,aAAa,CAAC,CAAC;AAAA,IAC5F,CAAC;AAAA,EACH,CAAC;AACH,QAAM,QAAQ,OAAO,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAC3E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,MAAM,MAAM,CAAC;AAAA,IACxC,CAAC;AAAA,EACH,CAAC;AACD,QACG,QAAQ,MAAM,EACd,SAAS,UAAU,EACnB,OAAO,mBAAmB,EAC1B,OAAO,iBAAiB,EACxB,OAAO,OAAO,QAAgB,YAAiD;AAC9E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC;AAAA,QACE,MAAM,OAAO,MAAM,YAAY,QAAQ;AAAA,UACrC,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;AAAA,UACnD,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QAC1D,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,QAAM,QAAQ,KAAK,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AACzE,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,MAAM,IAAI,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EAClF,CAAC;AACD,QAAM,QAAQ,WAAW,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAC/E,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,MAAM,UAAU,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EACxF,CAAC;AACD,QAAM,QAAQ,sBAAsB,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAC1F,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,MAAM,oBAAoB,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EAClG,CAAC;AACD,QAAM,QAAQ,QAAQ,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAC5E,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,MAAM,iBAAiB,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EAC/F,CAAC;AACD,QACG,QAAQ,QAAQ,EAChB,SAAS,UAAU,EACnB,OAAO,iBAAiB,EACxB,OAAO,mBAAmB,EAC1B,OAAO,OAAO,QAAgB,YAAiD;AAC9E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,OAAO,QAAQ;AAAA,QACtC,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AACH,QAAM,QAAQ,cAAc,EAAE,SAAS,UAAU,EAAE,SAAS,WAAW,EACpE,OAAO,OAAO,QAAgB,YAAoB;AACjD,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,MAAM,sBAAsB,QAAQ,OAAO,CAAC;AAAA,IAAG,CAAC;AAAA,EAC7G,CAAC;AACH,QACG,QAAQ,KAAK,EACb,SAAS,UAAU,EACnB,SAAS,YAAY,EACrB,eAAe,0BAA0B,EACzC,eAAe,mBAAmB,EAClC,eAAe,iBAAiB,EAChC,OAAO,OAAO,QAAgB,UAAkB,YAAkE;AACjH,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,qBAAqB,QAAQ;AAAA,QACpD;AAAA,QAAU,WAAW,QAAQ;AAAA,QAAW,MAAM;AAAA,QAAO,MAAM;AAAA,QAC3D,OAAO,OAAO,QAAQ,KAAK;AAAA,QAAG,UAAU,OAAO,QAAQ,MAAM;AAAA,MAC/D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AACH,QACG,QAAQ,MAAM,EACd,SAAS,UAAU,EACnB,SAAS,YAAY,EACrB,eAAe,0BAA0B,EACzC,eAAe,mBAAmB,EAClC,eAAe,iBAAiB,EAChC,OAAO,OAAO,QAAgB,UAAkB,YAAkE;AACjH,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,qBAAqB,QAAQ;AAAA,QACpD;AAAA,QAAU,WAAW,QAAQ;AAAA,QAAW,MAAM;AAAA,QAAQ,MAAM;AAAA,QAC5D,OAAO,OAAO,QAAQ,KAAK;AAAA,QAAG,UAAU,OAAO,QAAQ,MAAM;AAAA,MAC/D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AACH,QACG,QAAQ,YAAY,EAAE,SAAS,UAAU,EAAE,SAAS,UAAU,EAC9D,eAAe,uBAAuB,EACtC,OAAO,OAAO,QAAgB,QAAgB,YAAkC;AAC/E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,YAAY,QAAQ,EAAE,QAAQ,MAAM,OAAO,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,CAAC;AAAA,IAC3G,CAAC;AAAA,EACH,CAAC;AACH,QACG,QAAQ,aAAa,EAAE,SAAS,UAAU,EAAE,SAAS,UAAU,EAC/D,eAAe,uBAAuB,EACtC,OAAO,OAAO,QAAgB,QAAgB,YAAkC;AAC/E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,YAAY,QAAQ,EAAE,QAAQ,MAAM,QAAQ,UAAU,OAAO,QAAQ,QAAQ,EAAE,CAAC,CAAC;AAAA,IAC5G,CAAC;AAAA,EACH,CAAC;AAEH,UACG,QAAQ,QAAQ,EAAE,SAAS,SAAS,EACpC,OAAO,iBAAiB,EAAE,OAAO,mBAAmB,EACpD,OAAO,OAAO,OAAe,YAAiD;AAC7E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,MAAM,OAAO;AAAA,QACrC,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,UACG,QAAQ,aAAa,EACrB,OAAO,uBAAuB,EAC9B,OAAO,eAAe,EACtB,OAAO,OAAO,YAAkD;AAC/D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,SAAqF,CAAC;AAC5F,UAAI,QAAQ,UAAU;AACpB,eAAO,WAAW,QAAQ;AAAA,MAC5B;AACA,UAAI,QAAQ,MAAM;AAChB,eAAO,OAAO,QAAQ;AAAA,MACxB;AACA,YAAM,MAAM,OAAO,aAAa,IAAI,MAAM,CAAC;AAAA,IAC7C,CAAC;AAAA,EACH,CAAC;AAEH,UAAQ,QAAQ,SAAS,EAAE,SAAS,YAAY,EAAE,OAAO,OAAO,aAAqB;AACnF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,SAAS,IAAI,QAAQ,CAAC;AAAA,IAC3C,CAAC;AAAA,EACH,CAAC;AAED,UAAQ,QAAQ,QAAQ,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAC9E,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,OAAO,OAAO,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EACtF,CAAC;AACD,UAAQ,QAAQ,UAAU,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAChF,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,OAAO,SAAS,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EACxF,CAAC;AACD,UAAQ,QAAQ,WAAW,EAAE,OAAO,YAAY;AAC9C,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,OAAO,UAAU,CAAC;AAAA,IAAG,CAAC;AAAA,EACnF,CAAC;AACD,UAAQ,QAAQ,WAAW,EAAE,OAAO,YAAY;AAC9C,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,OAAO,UAAU,CAAC;AAAA,IAAG,CAAC;AAAA,EACnF,CAAC;AAED,QAAM,YAAY,QAAQ,QAAQ,WAAW,EAAE,YAAY,WAAW;AACtE,YAAU,QAAQ,MAAM,EAAE,OAAO,YAAY;AAC3C,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,UAAU,KAAK,CAAC;AAAA,IAAG,CAAC;AAAA,EACjF,CAAC;AACD,YAAU,QAAQ,KAAK,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAC7E,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,UAAU,IAAI,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EACtF,CAAC;AACD,YAAU,QAAQ,QAAQ,EAAE,SAAS,UAAU,EAAE,OAAO,OAAO,WAAmB;AAChF,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,UAAU,OAAO,MAAM,CAAC;AAAA,IAAG,CAAC;AAAA,EACzF,CAAC;AAED,UAAQ,QAAQ,cAAc,EAAE,OAAO,YAAY;AACjD,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,QAAQ,gBAAgB,CAAC;AAAA,IAAG,CAAC;AAAA,EAC1F,CAAC;AACD,UAAQ,QAAQ,SAAS,EAAE,SAAS,QAAQ,EAAE,OAAO,OAAO,SAAiB;AAC3E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,eAAe,IAA4B,CAAC;AAAA,IACzE,CAAC;AAAA,EACH,CAAC;AACD,UAAQ,QAAQ,SAAS,EAAE,OAAO,YAAY;AAC5C,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,QAAQ,oBAAoB,CAAC;AAAA,IAAG,CAAC;AAAA,EAC9F,CAAC;AAGD,QAAM,eAAe,QAAQ,QAAQ,cAAc,EAAE,YAAY,qBAAqB;AACtF,eAAa,QAAQ,SAAS,EAAE,OAAO,YAAY;AACjD,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,WAAW,CAAC;AAAA,IAC9C,CAAC;AAAA,EACH,CAAC;AACD,eAAa,QAAQ,SAAS,EAAE,SAAS,YAAY,EAAE,OAAO,OAAO,aAAqB;AACxF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,WAAW,QAAQ,CAAC;AAAA,IACtD,CAAC;AAAA,EACH,CAAC;AAGD,QAAM,cAAc,QAAQ,QAAQ,aAAa,EAAE,YAAY,0BAA0B;AACzF,cACG,QAAQ,SAAS,EACjB,OAAO,qBAAqB,gCAAgC,EAC5D,OAAO,yBAAyB,2BAA2B,EAC3D,OAAO,OAAO,YAAoD;AACjE,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC;AAAA,QACE,MAAM,OAAO,YAAY,IAAI;AAAA,UAC3B,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAuC,IAAI,CAAC;AAAA,UACnF,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,QAC3D,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,cACG,QAAQ,UAAU,EAClB,OAAO,qBAAqB,mBAAmB,EAC/C,OAAO,mBAAmB,oBAAoB,EAC9C,OAAO,uBAAuB,iCAAiC,EAC/D,OAAO,OAAO,YAAmE;AAChF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC;AAAA,QACE,MAAM,OAAO,YAAY,YAAY;AAAA,UACnC,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;AAAA,UACnD,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,UACxD,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAA2C,IAAI,CAAC;AAAA,QAC3F,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,cAAY,QAAQ,YAAY,EAC7B,OAAO,qBAAqB,gCAAgC,EAC5D,OAAO,OAAO,YAAiC;AAC9C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC;AAAA,QACE,MAAM,OAAO,YAAY,cAAc;AAAA,UACrC,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAuC,IAAI,CAAC;AAAA,QACrF,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAGH,QAAM,OAAO,QAAQ,QAAQ,MAAM,EAAE,YAAY,cAAc;AAC/D,OAAK,QAAQ,MAAM,EAAE,OAAO,YAAY;AACtC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,KAAK,CAAC;AAAA,IAChC,CAAC;AAAA,EACH,CAAC;AACD,OAAK,QAAQ,QAAQ,EAAE,OAAO,YAAY;AACxC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,OAAO,CAAC;AAAA,IAClC,CAAC;AAAA,EACH,CAAC;AACD,OAAK,QAAQ,KAAK,EAAE,SAAS,SAAS,EAAE,OAAO,OAAO,UAAkB;AACtE,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,IAAI,KAAK,CAAC;AAAA,IACpC,CAAC;AAAA,EACH,CAAC;AACD,OACG,QAAQ,OAAO,EACf,eAAe,iBAAiB,0CAA0C,EAC1E,OAAO,OAAO,YAA8B;AAC3C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,WAAW,EAAE,cAAc,QAAQ,KAA0C,CAAC,CAAC;AAAA,IACzG,CAAC;AAAA,EACH,CAAC;AACH,OAAK,QAAQ,cAAc,EAAE,OAAO,YAAY;AAC9C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,YAAY,CAAC;AAAA,IACvC,CAAC;AAAA,EACH,CAAC;AACD,OAAK,QAAQ,cAAc,EAAE,OAAO,YAAY;AAC9C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,eAAe,CAAC;AAAA,IAC1C,CAAC;AAAA,EACH,CAAC;AACD,OAAK,QAAQ,SAAS,EAAE,SAAS,SAAS,EAAE,OAAO,OAAO,UAAkB;AAC1E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,QAAQ,KAAK,CAAC;AAAA,IACxC,CAAC;AAAA,EACH,CAAC;AACD,OAAK,QAAQ,SAAS,EAAE,OAAO,YAAY;AACzC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,QAAQ,CAAC;AAAA,IACnC,CAAC;AAAA,EACH,CAAC;AACD,OAAK,QAAQ,aAAa,EAAE,OAAO,YAAY;AAC7C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,YAAY,CAAC;AAAA,IACvC,CAAC;AAAA,EACH,CAAC;AACD,OACG,QAAQ,QAAQ,EAChB,SAAS,SAAS,EAClB,OAAO,mBAAmB,YAAY,EACtC,OAAO,qBAAqB,aAAa,EACzC,OAAO,OAAO,OAAe,YAAiD;AAC7E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,UAAU,OAAO;AAAA,QACvC,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AACH,OACG,QAAQ,YAAY,EACpB,SAAS,SAAS,EAClB,OAAO,OAAO,UAAkB;AAC/B,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,cAAc,KAAK,CAAC;AAAA,IAC9C,CAAC;AAAA,EACH,CAAC;AACH,OAAK,QAAQ,QAAQ,EAAE,OAAO,YAAY;AACxC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,KAAK,UAAU,CAAC;AAAA,IACrC,CAAC;AAAA,EACH,CAAC;AAGD,QAAM,QAAQ,QAAQ,QAAQ,OAAO,EAAE,YAAY,qCAAgC;AAEnF,QACG,QAAQ,QAAQ,EAChB,YAAY,mBAAmB,EAC/B,OAAO,mBAAmB,YAAY,EACtC,OAAO,qBAAqB,aAAa,EACzC,OAAO,OAAO,YAAiD;AAC9D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,WAAW;AAAA,QAClC,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,QACG,QAAQ,MAAM,EACd,YAAY,qBAAqB,EACjC,OAAO,mBAAmB,YAAY,EACtC,OAAO,qBAAqB,aAAa,EACzC,OAAO,OAAO,YAAiD;AAC9D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,QAAQ;AAAA,QAC/B,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,QACG,QAAQ,aAAa,EACrB,YAAY,mBAAmB,EAC/B,OAAO,qBAAqB,gCAAgC,EAC5D,OAAO,mBAAmB,aAAa,EACvC,OAAO,OAAO,YAAiD;AAC9D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,eAAe;AAAA,QACtC,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAyC,IAAI,CAAC;AAAA,QACrF,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,MAC1D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,QAAM,QAAQ,OAAO,EAAE,YAAY,uBAAuB,EAAE,OAAO,YAAY;AAC7E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,MAAM,SAAS,CAAC;AAAA,IACrC,CAAC;AAAA,EACH,CAAC;AAGD,QAAM,cAAc,QAAQ,QAAQ,aAAa,EAAE,YAAY,+CAA0C;AAEzG,cACG,QAAQ,MAAM,EACd,YAAY,kBAAkB,EAC9B,OAAO,qBAAqB,iCAAiC,EAC7D,OAAO,mBAAmB,aAAa,EACvC,OAAO,OAAO,YAAiD;AAC9D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,KAAK;AAAA,QAClC,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAA0C,IAAI,CAAC;AAAA,QACtF,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,MAC1D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,cACG,QAAQ,KAAK,EACb,YAAY,wBAAwB,EACpC,SAAS,gBAAgB,EACzB,OAAO,OAAO,iBAAyB;AACtC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,IAAI,YAAY,CAAC;AAAA,IAClD,CAAC;AAAA,EACH,CAAC;AAEH,cACG,QAAQ,UAAU,EAClB,YAAY,2BAA2B,EACvC,SAAS,gBAAgB,EACzB,OAAO,OAAO,iBAAyB;AACtC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,SAAS,YAAY,CAAC;AAAA,IACvD,CAAC;AAAA,EACH,CAAC;AAGH,QAAM,gBAAgB,QAAQ,QAAQ,eAAe,EAAE,YAAY,8CAAyC;AAE5G,gBACG,QAAQ,SAAS,EACjB,YAAY,0BAA0B,EACtC,OAAO,mBAAmB,sCAAsC,EAChE,OAAO,qBAAqB,0CAA0C,EACtE,OAAO,OAAO,YAAiD;AAC9D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,cAAc,WAAW;AAAA,QAC1C,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;AAAA,MACrD,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,gBACG,QAAQ,MAAM,EACd,YAAY,6BAA6B,EACzC,SAAS,kBAAkB,EAC3B,OAAO,OAAO,mBAA2B;AACxC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,OAAO,cAAc,SAAS,cAAc;AAClD,YAAM,EAAE,MAAM,MAAM,eAAe,CAAC;AAAA,IACtC,CAAC;AAAA,EACH,CAAC;AAEH,gBACG,QAAQ,UAAU,EAClB,YAAY,gCAAgC,EAC5C,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,cAAc,YAAY,CAAC;AAAA,IAChD,CAAC;AAAA,EACH,CAAC;AAEH,gBACG,QAAQ,gBAAgB,EACxB,YAAY,kCAAkC,EAC9C,eAAe,mBAAmB,YAAY,EAC9C,eAAe,yBAAyB,0BAA0B,EAClE,OAAO,OAAO,YAAiD;AAC9D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,OAAO,cAAc,cAAc;AAAA,QACvC,OAAO,QAAQ;AAAA,QACf,UAAU,QAAQ;AAAA,MACpB,CAAC;AACD,YAAM,EAAE,YAAY,KAAK,CAAC;AAAA,IAC5B,CAAC;AAAA,EACH,CAAC;AAEH,gBACG,QAAQ,kBAAkB,EAC1B,YAAY,oCAAoC,EAChD,eAAe,mBAAmB,sBAAsB,EACxD,OAAO,OAAO,YAA+B;AAC5C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,OAAO,cAAc,gBAAgB,EAAE,OAAO,QAAQ,MAAM,CAAC;AACnE,YAAM,EAAE,cAAc,KAAK,CAAC;AAAA,IAC9B,CAAC;AAAA,EACH,CAAC;AAGH,QAAM,SAAS,QAAQ,QAAQ,QAAQ,EAAE,YAAY,8DAAyD;AAE9G,SACG,QAAQ,MAAM,EACd,YAAY,2BAA2B,EACvC,OAAO,mBAAmB,+BAA+B,EACzD,OAAO,qBAAqB,0BAA0B,EACtD,OAAO,uBAAuB,2CAA2C,EACzE,OAAO,OAAO,YAAmE;AAChF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,KAAK;AAAA,QAC7B,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,QAC3D,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAAA,MACxD,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,eAAe,EACvB,YAAY,+CAA+C,EAC3D,OAAO,OAAO,YAAoB;AACjC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,IAAI,OAAO,CAAC;AAAA,IACxC,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,aAAa,EACrB,YAAY,8CAA8C,EAC1D,OAAO,iBAAiB,sBAAsB,EAC9C,OAAO,mBAAmB,aAAa,EACvC,OAAO,uBAAuB,wBAAwB,EACtD,OAAO,OAAO,YAAiE;AAC9E,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,eAAe;AAAA,QACvC,GAAI,QAAQ,OAAO,EAAE,MAAM,QAAQ,KAA0B,IAAI,CAAC;AAAA,QAClE,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAAA,MACxD,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,UAAU,EAClB,YAAY,mDAAmD,EAC/D,OAAO,sBAAsB,uBAAuB,EACpD,OAAO,mBAAmB,cAAc,EACxC,OAAO,uBAAuB,wBAAwB,EACtD,OAAO,OAAO,YAAmE;AAChF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,YAAY;AAAA,QACpC,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,QAC3D,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAAA,MACxD,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAGH,QAAM,WAAW,QAAQ,QAAQ,UAAU,EAAE,YAAY,sDAAiD;AAE1G,WACG,QAAQ,MAAM,EACd,YAAY,kCAAkC,EAC9C,OAAO,yBAAyB,oDAAoD,EACpF,OAAO,sBAAsB,6CAA6C,EAC1E,OAAO,mBAAmB,aAAa,EACvC,OAAO,qBAAqB,mBAAmB,EAC/C,OAAO,OAAO,YAAqF;AAClG,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,SAAS,KAAK;AAAA,QAC/B,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,QACzD,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAA8D,IAAI,CAAC;AAAA,QAC1G,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,WACG,QAAQ,SAAS,EACjB,YAAY,kDAAkD,EAC9D,eAAe,iBAAiB,6BAA6B,EAC7D,eAAe,+BAA+B,sBAAsB,EACpE,OAAO,8BAA8B,iCAAiC,EACtE,OAAO,2BAA2B,gDAAgD,EAClF,OAAO,wBAAwB,iCAAiC,EAChE,OAAO,OAAO,YAAmH;AAChI,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,SAAS,OAAO;AAAA,QACjC,aAAa,QAAQ;AAAA,QACrB,aAAa,QAAQ;AAAA,QACrB,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,QACzD,GAAI,QAAQ,eAAe,EAAE,cAAc,QAAQ,aAAa,IAAI,CAAC;AAAA,QACrE,GAAI,QAAQ,YAAY,EAAE,WAAW,QAAQ,UAAuC,IAAI,CAAC;AAAA,MAC3F,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAGH,QAAM,SAAS,QAAQ,QAAQ,QAAQ,EAAE,YAAY,8DAAyD;AAE9G,SACG,QAAQ,MAAM,EACd,YAAY,yDAAyD,EACrE,OAAO,6BAA6B,kEAAkE,EACtG,OAAO,yBAAyB,0DAA0D,EAC1F,OAAO,mBAAmB,0DAA0D,EACpF,OAAO,sBAAsB,oCAAoC,EACjE,OAAO,mBAAmB,aAAa,EACvC,OAAO,OAAO,YAAyG;AACtH,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,SAAS;AAAA,QACjC,GAAI,QAAQ,aAAa,EAAE,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,QAC/D,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,QACzD,GAAI,QAAQ,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,QAChD,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAkD,IAAI,CAAC;AAAA,QAC9F,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,MAC1D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,MAAM,EACd,YAAY,wCAAwC,EACpD,SAAS,WAAW,EACpB,OAAO,OAAO,YAAoB;AACjC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,QAAQ,OAAO,CAAC;AAAA,IAC5C,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,aAAa,EACrB,YAAY,6CAA6C,EACzD,eAAe,iCAAiC,mEAAmE,EACnH,OAAO,6BAA6B,2DAA2D,EAC/F,OAAO,mBAAmB,gDAAgD,EAC1E,OAAO,oCAAoC,wBAAwB,EACnE,OAAO,OAAO,YAAmG;AAChH,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,aAAa;AAAA,QACrC,cAAc,QAAQ,aAAa,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAAA,QAC/D,GAAI,QAAQ,cAAc,QAAQ,SAAS,QAAQ,gBAAgB;AAAA,UACjE,iBAAiB;AAAA,YACf,GAAI,QAAQ,aAAa,EAAE,YAAY,QAAQ,WAAW,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,YAC7F,GAAI,QAAQ,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,YAChD,GAAI,QAAQ,gBAAgB,EAAE,eAAe,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC;AAAA,UAClF;AAAA,QACF,IAAI,CAAC;AAAA,MACP,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,MAAM,EACd,YAAY,iCAAiC,EAC7C,SAAS,WAAW,EACpB,eAAe,iBAAiB,qEAAqE,EACrG,eAAe,iBAAiB,iBAAiB,EACjD,OAAO,sCAAsC,gCAAgC,EAC7E,OAAO,yBAAyB,sBAAsB,EACtD,OAAO,OAAO,SAAiB,YAAwF;AACtH,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,YAAY,SAAS;AAAA,QAC7C,MAAM,QAAQ;AAAA,QACd,MAAM,QAAQ;AAAA,QACd,GAAI,QAAQ,iBAAiB,EAAE,gBAAgB,QAAQ,eAAe,IAAI,CAAC;AAAA,QAC3E,GAAI,QAAQ,WAAW,EAAE,UAAU,KAAK,MAAM,QAAQ,QAAQ,EAA6B,IAAI,CAAC;AAAA,MAClG,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,OAAO,EACf,YAAY,qDAAqD,EACjE,OAAO,iBAAiB,wBAAwB,EAChD,OAAO,mBAAmB,6BAA6B,EACvD,OAAO,OAAO,YAA+C;AAC5D,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,UAAU;AAAA,QAClC,GAAI,QAAQ,OAAO,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAC;AAAA,QAC7C,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,MAC1D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,cAAc,EACtB,YAAY,4CAA4C,EACxD,SAAS,kBAAkB,EAC3B,OAAO,OAAO,mBAA2B;AACxC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,OAAO,gBAAgB,cAAc,CAAC;AAAA,IAC3D,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,WAAW,EACnB,YAAY,oDAAoD,EAChE,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,OAAO,OAAO,iBAAiB;AACrC,YAAM,EAAE,cAAc,KAAK,CAAC;AAAA,IAC9B,CAAC;AAAA,EACH,CAAC;AAGH,QAAM,SAAS,QAAQ,QAAQ,QAAQ,EAAE,YAAY,kEAA6D;AAElH,SACG,QAAQ,QAAQ,EAChB,YAAY,2CAA2C,EACvD,eAAe,kBAAkB,oBAAoB,EACrD,eAAe,oBAAoB,cAAc,EACjD,eAAe,iBAAiB,sBAAsB,EACtD,OAAO,sCAAsC,6BAA6B,EAC1E,OAAO,OAAO,YAAsF;AACnG,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,aAAa;AAAA,QACtC,WAAW,QAAQ;AAAA,QACnB,aAAa,QAAQ;AAAA,QACrB,QAAQ,OAAO,QAAQ,MAAM;AAAA,QAC7B,GAAI,QAAQ,iBAAiB,EAAE,gBAAgB,QAAQ,eAAe,IAAI,CAAC;AAAA,MAC7E,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,MAAM,EACd,YAAY,2BAA2B,EACvC,OAAO,iBAAiB,gCAAgC,EACxD,OAAO,qBAAqB,wEAAwE,EACpG,OAAO,mBAAmB,aAAa,EACvC,OAAO,qBAAqB,cAAc,EAC1C,OAAO,OAAO,YAAiF;AAC9F,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,cAAc;AAAA,QACvC,GAAI,QAAQ,OAAO,EAAE,MAAM,QAAQ,KAA0B,IAAI,CAAC;AAAA,QAClE,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAgF,IAAI,CAAC;AAAA,QAC5H,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,KAAK,EACb,YAAY,oBAAoB,EAChC,SAAS,YAAY,EACrB,OAAO,OAAO,aAAqB;AAClC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,UAAU,QAAQ,CAAC;AAAA,IAChD,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,QAAQ,EAChB,YAAY,4CAA4C,EACxD,SAAS,YAAY,EACrB,OAAO,OAAO,aAAqB;AAClC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,aAAa,QAAQ,CAAC;AAAA,IACnD,CAAC;AAAA,EACH,CAAC;AAEH,SACG,QAAQ,SAAS,EACjB,YAAY,gCAAgC,EAC5C,SAAS,YAAY,EACrB,OAAO,mBAAmB,oBAAoB,EAC9C,OAAO,OAAO,UAAkB,YAAiC;AAChE,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,cAAc,UAAU,QAAQ,MAAM,CAAC;AAAA,IACpE,CAAC;AAAA,EACH,CAAC;AAGH,QAAM,aAAa,QAAQ,QAAQ,YAAY,EAAE,YAAY,6EAAwE;AAErI,aACG,QAAQ,QAAQ,EAChB,YAAY,0DAA0D,EACtE,eAAe,uBAAuB,6BAA6B,EACnE,eAAe,uBAAuB,0EAA0E,EAChH,eAAe,4BAA4B,yBAAyB,EACpE,eAAe,wBAAwB,gCAAgC,EACvE,OAAO,8BAA8B,wCAAwC,EAC7E,OAAO,yBAAyB,6CAA6C,EAC7E,OAAO,mBAAmB,kDAAkD,EAC5E,OAAO,uBAAuB,oCAAoC,EAClE,OAAO,OAAO,YAST;AACJ,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,iBAAiB;AAAA,QAC9C,WAAW,QAAQ;AAAA,QACnB,QAAQ;AAAA,UACN,gBAAgB,QAAQ,YAAY,QAAQ,OAAO,QAAQ,QAAQ,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAAA,UAC/F,gBAAgB,QAAQ,YAAY,UAAa,QAAQ,YAAY,QAAQ,OAAO,QAAQ,QAAQ,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAAA,UAChI,cAAc,QAAQ,UAAU,UAAa,QAAQ,UAAU,QAAQ,OAAO,QAAQ,MAAM,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAAA,QAC1H;AAAA,QACA,QAAQ;AAAA,UACN,aAAa,OAAO,QAAQ,WAAW;AAAA,UACvC,UAAU,OAAO,QAAQ,QAAQ;AAAA,UACjC,eAAe,OAAO,QAAQ,iBAAiB,QAAQ,QAAQ;AAAA,QACjE;AAAA,QACA,GAAI,QAAQ,UAAU,EAAE,WAAW,OAAO,QAAQ,OAAO,EAAE,IAAI,CAAC;AAAA,MAClE,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,aACG,QAAQ,MAAM,EACd,YAAY,uBAAuB,EACnC,OAAO,iBAAiB,oCAAoC,EAC5D,OAAO,qBAAqB,uDAAuD,EACnF,OAAO,mBAAmB,aAAa,EACvC,OAAO,qBAAqB,cAAc,EAC1C,OAAO,OAAO,YAAiF;AAC9F,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,kBAAkB;AAAA,QAC/C,GAAI,QAAQ,OAAO,EAAE,MAAM,QAAQ,KAA8B,IAAI,CAAC;AAAA,QACtE,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAyD,IAAI,CAAC;AAAA,QACrG,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,aACG,QAAQ,KAAK,EACb,YAAY,wBAAwB,EACpC,SAAS,gBAAgB,EACzB,OAAO,OAAO,iBAAyB;AACtC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,cAAc,YAAY,CAAC;AAAA,IAC5D,CAAC;AAAA,EACH,CAAC;AAEH,aACG,QAAQ,QAAQ,EAChB,YAAY,oCAAoC,EAChD,SAAS,gBAAgB,EACzB,OAAO,OAAO,iBAAyB;AACtC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,OAAO,YAAY,iBAAiB,YAAY;AACtD,YAAM,EAAE,SAAS,MAAM,aAAa,CAAC;AAAA,IACvC,CAAC;AAAA,EACH,CAAC;AAEH,aACG,QAAQ,QAAQ,EAChB,YAAY,0CAA0C,EACtD,SAAS,gBAAgB,EACzB,OAAO,OAAO,iBAAyB;AACtC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,iBAAiB,YAAY,CAAC;AAAA,IAC/D,CAAC;AAAA,EACH,CAAC;AAEH,aACG,QAAQ,UAAU,EAClB,YAAY,gDAAgD,EAC5D,OAAO,kCAAkC,yBAAyB,EAClE,OAAO,iBAAiB,oCAAoC,EAC5D,OAAO,mBAAmB,aAAa,EACvC,OAAO,qBAAqB,cAAc,EAC1C,OAAO,OAAO,YAAuF;AACpG,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,YAAY,YAAY;AAAA,QACzC,GAAI,QAAQ,eAAe,EAAE,cAAc,QAAQ,aAAa,IAAI,CAAC;AAAA,QACrE,GAAI,QAAQ,OAAO,EAAE,MAAM,QAAQ,KAA8B,IAAI,CAAC;AAAA,QACtE,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,QACxD,GAAI,QAAQ,SAAS,EAAE,QAAQ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC;AAAA,MAC7D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAGH,QAAM,eAAe,QAAQ,QAAQ,cAAc,EAAE,YAAY,iEAA4D;AAE7H,eACG,QAAQ,SAAS,EACjB,YAAY,mDAAmD,EAC/D,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,WAAW,CAAC;AAAA,IAC9C,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,QAAQ,EAChB,YAAY,wBAAwB,EACpC,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,UAAU,CAAC;AAAA,IAC7C,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,YAAY,EACpB,YAAY,8CAA8C,EAC1D,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,aAAa,CAAC;AAAA,IAChD,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,YAAY,EACpB,YAAY,qCAAqC,EACjD,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,cAAc,CAAC;AAAA,IACjD,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,iBAAiB,EACzB,YAAY,yCAAyC,EACrD,SAAS,eAAe,EACxB,OAAO,OAAO,gBAAwB;AACrC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,eAAe,WAAW,CAAC;AAAA,IAC7D,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,QAAQ,EAChB,YAAY,wCAAwC,EACpD,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,UAAU,CAAC;AAAA,IAC7C,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,aAAa,EACrB,YAAY,0CAA0C,EACtD,SAAS,uBAAuB,8BAA8B,EAC9D,OAAO,OAAO,sBAA8B;AAC3C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,WAAW,iBAAiB,CAAC;AAAA,IAC/D,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,aAAa,EACrB,YAAY,+CAA+C,EAC3D,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,cAAc,CAAC;AAAA,IACjD,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,mBAAmB,EAC3B,YAAY,+CAA+C,EAC3D,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,gBAAgB,CAAC;AAAA,IACnD,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,OAAO,EACf,YAAY,uCAAuC,EACnD,OAAO,YAAY;AAClB,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,YAAY,CAAC;AAAA,IAC/C,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,aAAa,EACrB,YAAY,oBAAoB,EAChC,OAAO,mBAAmB,aAAa,EACvC,OAAO,OAAO,YAAgC;AAC7C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,eAAe;AAAA,QAC7C,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,MAC1D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,eACG,QAAQ,SAAS,EACjB,YAAY,oBAAoB,EAChC,OAAO,mBAAmB,aAAa,EACvC,OAAO,OAAO,YAAgC;AAC7C,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,aAAa,WAAW;AAAA,QACzC,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC;AAAA,MAC1D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAEH,QAAM,UAAU,QAAQ,QAAQ,UAAU,EAAE,YAAY,oBAAoB;AAC5E,UAAQ,QAAQ,MAAM,EAAE,OAAO,YAAY;AACzC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA,IACnC,CAAC;AAAA,EACH,CAAC;AACD,UACG,QAAQ,QAAQ,EAChB,eAAe,iBAAiB,qCAAqC,EACrE,OAAO,qBAAqB,gCAAgC,EAC5D,OAAO,4BAA4B,+CAA+C,EAClF,OAAO,OAAO,YAAuE;AACpF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,OAAO;AAAA,QAChC,MAAM,QAAQ;AAAA,QACd,GAAI,QAAQ,SAAS,EAAE,QAAQ,QAAQ,OAAO,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;AAAA,QACjF,GAAI,QAAQ,gBAAgB,EAAE,eAAe,OAAO,QAAQ,aAAa,EAAE,IAAI,CAAC;AAAA,MAClF,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AACH,UACG,QAAQ,QAAQ,EAChB,SAAS,cAAc,sBAAsB,EAC7C,OAAO,OAAO,aAAqB;AAClC,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,OAAO,QAAQ,OAAO,QAAQ;AACpC,YAAM,EAAE,SAAS,MAAM,SAAS,CAAC;AAAA,IACnC,CAAC;AAAA,EACH,CAAC;AAEH,UAAQ,QAAQ,aAAa,EAAE,YAAY,yBAAyB,EAAE,OAAO,YAAY;AACvF,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,QAAQ,cAAc,CAAC;AAAA,IAAG,CAAC;AAAA,EACxF,CAAC;AAGD,UAAQ,QAAQ,SAAS,EAAE,YAAY,oBAAoB,EAAE,OAAO,YAAY;AAC9E,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,OAAO,QAAQ,CAAC;AAAA,IAAG,CAAC;AAAA,EACjF,CAAC;AAGD,QAAM,UAAU,QAAQ,QAAQ,SAAS,EAAE,YAAY,SAAS;AAChE,UACG,QAAQ,YAAY,EACpB,eAAe,iBAAiB,EAChC,eAAe,6BAA6B,EAC5C,OAAO,uBAAuB,EAC9B,OAAO,OAAO,YAAuE;AACpF,UAAM,WAAW,OAAO,GAAG,WAAW;AACpC,YAAM,MAAM,OAAO,QAAQ,gBAAgB;AAAA,QACzC,OAAO,QAAQ;AAAA,QACf,aAAa,QAAQ;AAAA,QACrB,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAS,IAAI,CAAC;AAAA,MAC3D,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA,EACH,CAAC;AAGH,UAAQ,QAAQ,YAAY,EAAE,YAAY,qBAAqB,EAAE,OAAO,YAAY;AAClF,UAAM,WAAW,OAAO,GAAG,WAAW;AAAE,YAAM,MAAM,OAAO,OAAO,aAAa,CAAC;AAAA,IAAG,CAAC;AAAA,EACtF,CAAC;AAED,SAAO;AACT;AAEA,eAAe,SAAS,MAAoB,OAA8B;AACxE,QAAM,gBAAgB,EAAE,OAAO,KAAK,OAAO,MAAM,CAAC;AAClD,UAAQ,OAAO;AAAA,IACb,GAAG,aAAAA,QAAM,MAAM,mBAAmB,CAAC,OAAO,aAAAA,QAAM,KAAK,mBAAmB,CAAC,CAAC;AAAA;AAAA,EAC5E;AACF;AAEA,eAAe,qBACb,UACA,MACA,SACe;AACf,QAAM,WAAW,OAAO,GAAG,WAAW;AACpC,UAAM,WAAW,MAAM,OAAO,YAAY,WAAW,UAAU;AAAA,MAC7D,WAAW,QAAQ;AAAA,MACnB;AAAA,MACA,MAAM;AAAA,MACN,OAAO,OAAO,QAAQ,KAAK;AAAA,MAC3B,UAAU,OAAO,QAAQ,MAAM;AAAA,IACjC,CAAC;AACD,UAAM,QAAQ;AAAA,EAChB,CAAC;AACH;AAEA,eAAe,YACb,QACA,MACA,aACe;AACf,QAAM,WAAW,OAAO,GAAG,WAAW;AACpC,UAAM,SAAS,MAAM,OAAO,UAAU,MAAM;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,UAAU,OAAO,WAAW;AAAA,IAC9B,CAAC;AACD,UAAM,MAAM;AAAA,EACd,CAAC;AACH;;;AG72CA,eAAe,OAAsB;AACnC,QAAM,UAAU,cAAc;AAC9B,QAAM,QAAQ,WAAW,QAAQ,IAAI;AACvC;AAEA,KAAK,EAAE,MAAM,CAAC,UAAU;AACtB,QAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACrE,UAAQ,OAAO,MAAM,GAAG,OAAO;AAAA,CAAI;AACnC,UAAQ,KAAK,CAAC;AAChB,CAAC;","names":["import_sdk","chalk"]}