iracing-data-client 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/auth/types.ts","../src/auth/errors.ts","../src/auth/constants.ts","../src/auth/crypto.ts","../src/auth/flows/password-limited.ts","../src/auth/flows/authorization-code.ts","../src/auth/flows/refresh.ts","../src/auth/token-manager.ts","../src/client.ts","../src/car/types.ts","../src/car/service.ts","../src/carclass/types.ts","../src/carclass/service.ts","../src/constants/types.ts","../src/constants/service.ts","../src/driver-stats-by-category/types.ts","../src/driver-stats-by-category/service.ts","../src/hosted/types.ts","../src/hosted/service.ts","../src/league/types.ts","../src/league/service.ts","../src/lookup/types.ts","../src/lookup/service.ts","../src/member/types.ts","../src/member/service.ts","../src/results/types.ts","../src/results/service.ts","../src/season/types.ts","../src/season/service.ts","../src/series/types.ts","../src/series/service.ts","../src/stats/types.ts","../src/stats/service.ts","../src/team/types.ts","../src/team/service.ts","../src/time-attack/types.ts","../src/time-attack/service.ts","../src/track/types.ts","../src/track/service.ts","../src/index.ts"],"names":["z","record","z2","z3","z4","z5","z7","z8","z9","z10","z11","z12","z13","z14","z15","z16"],"mappings":"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","file":"index.mjs","sourcesContent":["import * as z from 'zod/mini';\n\n/**\n * Fetch-like function type for HTTP requests.\n * Allows injection of custom fetch implementations for testing.\n */\nexport type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;\n\n/**\n * Zod schema for validating OAuth token responses.\n * Provides runtime validation of iRacing's token endpoint responses.\n */\nexport const TokenResponseSchema = z.object({\n access_token: z.string(),\n token_type: z.literal('Bearer'),\n expires_in: z.number(),\n refresh_token: z.optional(z.string()),\n refresh_token_expires_in: z.optional(z.number()),\n scope: z.optional(z.string()),\n});\n\n/**\n * OAuth token response from iRacing's token endpoint.\n */\nexport type TokenResponse = z.infer<typeof TokenResponseSchema>;\n\n/**\n * Internal token state with computed expiry.\n */\nexport interface TokenState {\n accessToken: string;\n refreshToken: string | null;\n expiresAt: number; // Unix timestamp in seconds\n tokenType: 'Bearer';\n}\n\n/**\n * Callback invoked when tokens are obtained or refreshed.\n * Use this to persist tokens for reuse across sessions.\n */\nexport type OnTokenRefresh = (tokens: TokenResponse) => void | Promise<void>;\n\n/**\n * PKCE code challenge and verifier pair.\n */\nexport interface PKCEPair {\n verifier: string;\n challenge: string;\n}\n\n/**\n * Password Limited OAuth flow configuration.\n *\n * Use for scripts, CLI tools, and backend services running on behalf of\n * the registered client developer only. This is the most common flow for\n * automated data access.\n *\n * @example\n * ```typescript\n * const client = new IRacingDataClient({\n * auth: {\n * type: 'password-limited',\n * clientId: process.env.IRACING_CLIENT_ID,\n * clientSecret: process.env.IRACING_CLIENT_SECRET,\n * username: process.env.IRACING_USERNAME,\n * password: process.env.IRACING_PASSWORD,\n * },\n * });\n * ```\n */\nexport interface PasswordLimitedAuth {\n type: 'password-limited';\n\n /** OAuth client ID issued by iRacing */\n clientId: string;\n\n /** OAuth client secret issued by iRacing */\n clientSecret: string;\n\n /** iRacing account email (must match registered client owner) */\n username: string;\n\n /** iRacing account password */\n password: string;\n\n /**\n * Pre-obtained tokens to skip initial authentication.\n * Useful for reusing tokens across client instances.\n */\n tokens?: {\n accessToken: string;\n refreshToken?: string;\n expiresAt?: number;\n };\n\n /**\n * Called when tokens are obtained or refreshed.\n * Use to persist tokens for reuse across sessions.\n */\n onTokenRefresh?: OnTokenRefresh;\n}\n\n/**\n * Authorization Code OAuth flow configuration.\n *\n * Use for web/desktop applications that need to access iRacing data\n * on behalf of other users. Requires completing the OAuth flow externally\n * before creating the client.\n *\n * @example\n * ```typescript\n * // After completing OAuth flow and obtaining tokens:\n * const client = new IRacingDataClient({\n * auth: {\n * type: 'authorization-code',\n * clientId: process.env.IRACING_CLIENT_ID,\n * clientSecret: process.env.IRACING_CLIENT_SECRET,\n * tokens: {\n * accessToken: savedTokens.access_token,\n * refreshToken: savedTokens.refresh_token,\n * expiresAt: savedTokens.expires_at,\n * },\n * },\n * });\n * ```\n */\nexport interface AuthorizationCodeAuth {\n type: 'authorization-code';\n\n /** OAuth client ID issued by iRacing */\n clientId: string;\n\n /** OAuth client secret issued by iRacing */\n clientSecret: string;\n\n /**\n * Tokens obtained from completing the Authorization Code flow.\n * Required since this flow requires user interaction.\n */\n tokens: {\n accessToken: string;\n refreshToken?: string;\n expiresAt?: number;\n };\n\n /**\n * Called when tokens are refreshed.\n * Use to persist new tokens for the user's session.\n */\n onTokenRefresh?: OnTokenRefresh;\n}\n\n/**\n * Discriminated union of supported authentication strategies.\n */\nexport type AuthConfig = PasswordLimitedAuth | AuthorizationCodeAuth;\n\n/**\n * Type guard for Password Limited authentication.\n */\nexport function isPasswordLimitedAuth(auth: AuthConfig): auth is PasswordLimitedAuth {\n return auth.type === 'password-limited';\n}\n\n/**\n * Type guard for Authorization Code authentication.\n */\nexport function isAuthorizationCodeAuth(auth: AuthConfig): auth is AuthorizationCodeAuth {\n return auth.type === 'authorization-code';\n}\n","/**\n * OAuth error codes returned by iRacing's OAuth server.\n */\nexport type OAuthErrorCode =\n | 'invalid_request'\n | 'invalid_client'\n | 'invalid_grant'\n | 'unauthorized_client'\n | 'unsupported_grant_type'\n | 'invalid_scope'\n | 'rate_limited'\n | 'server_error';\n\n/**\n * Error thrown for OAuth-related failures.\n */\nexport class OAuthError extends Error {\n public override readonly name: string = 'OAuthError';\n\n constructor(\n public readonly code: OAuthErrorCode | string,\n public readonly description?: string,\n public readonly uri?: string\n ) {\n super(description || code);\n }\n\n get isInvalidGrant(): boolean {\n return this.code === 'invalid_grant';\n }\n\n get isInvalidClient(): boolean {\n return this.code === 'invalid_client';\n }\n\n get isRateLimited(): boolean {\n return this.code === 'rate_limited';\n }\n\n get isUnauthorizedClient(): boolean {\n return this.code === 'unauthorized_client';\n }\n}\n\n/**\n * Error thrown when token refresh fails and no recovery is possible.\n */\nexport class TokenRefreshError extends OAuthError {\n public override readonly name: string = 'TokenRefreshError';\n\n constructor(\n code: OAuthErrorCode | string,\n description?: string,\n public readonly cause?: Error\n ) {\n super(code, description);\n }\n}\n","export const OAUTH_ENDPOINTS = {\n authorize: 'https://oauth.iracing.com/oauth2/authorize',\n token: 'https://oauth.iracing.com/oauth2/token',\n} as const;\n\n/** Required scope for iRacing Data API access */\nexport const IRACING_AUTH_SCOPE = 'iracing.auth';\n\nexport const DATA_API_BASE_URL = 'https://members-ng.iracing.com';\n\n/** Buffer time (seconds) before token expiry to trigger refresh */\nexport const TOKEN_REFRESH_BUFFER_SECONDS = 30;\n\n/** Default access token lifetime (10 minutes) */\nexport const DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS = 600;\n\n/** Minimum interval between token requests to avoid rate limiting */\nexport const MIN_TOKEN_REQUEST_INTERVAL_MS = 1000;\n","import type { PKCEPair } from './types';\n\n/**\n * Masks a secret using iRacing's masking algorithm.\n *\n * Both password and client_secret must be masked before transmission.\n * - For password: identifier is the username (email)\n * - For client_secret: identifier is the client_id\n *\n * Algorithm: Base64(SHA256(secret + normalize(identifier)))\n * where normalize = trim + lowercase\n *\n * @param secret - The secret to mask (password or client_secret)\n * @param identifier - The identifier to use (username or client_id)\n * @returns Base64-encoded SHA-256 hash\n *\n * @see https://oauth.iracing.com/oauth2/book/token_endpoint.html\n */\nexport async function maskSecret(secret: string, identifier: string): Promise<string> {\n const normalizedId = identifier.trim().toLowerCase();\n const combined = secret + normalizedId;\n\n const encoder = new TextEncoder();\n const data = encoder.encode(combined);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n\n // Standard Base64 encoding (NOT URL-safe variant)\n return btoa(String.fromCharCode(...hashArray));\n}\n\n/**\n * Masks the password with the username.\n * Convenience wrapper around maskSecret.\n */\nexport async function maskPassword(username: string, password: string): Promise<string> {\n return maskSecret(password, username);\n}\n\n/**\n * Masks the client secret with the client ID.\n * Convenience wrapper around maskSecret.\n */\nexport async function maskClientSecret(clientId: string, clientSecret: string): Promise<string> {\n return maskSecret(clientSecret, clientId);\n}\n\n/**\n * Generates a cryptographically secure random string for PKCE verifier.\n * Uses unreserved URI characters per RFC 7636.\n *\n * @param length - Length of the string (43-128 per RFC 7636, default 64)\n */\nexport function generateRandomString(length: number = 64): string {\n const unreservedChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n const randomValues = new Uint8Array(length);\n crypto.getRandomValues(randomValues);\n return Array.from(randomValues, (byte) => unreservedChars[byte % unreservedChars.length]).join(\n ''\n );\n}\n\n/**\n * Generates a PKCE code verifier and challenge pair.\n * The challenge is the Base64URL-encoded SHA-256 hash of the verifier.\n */\nexport async function generatePKCE(): Promise<PKCEPair> {\n const verifier = generateRandomString(64);\n\n const encoder = new TextEncoder();\n const data = encoder.encode(verifier);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n\n // Base64URL encoding (no padding, URL-safe characters)\n const challenge = btoa(String.fromCharCode(...hashArray))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n\n return { verifier, challenge };\n}\n","import { OAUTH_ENDPOINTS, IRACING_AUTH_SCOPE } from '../constants';\nimport { maskPassword, maskClientSecret } from '../crypto';\nimport { OAuthError } from '../errors';\nimport type { TokenResponse, FetchLike } from '../types';\nimport { TokenResponseSchema } from '../types';\n\nexport interface PasswordLimitedTokenRequest {\n clientId: string;\n clientSecret: string;\n username: string;\n password: string;\n fetchFn: FetchLike;\n}\n\n/**\n * Requests an access token using the Password Limited grant.\n *\n * Both the password and client_secret are masked before transmission:\n * - password: masked with username as identifier\n * - client_secret: masked with client_id as identifier\n */\nexport async function requestPasswordLimitedToken(\n options: PasswordLimitedTokenRequest\n): Promise<TokenResponse> {\n const { clientId, clientSecret, username, password, fetchFn } = options;\n\n // Both password and client_secret must be masked\n const [maskedPassword, maskedClientSecret] = await Promise.all([\n maskPassword(username, password),\n maskClientSecret(clientId, clientSecret),\n ]);\n\n const body = new URLSearchParams({\n grant_type: 'password_limited',\n client_id: clientId,\n client_secret: maskedClientSecret,\n username: username,\n password: maskedPassword,\n scope: IRACING_AUTH_SCOPE,\n });\n\n const response = await fetchFn(OAUTH_ENDPOINTS.token, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: body.toString(),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new OAuthError(data.error, data.error_description, data.error_uri);\n }\n\n // Validate response structure\n return TokenResponseSchema.parse(data);\n}\n","import { OAUTH_ENDPOINTS } from '../constants';\nimport { generatePKCE, maskClientSecret } from '../crypto';\nimport { OAuthError } from '../errors';\nimport type { TokenResponse, PKCEPair, FetchLike } from '../types';\nimport { TokenResponseSchema } from '../types';\n\nexport interface AuthorizationUrlOptions {\n clientId: string;\n redirectUri: string;\n scope?: string;\n state?: string;\n usePKCE?: boolean;\n}\n\nexport interface AuthorizationUrlResult {\n url: string;\n state: string;\n pkce?: PKCEPair;\n}\n\n/**\n * Builds the authorization URL for the Authorization Code flow.\n */\nexport async function buildAuthorizationUrl(\n options: AuthorizationUrlOptions\n): Promise<AuthorizationUrlResult> {\n const { clientId, redirectUri, scope, usePKCE = true } = options;\n const state = options.state ?? crypto.randomUUID();\n\n const params = new URLSearchParams({\n response_type: 'code',\n client_id: clientId,\n redirect_uri: redirectUri,\n state: state,\n });\n\n if (scope) {\n params.set('scope', scope);\n }\n\n let pkce: PKCEPair | undefined;\n if (usePKCE) {\n pkce = await generatePKCE();\n params.set('code_challenge', pkce.challenge);\n params.set('code_challenge_method', 'S256');\n }\n\n return {\n url: `${OAUTH_ENDPOINTS.authorize}?${params.toString()}`,\n state,\n pkce,\n };\n}\n\nexport interface CodeExchangeOptions {\n clientId: string;\n clientSecret: string;\n code: string;\n redirectUri: string;\n codeVerifier?: string;\n fetchFn?: FetchLike;\n}\n\n/**\n * Exchanges an authorization code for tokens.\n * The client_secret is masked with the client_id before transmission.\n */\nexport async function exchangeAuthorizationCode(\n options: CodeExchangeOptions\n): Promise<TokenResponse> {\n const { clientId, clientSecret, code, redirectUri, codeVerifier } = options;\n const fetchFn = options.fetchFn ?? globalThis.fetch;\n\n const maskedSecret = await maskClientSecret(clientId, clientSecret);\n\n const body = new URLSearchParams({\n grant_type: 'authorization_code',\n client_id: clientId,\n client_secret: maskedSecret,\n code: code,\n redirect_uri: redirectUri,\n });\n\n if (codeVerifier) {\n body.set('code_verifier', codeVerifier);\n }\n\n const response = await fetchFn(OAUTH_ENDPOINTS.token, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: body.toString(),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new OAuthError(data.error, data.error_description, data.error_uri);\n }\n\n // Validate response structure\n return TokenResponseSchema.parse(data);\n}\n","import { OAUTH_ENDPOINTS, IRACING_AUTH_SCOPE } from '../constants';\nimport { maskClientSecret } from '../crypto';\nimport { OAuthError } from '../errors';\nimport type { TokenResponse, FetchLike } from '../types';\nimport { TokenResponseSchema } from '../types';\n\nexport interface RefreshTokenRequest {\n clientId: string;\n clientSecret: string;\n refreshToken: string;\n fetchFn: FetchLike;\n}\n\n/**\n * Exchanges a refresh token for new tokens.\n * Note: Refresh tokens are single-use.\n * The client_secret is masked with the client_id before transmission.\n */\nexport async function refreshTokens(options: RefreshTokenRequest): Promise<TokenResponse> {\n const { clientId, clientSecret, refreshToken, fetchFn } = options;\n\n const maskedSecret = await maskClientSecret(clientId, clientSecret);\n\n const body = new URLSearchParams({\n grant_type: 'refresh_token',\n client_id: clientId,\n client_secret: maskedSecret,\n refresh_token: refreshToken,\n scope: IRACING_AUTH_SCOPE,\n });\n\n const response = await fetchFn(OAUTH_ENDPOINTS.token, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: body.toString(),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new OAuthError(data.error, data.error_description, data.error_uri);\n }\n\n // Validate response structure\n return TokenResponseSchema.parse(data);\n}\n","import {\n TOKEN_REFRESH_BUFFER_SECONDS,\n DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS,\n MIN_TOKEN_REQUEST_INTERVAL_MS,\n} from './constants';\nimport { OAuthError, TokenRefreshError } from './errors';\nimport { refreshTokens } from './flows/refresh';\nimport type { TokenState, TokenResponse, OnTokenRefresh, FetchLike } from './types';\n\nexport interface TokenManagerOptions {\n clientId: string;\n clientSecret: string;\n fetchFn: FetchLike;\n onTokenRefresh?: OnTokenRefresh;\n}\n\n/**\n * Manages OAuth token lifecycle including storage, validation, and refresh.\n *\n * Features:\n * - Automatic token refresh before expiry\n * - Concurrent refresh request deduplication\n * - Rate limiting protection\n * - Token persistence callbacks\n */\nexport class TokenManager {\n private tokenState: TokenState | null = null;\n private refreshPromise: Promise<TokenState> | null = null;\n private lastTokenRequest: number = 0;\n\n private readonly clientId: string;\n private readonly clientSecret: string;\n private readonly fetchFn: FetchLike;\n private readonly onTokenRefresh?: OnTokenRefresh;\n\n constructor(options: TokenManagerOptions) {\n this.clientId = options.clientId;\n this.clientSecret = options.clientSecret;\n this.fetchFn = options.fetchFn;\n this.onTokenRefresh = options.onTokenRefresh;\n }\n\n /** Sets token state from a token response */\n setTokens(response: TokenResponse): void {\n const now = Math.floor(Date.now() / 1000);\n this.tokenState = {\n accessToken: response.access_token,\n refreshToken: response.refresh_token ?? null,\n expiresAt: now + (response.expires_in || DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS),\n tokenType: response.token_type,\n };\n }\n\n /** Sets token state from pre-obtained tokens */\n setTokenState(state: TokenState): void {\n this.tokenState = state;\n }\n\n /** Returns true if we have tokens (valid or expired) */\n hasTokens(): boolean {\n return this.tokenState !== null;\n }\n\n /** Returns true if the current access token is valid and not expiring soon */\n isTokenValid(): boolean {\n if (!this.tokenState) return false;\n const now = Math.floor(Date.now() / 1000);\n return this.tokenState.expiresAt > now + TOKEN_REFRESH_BUFFER_SECONDS;\n }\n\n /** Returns true if we can refresh tokens */\n canRefresh(): boolean {\n return this.tokenState?.refreshToken !== null;\n }\n\n /**\n * Gets a valid access token, refreshing if necessary.\n * Handles concurrent requests and rate limiting.\n */\n async getAccessToken(): Promise<string> {\n if (this.isTokenValid()) {\n return this.tokenState!.accessToken;\n }\n\n if (!this.tokenState) {\n throw new OAuthError('invalid_grant', 'No tokens available. Please authenticate first.');\n }\n\n if (!this.canRefresh()) {\n throw new TokenRefreshError(\n 'invalid_grant',\n 'Access token expired and no refresh token available.'\n );\n }\n\n // Deduplicate concurrent refresh requests\n if (!this.refreshPromise) {\n this.refreshPromise = this.executeRefresh();\n }\n\n try {\n const newState = await this.refreshPromise;\n return newState.accessToken;\n } finally {\n this.refreshPromise = null;\n }\n }\n\n /** Clears all stored tokens */\n clearTokens(): void {\n this.tokenState = null;\n }\n\n private async executeRefresh(): Promise<TokenState> {\n // Rate limiting\n const now = Date.now();\n const timeSinceLastRequest = now - this.lastTokenRequest;\n if (timeSinceLastRequest < MIN_TOKEN_REQUEST_INTERVAL_MS) {\n await this.sleep(MIN_TOKEN_REQUEST_INTERVAL_MS - timeSinceLastRequest);\n }\n this.lastTokenRequest = Date.now();\n\n try {\n const response = await refreshTokens({\n clientId: this.clientId,\n clientSecret: this.clientSecret,\n refreshToken: this.tokenState!.refreshToken!,\n fetchFn: this.fetchFn,\n });\n\n this.setTokens(response);\n\n if (this.onTokenRefresh) {\n await Promise.resolve(this.onTokenRefresh(response));\n }\n\n return this.tokenState!;\n } catch (error) {\n if (error instanceof OAuthError) {\n throw new TokenRefreshError(error.code, error.description, error);\n }\n throw error;\n }\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import * as z from 'zod/mini';\nimport { HttpClient, type HttpClientStores, type HttpErrorContext } from '@http-client-toolkit/core';\nimport {\n type AuthConfig,\n type FetchLike,\n isPasswordLimitedAuth,\n isAuthorizationCodeAuth,\n TokenManager,\n requestPasswordLimitedToken,\n OAuthError,\n DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS,\n DATA_API_BASE_URL,\n} from './auth';\n\n/**\n * Configuration options for the iRacing Data Client.\n */\nexport interface IRacingClientOptions {\n /**\n * Authentication configuration.\n * Choose between Password Limited (for scripts) or Authorization Code (for web apps).\n */\n auth: AuthConfig;\n\n /**\n * Custom fetch implementation.\n * Useful for testing or environments without global fetch.\n * @default globalThis.fetch\n */\n fetchFn?: FetchLike;\n\n /**\n * Enable runtime validation of request parameters against Zod schemas.\n * @default true\n */\n validateParams?: boolean;\n\n /**\n * Enable semantic validation for known endpoint parameter combinations.\n * @default true\n */\n validateSemanticParams?: boolean;\n\n /**\n * Optional stores for caching, deduplication, and rate limiting.\n * When omitted, HttpClient operates without stores (same as current behaviour).\n */\n stores?: HttpClientStores;\n}\n\n/**\n * Options for constructing an IRacingError.\n */\nexport interface IRacingErrorOptions {\n status?: number;\n statusText?: string;\n url?: string;\n responseData?: unknown;\n headers?: Headers;\n}\n\n/**\n * Error thrown for iRacing API-level errors.\n */\nexport class IRacingError extends Error {\n public readonly status?: number;\n public readonly statusText?: string;\n public readonly url?: string;\n public readonly responseData?: unknown;\n public readonly headers?: Headers;\n\n constructor(message: string, options: IRacingErrorOptions = {}) {\n super(message);\n this.name = 'IRacingError';\n this.status = options.status;\n this.statusText = options.statusText;\n this.url = options.url;\n this.responseData = options.responseData;\n this.headers = options.headers;\n }\n\n get isMaintenanceMode(): boolean {\n return (\n this.status === 503 &&\n this.responseData != null &&\n typeof this.responseData === 'object' &&\n (this.responseData as Record<string, unknown>).error === 'Site Maintenance'\n );\n }\n\n get isServiceUnavailable(): boolean {\n return this.status === 503 && !this.isMaintenanceMode;\n }\n\n get isRateLimited(): boolean {\n return this.status === 429;\n }\n\n get isUnauthorized(): boolean {\n return this.status === 401;\n }\n}\n\n/**\n * iRacing Data API Client with OAuth2 authentication.\n */\nexport class IRacingClient {\n private readonly userFetchFn: FetchLike;\n private readonly authConfig: AuthConfig;\n private readonly tokenManager: TokenManager;\n private readonly validateParams: boolean;\n private readonly validateSemanticParams: boolean;\n private readonly httpClient: HttpClient;\n\n private validSeasonCarClassPairs: Set<string> | null = null;\n private validTeamSeasonCarClassPairs: Set<string> | null = null;\n\n private authenticationPromise: Promise<void> | null = null;\n\n constructor(options: IRacingClientOptions) {\n this.userFetchFn = options.fetchFn ?? globalThis.fetch.bind(globalThis);\n if (!this.userFetchFn) {\n throw new Error('No fetch available. Pass fetchFn in IRacingClientOptions.');\n }\n\n this.authConfig = options.auth;\n this.validateParams = options.validateParams ?? true;\n this.validateSemanticParams = options.validateSemanticParams ?? true;\n\n // Initialize token manager\n this.tokenManager = new TokenManager({\n clientId: options.auth.clientId,\n clientSecret: options.auth.clientSecret,\n fetchFn: this.userFetchFn,\n onTokenRefresh: options.auth.onTokenRefresh,\n });\n\n // Initialize with pre-obtained tokens if provided\n const tokens = options.auth.tokens;\n\n if (tokens) {\n this.tokenManager.setTokenState({\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken ?? null,\n expiresAt:\n tokens.expiresAt ?? Math.floor(Date.now() / 1000) + DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS,\n tokenType: 'Bearer',\n });\n }\n\n // Create HttpClient with iRacing-specific hooks\n this.httpClient = new HttpClient(\n options.stores,\n {\n fetchFn: this.createFetchFn(),\n requestInterceptor: this.createRequestInterceptor(),\n responseTransformer: (data) => this.mapResponseFromApi(data),\n errorHandler: (context) => this.classifyHttpError(context),\n },\n );\n }\n\n /**\n * Normalizes a fetch-like response into a proper Response object.\n * This ensures compatibility with mocked fetch implementations that return\n * plain objects instead of real Response instances.\n */\n private async normalizeResponse(response: Response): Promise<Response> {\n if (response instanceof Response) {\n return response;\n }\n\n // Handle mock/non-standard response objects\n const mock = response as unknown as {\n ok?: boolean;\n status?: number;\n statusText?: string;\n headers?: { get?: (name: string) => string | null } | Headers;\n json?: () => Promise<unknown>;\n text?: () => Promise<string>;\n };\n\n let body: string;\n if (mock.json) {\n try {\n const data = await mock.json();\n body = JSON.stringify(data);\n } catch {\n body = mock.text ? await mock.text() : '';\n }\n } else if (mock.text) {\n body = await mock.text();\n } else {\n body = '';\n }\n\n const headers = new Headers();\n if (mock.headers) {\n if (mock.headers instanceof Headers) {\n mock.headers.forEach((value, key) => headers.set(key, value));\n } else if (typeof mock.headers.get === 'function') {\n // Try common header names\n for (const name of ['content-type', 'cache-control', 'authorization']) {\n const val = mock.headers.get(name);\n if (val) headers.set(name, val);\n }\n }\n }\n\n return new Response(body, {\n status: mock.status ?? (mock.ok ? 200 : 500),\n statusText: mock.statusText ?? (mock.ok ? 'OK' : 'Internal Server Error'),\n headers,\n });\n }\n\n /**\n * Creates the fetchFn that handles S3 link resolution and CSV responses.\n */\n private createFetchFn(): (url: string, init?: RequestInit) => Promise<Response> {\n return async (url: string, init?: RequestInit): Promise<Response> => {\n const rawResponse = await this.userFetchFn(url, init);\n const response = await this.normalizeResponse(rawResponse);\n\n if (!response.ok) {\n return response; // toolkit handles error detection + body reading\n }\n\n const contentType = response.headers.get('content-type') || '';\n if (!contentType.includes('application/json')) {\n return response;\n }\n\n // Clone to read body without consuming\n const cloned = response.clone();\n const data = await cloned.json();\n\n // Not an S3 link response — return original\n if (!data.link || !data.expires) {\n return response;\n }\n\n // Follow the S3 pre-signed URL\n const rawS3Response = await this.userFetchFn(data.link);\n const s3Response = await this.normalizeResponse(rawS3Response);\n\n if (!s3Response.ok) {\n throw new Error(`Failed to fetch from S3: ${s3Response.statusText}`);\n }\n\n // Calculate max-age from the S3 link's expires field\n const expiresDate = new Date(data.expires);\n const maxAge = Math.max(0, Math.floor((expiresDate.getTime() - Date.now()) / 1000));\n\n // Check if S3 returned CSV\n const s3ContentType = s3Response.headers.get('content-type') || '';\n if (s3ContentType.includes('text/csv') || s3ContentType.includes('text/plain')) {\n const csvText = await s3Response.text();\n const csvPayload = JSON.stringify({\n ContentType: 'csv',\n RawData: csvText,\n Note: 'This endpoint returns CSV data, not JSON',\n });\n\n return new Response(csvPayload, {\n status: 200,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': `max-age=${maxAge}`,\n },\n });\n }\n\n // JSON S3 response — re-wrap with cache headers\n const s3Body = await s3Response.text();\n return new Response(s3Body, {\n status: 200,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': `max-age=${maxAge}`,\n },\n });\n };\n }\n\n /**\n * Creates the requestInterceptor that injects auth headers.\n */\n private createRequestInterceptor(): (url: string, init: RequestInit) => Promise<RequestInit> {\n return async (_url: string, init: RequestInit): Promise<RequestInit> => {\n await this.ensureAuthenticated();\n const authHeaders = await this.getAuthHeaders();\n\n return {\n ...init,\n headers: {\n ...Object.fromEntries(new Headers(init.headers).entries()),\n ...authHeaders,\n },\n };\n };\n }\n\n /**\n * Classifies an HTTP error response into a specific IRacingError.\n * Called by the toolkit's errorHandler — only receives HTTP errors, never network failures.\n */\n private classifyHttpError(context: HttpErrorContext): IRacingError {\n const { status, data, headers } = context.response;\n\n if (status === 503) {\n const isMaintenance =\n data != null &&\n typeof data === 'object' &&\n (data as Record<string, unknown>).error === 'Site Maintenance';\n return new IRacingError(\n isMaintenance\n ? 'iRacing is currently in maintenance mode'\n : 'Service unavailable',\n { status: 503, url: context.url, responseData: data, headers },\n );\n }\n if (status === 429) {\n return new IRacingError(\n 'Rate limit exceeded. Please wait before making more requests.',\n { status: 429, url: context.url, responseData: data, headers },\n );\n }\n if (status === 401) {\n return new IRacingError(\n 'Authentication failed. Please check your OAuth credentials and token state.',\n { status: 401, url: context.url, responseData: data, headers },\n );\n }\n\n return new IRacingError(\n context.message,\n { status, url: context.url, responseData: data, headers },\n );\n }\n\n /**\n * Ensures the client is authenticated before making API requests.\n */\n private async ensureAuthenticated(): Promise<void> {\n if (this.tokenManager.hasTokens()) {\n return;\n }\n\n if (isAuthorizationCodeAuth(this.authConfig)) {\n throw new OAuthError(\n 'invalid_grant',\n 'Authorization Code flow requires tokens. Use buildAuthorizationUrl() and ' +\n 'exchangeAuthorizationCode() to obtain tokens first.'\n );\n }\n\n if (isPasswordLimitedAuth(this.authConfig)) {\n if (!this.authenticationPromise) {\n this.authenticationPromise = this.authenticatePasswordLimited();\n }\n\n try {\n await this.authenticationPromise;\n } finally {\n this.authenticationPromise = null;\n }\n }\n }\n\n private async authenticatePasswordLimited(): Promise<void> {\n if (!isPasswordLimitedAuth(this.authConfig)) {\n throw new Error('Invalid auth config');\n }\n\n const tokens = await requestPasswordLimitedToken({\n clientId: this.authConfig.clientId,\n clientSecret: this.authConfig.clientSecret,\n username: this.authConfig.username,\n password: this.authConfig.password,\n fetchFn: this.userFetchFn,\n });\n\n this.tokenManager.setTokens(tokens);\n\n if (this.authConfig.onTokenRefresh) {\n await Promise.resolve(this.authConfig.onTokenRefresh(tokens));\n }\n }\n\n /**\n * Gets authorization headers for API requests.\n */\n private async getAuthHeaders(): Promise<Record<string, string>> {\n const accessToken = await this.tokenManager.getAccessToken();\n return { Authorization: `Bearer ${accessToken}` };\n }\n\n private buildUrl(endpoint: string, params?: Record<string, unknown>): string {\n const url = new URL(\n endpoint.startsWith('http') ? endpoint : `${DATA_API_BASE_URL}${endpoint}`\n );\n\n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n if (Array.isArray(value)) {\n url.searchParams.append(key, value.join(','));\n } else if (typeof value === 'boolean') {\n url.searchParams.append(key, value ? 'true' : 'false');\n } else {\n url.searchParams.append(key, String(value));\n }\n }\n });\n }\n\n return url.toString();\n }\n\n private mapParamsToApi(params?: Record<string, unknown>): Record<string, unknown> | undefined {\n if (!params) return undefined;\n const mapped: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(params)) {\n const snakeKey = key.replace(/[A-Z]/g, (m) => '_' + m.toLowerCase());\n mapped[snakeKey] = value;\n }\n return mapped;\n }\n\n private mapResponseFromApi(data: unknown): unknown {\n if (data === null || data === undefined) return data;\n\n if (Array.isArray(data)) {\n return data.map((item) => this.mapResponseFromApi(item));\n }\n\n if (typeof data === 'object') {\n const mapped: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(data as Record<string, unknown>)) {\n const camelKey = key\n .replace(/_([a-z0-9])/g, (_, char) => char.toUpperCase())\n .replace(/-([a-z0-9])/g, (_, char) => char.toUpperCase());\n mapped[camelKey] = this.mapResponseFromApi(value);\n }\n return mapped;\n }\n\n return data;\n }\n\n private pairKey(seasonId: number, carClassId: number): string {\n return `${seasonId}|${carClassId}`;\n }\n\n private collectSeasonCarClassPairsFromData(\n data: unknown,\n allPairs: Set<string>,\n teamPairs: Set<string>,\n inheritedSeasonId?: number,\n inheritedTeamSeries?: boolean\n ): void {\n if (data === null || data === undefined) return;\n\n if (Array.isArray(data)) {\n for (const item of data) {\n this.collectSeasonCarClassPairsFromData(\n item,\n allPairs,\n teamPairs,\n inheritedSeasonId,\n inheritedTeamSeries\n );\n }\n return;\n }\n\n if (typeof data !== 'object') return;\n\n const record = data as Record<string, unknown>;\n const seasonId =\n typeof record.seasonId === 'number'\n ? record.seasonId\n : typeof record.season_id === 'number'\n ? record.season_id\n : inheritedSeasonId;\n const isTeamSeries =\n inheritedTeamSeries ||\n (typeof record.maxTeamDrivers === 'number' && record.maxTeamDrivers > 1) ||\n (typeof record.max_team_drivers === 'number' && record.max_team_drivers > 1) ||\n record.driverChanges === true ||\n record.driver_changes === true;\n\n if (seasonId !== undefined && seasonId > 0) {\n const addPair = (value: unknown) => {\n if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) return;\n const key = this.pairKey(seasonId, value);\n allPairs.add(key);\n if (isTeamSeries) {\n teamPairs.add(key);\n }\n };\n\n addPair(record.carClassId);\n addPair(record.car_class_id);\n\n const classArrays: unknown[] = [];\n if (Array.isArray(record.carClassIds)) classArrays.push(record.carClassIds);\n if (Array.isArray(record.car_class_ids)) classArrays.push(record.car_class_ids);\n if (Array.isArray(record.raceWeekCarClassIds)) classArrays.push(record.raceWeekCarClassIds);\n if (Array.isArray(record.race_week_car_class_ids)) classArrays.push(record.race_week_car_class_ids);\n\n for (const classArray of classArrays) {\n for (const value of classArray as unknown[]) {\n addPair(value);\n }\n }\n }\n\n for (const value of Object.values(record)) {\n this.collectSeasonCarClassPairsFromData(value, allPairs, teamPairs, seasonId, isTeamSeries);\n }\n }\n\n private async loadSeasonCarClassPairs(): Promise<void> {\n if (this.validSeasonCarClassPairs && this.validTeamSeasonCarClassPairs) {\n return;\n }\n\n const allPairs = new Set<string>();\n const teamPairs = new Set<string>();\n const seasons = await this.get<unknown>('https://members-ng.iracing.com/data/series/seasons');\n this.collectSeasonCarClassPairsFromData(seasons, allPairs, teamPairs);\n\n this.validSeasonCarClassPairs = allPairs;\n this.validTeamSeasonCarClassPairs = teamPairs;\n }\n\n async ensureSeasonCarClassPair(\n endpointId: string,\n seasonId: number,\n carClassId: number\n ): Promise<void> {\n if (!this.validateSemanticParams) return;\n if (!Number.isFinite(seasonId) || !Number.isFinite(carClassId)) return;\n\n await this.loadSeasonCarClassPairs();\n const key = this.pairKey(seasonId, carClassId);\n\n const preferredSet =\n endpointId === 'stats.season_team_standings' &&\n this.validTeamSeasonCarClassPairs &&\n this.validTeamSeasonCarClassPairs.size > 0\n ? this.validTeamSeasonCarClassPairs\n : this.validSeasonCarClassPairs;\n\n if (!preferredSet || preferredSet.has(key)) {\n return;\n }\n\n throw new IRacingError(\n `Parameter validation failed for ${endpointId}: seasonId=${seasonId} and carClassId=${carClassId} do not form a known valid pair.`,\n {\n status: 400,\n statusText: 'Bad Request',\n responseData: {\n error: 'InvalidParameterCombination',\n endpoint: endpointId,\n seasonId,\n carClassId,\n },\n },\n );\n }\n\n /**\n * Makes a GET request to the iRacing Data API.\n */\n async get<T = unknown>(\n url: string,\n options?: { params?: Record<string, unknown>; schema?: z.ZodMiniType<T> }\n ): Promise<T> {\n // Convert camelCase params to snake_case for the API\n const apiParams = this.mapParamsToApi(options?.params);\n const fullUrl = this.buildUrl(url, apiParams);\n\n // Delegate to HttpClient (handles auth, S3 resolution, caching, case mapping, errors)\n const data = await this.httpClient.get<T>(fullUrl);\n\n // Per-request Zod validation (not an HttpClient concern)\n if (this.validateParams && options?.schema) {\n return options.schema.parse(data);\n }\n\n return data;\n }\n\n /**\n * Returns true if the client has valid tokens.\n */\n isAuthenticated(): boolean {\n return this.tokenManager.hasTokens() && this.tokenManager.isTokenValid();\n }\n\n /**\n * Clears stored tokens, requiring re-authentication on next request.\n */\n clearTokens(): void {\n this.tokenManager.clearTokens();\n }\n}\n","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst CarAssets = z.record(z.string(), z.unknown());\nconst CarGet = z.array(z.object({\n aiEnabled: z.boolean(),\n allowNumberColors: z.boolean(),\n allowNumberFont: z.boolean(),\n allowSponsor1: z.boolean(),\n allowSponsor2: z.boolean(),\n allowWheelColor: z.boolean(),\n awardExempt: z.boolean(),\n carConfigDefs: z.array(z.object({\n carcfg: z.number(),\n cfgSubdir: z.nullable(z.string()),\n customPaintExt: z.nullable(z.string()),\n name: z.string()\n })),\n carConfigs: z.array(z.object({\n carcfg: z.number(),\n trackId: z.optional(z.number()),\n trackType: z.optional(z.number())\n })),\n carDirpath: z.string(),\n carId: z.number(),\n carName: z.string(),\n carNameAbbreviated: z.string(),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n carWeight: z.number(),\n categories: z.array(z.string()),\n created: z.string(),\n firstSale: z.string(),\n folder: z.string(),\n forumUrl: z.optional(z.string()),\n freeWithSubscription: z.boolean(),\n hasHeadlights: z.boolean(),\n hasMultipleDryTireTypes: z.boolean(),\n hasRainCapableTireTypes: z.boolean(),\n hp: z.number(),\n isPsPurchasable: z.boolean(),\n logo: z.nullable(z.string()),\n maxPowerAdjustPct: z.number(),\n maxWeightPenaltyKg: z.number(),\n minPowerAdjustPct: z.number(),\n packageId: z.number(),\n patterns: z.number(),\n price: z.number(),\n priceDisplay: z.optional(z.string()),\n rainEnabled: z.boolean(),\n retired: z.boolean(),\n searchFilters: z.string(),\n sku: z.number(),\n smallImage: z.string(),\n sponsorLogo: z.nullable(z.string()),\n carMake: z.optional(z.string()),\n carModel: z.optional(z.string()),\n paintRules: z.optional(z.record(z.string(), z.unknown())),\n siteUrl: z.optional(z.string())\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type CarAssetsResponse = z.infer<typeof CarAssets>;\nexport type CarGetResponse = z.infer<typeof CarGet>;\n\n// ---- Parameter Schemas ----\n\nconst CarAssetsParamsSchema = z.object({\n});\n\nconst CarGetParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type CarAssetsParams = z.infer<typeof CarAssetsParamsSchema>;\nexport type CarGetParams = z.infer<typeof CarGetParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n CarAssetsParamsSchema,\n CarGetParamsSchema,\n CarAssets,\n CarGet,\n};","import type { IRacingClient } from \"../client\";\nimport type { CarAssetsResponse, CarGetResponse } from \"./types\";\nimport { CarAssets, CarGet } from \"./types\";\n\nexport class CarService {\n constructor(private client: IRacingClient) {}\n\n /**\n * assets\n * @see https://members-ng.iracing.com/data/car/assets\n * @sample car.assets.json\n */\n async assets(): Promise<CarAssetsResponse> {\n return this.client.get<CarAssetsResponse>(\"https://members-ng.iracing.com/data/car/assets\", { schema: CarAssets });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/car/get\n * @sample car.get.json\n */\n async get(): Promise<CarGetResponse> {\n return this.client.get<CarGetResponse>(\"https://members-ng.iracing.com/data/car/get\", { schema: CarGet });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Common Schemas ----\n\nconst CarInClassSchema = z.object({\n carDirpath: z.string(), // maps from: car_dirpath\n carId: z.number(), // maps from: car_id\n rainEnabled: z.boolean(), // maps from: rain_enabled\n retired: z.boolean()\n});\n\n// ---- Response Schemas ----\n\nconst CarclassGet = z.array(z.object({\n carClassId: z.number(),\n carsInClass: z.array(z.object({\n carDirpath: z.string(),\n carId: z.number(),\n rainEnabled: z.boolean(),\n retired: z.boolean()\n })),\n custId: z.number(),\n name: z.string(),\n rainEnabled: z.boolean(),\n relativeSpeed: z.number(),\n shortName: z.string()\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type CarclassGetResponse = z.infer<typeof CarclassGet>;\n\n// ---- Parameter Schemas ----\n\nconst CarclassGetParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type CarclassGetParams = z.infer<typeof CarclassGetParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n CarclassGetParamsSchema,\n CarclassGet,\n};","import type { IRacingClient } from \"../client\";\nimport type { CarclassGetResponse } from \"./types\";\nimport { CarclassGet } from \"./types\";\n\nexport class CarclassService {\n constructor(private client: IRacingClient) {}\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/carclass/get\n * @sample carclass.get.json\n */\n async get(): Promise<CarclassGetResponse> {\n return this.client.get<CarclassGetResponse>(\"https://members-ng.iracing.com/data/carclass/get\", { schema: CarclassGet });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst ConstantsCategories = z.array(z.object({\n label: z.string(),\n value: z.number()\n}));\nconst ConstantsDivisions = z.array(z.object({\n label: z.string(),\n value: z.number()\n}));\nconst ConstantsEventTypes = z.array(z.object({\n label: z.string(),\n value: z.number()\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type ConstantsCategoriesResponse = z.infer<typeof ConstantsCategories>;\nexport type ConstantsDivisionsResponse = z.infer<typeof ConstantsDivisions>;\nexport type ConstantsEventTypesResponse = z.infer<typeof ConstantsEventTypes>;\n\n// ---- Parameter Schemas ----\n\nconst ConstantsCategoriesParamsSchema = z.object({\n});\n\nconst ConstantsDivisionsParamsSchema = z.object({\n});\n\nconst ConstantsEventTypesParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type ConstantsCategoriesParams = z.infer<typeof ConstantsCategoriesParamsSchema>;\nexport type ConstantsDivisionsParams = z.infer<typeof ConstantsDivisionsParamsSchema>;\nexport type ConstantsEventTypesParams = z.infer<typeof ConstantsEventTypesParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n ConstantsCategoriesParamsSchema,\n ConstantsDivisionsParamsSchema,\n ConstantsEventTypesParamsSchema,\n ConstantsCategories,\n ConstantsDivisions,\n ConstantsEventTypes,\n};","import type { IRacingClient } from \"../client\";\nimport type { ConstantsCategoriesResponse, ConstantsDivisionsResponse, ConstantsEventTypesResponse } from \"./types\";\nimport { ConstantsCategories, ConstantsDivisions, ConstantsEventTypes } from \"./types\";\n\nexport class ConstantsService {\n constructor(private client: IRacingClient) {}\n\n /**\n * categories\n * @see https://members-ng.iracing.com/data/constants/categories\n * @sample constants.categories.json\n */\n async categories(): Promise<ConstantsCategoriesResponse> {\n return this.client.get<ConstantsCategoriesResponse>(\"https://members-ng.iracing.com/data/constants/categories\", { schema: ConstantsCategories });\n }\n\n /**\n * divisions\n * @see https://members-ng.iracing.com/data/constants/divisions\n * @sample constants.divisions.json\n */\n async divisions(): Promise<ConstantsDivisionsResponse> {\n return this.client.get<ConstantsDivisionsResponse>(\"https://members-ng.iracing.com/data/constants/divisions\", { schema: ConstantsDivisions });\n }\n\n /**\n * event_types\n * @see https://members-ng.iracing.com/data/constants/event_types\n * @sample constants.event_types.json\n */\n async eventTypes(): Promise<ConstantsEventTypesResponse> {\n return this.client.get<ConstantsEventTypesResponse>(\"https://members-ng.iracing.com/data/constants/event_types\", { schema: ConstantsEventTypes });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst DriverStatsByCategoryOval = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategorySportsCar = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategoryFormulaCar = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategoryRoad = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategoryDirtOval = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategoryDirtRoad = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type DriverStatsByCategoryOvalResponse = z.infer<typeof DriverStatsByCategoryOval>;\nexport type DriverStatsByCategorySportsCarResponse = z.infer<typeof DriverStatsByCategorySportsCar>;\nexport type DriverStatsByCategoryFormulaCarResponse = z.infer<typeof DriverStatsByCategoryFormulaCar>;\nexport type DriverStatsByCategoryRoadResponse = z.infer<typeof DriverStatsByCategoryRoad>;\nexport type DriverStatsByCategoryDirtOvalResponse = z.infer<typeof DriverStatsByCategoryDirtOval>;\nexport type DriverStatsByCategoryDirtRoadResponse = z.infer<typeof DriverStatsByCategoryDirtRoad>;\n\n// ---- Parameter Schemas ----\n\nconst DriverStatsByCategoryOvalParamsSchema = z.object({\n});\n\nconst DriverStatsByCategorySportsCarParamsSchema = z.object({\n});\n\nconst DriverStatsByCategoryFormulaCarParamsSchema = z.object({\n});\n\nconst DriverStatsByCategoryRoadParamsSchema = z.object({\n});\n\nconst DriverStatsByCategoryDirtOvalParamsSchema = z.object({\n});\n\nconst DriverStatsByCategoryDirtRoadParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type DriverStatsByCategoryOvalParams = z.infer<typeof DriverStatsByCategoryOvalParamsSchema>;\nexport type DriverStatsByCategorySportsCarParams = z.infer<typeof DriverStatsByCategorySportsCarParamsSchema>;\nexport type DriverStatsByCategoryFormulaCarParams = z.infer<typeof DriverStatsByCategoryFormulaCarParamsSchema>;\nexport type DriverStatsByCategoryRoadParams = z.infer<typeof DriverStatsByCategoryRoadParamsSchema>;\nexport type DriverStatsByCategoryDirtOvalParams = z.infer<typeof DriverStatsByCategoryDirtOvalParamsSchema>;\nexport type DriverStatsByCategoryDirtRoadParams = z.infer<typeof DriverStatsByCategoryDirtRoadParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n DriverStatsByCategoryOvalParamsSchema,\n DriverStatsByCategorySportsCarParamsSchema,\n DriverStatsByCategoryFormulaCarParamsSchema,\n DriverStatsByCategoryRoadParamsSchema,\n DriverStatsByCategoryDirtOvalParamsSchema,\n DriverStatsByCategoryDirtRoadParamsSchema,\n DriverStatsByCategoryOval,\n DriverStatsByCategorySportsCar,\n DriverStatsByCategoryFormulaCar,\n DriverStatsByCategoryRoad,\n DriverStatsByCategoryDirtOval,\n DriverStatsByCategoryDirtRoad,\n};","import type { IRacingClient } from \"../client\";\nimport type { DriverStatsByCategoryOvalResponse, DriverStatsByCategorySportsCarResponse, DriverStatsByCategoryFormulaCarResponse, DriverStatsByCategoryRoadResponse, DriverStatsByCategoryDirtOvalResponse, DriverStatsByCategoryDirtRoadResponse } from \"./types\";\nimport { DriverStatsByCategoryOval, DriverStatsByCategorySportsCar, DriverStatsByCategoryFormulaCar, DriverStatsByCategoryRoad, DriverStatsByCategoryDirtOval, DriverStatsByCategoryDirtRoad } from \"./types\";\n\nexport class DriverStatsByCategoryService {\n constructor(private client: IRacingClient) {}\n\n /**\n * oval\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/oval\n * @sample driver_stats_by_category.oval.json\n */\n async oval(): Promise<DriverStatsByCategoryOvalResponse> {\n return this.client.get<DriverStatsByCategoryOvalResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/oval\", { schema: DriverStatsByCategoryOval });\n }\n\n /**\n * sports_car\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/sports_car\n * @sample driver_stats_by_category.sports_car.json\n */\n async sportsCar(): Promise<DriverStatsByCategorySportsCarResponse> {\n return this.client.get<DriverStatsByCategorySportsCarResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/sports_car\", { schema: DriverStatsByCategorySportsCar });\n }\n\n /**\n * formula_car\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/formula_car\n * @sample driver_stats_by_category.formula_car.json\n */\n async formulaCar(): Promise<DriverStatsByCategoryFormulaCarResponse> {\n return this.client.get<DriverStatsByCategoryFormulaCarResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/formula_car\", { schema: DriverStatsByCategoryFormulaCar });\n }\n\n /**\n * road\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/road\n * @sample driver_stats_by_category.road.json\n */\n async road(): Promise<DriverStatsByCategoryRoadResponse> {\n return this.client.get<DriverStatsByCategoryRoadResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/road\", { schema: DriverStatsByCategoryRoad });\n }\n\n /**\n * dirt_oval\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/dirt_oval\n * @sample driver_stats_by_category.dirt_oval.json\n */\n async dirtOval(): Promise<DriverStatsByCategoryDirtOvalResponse> {\n return this.client.get<DriverStatsByCategoryDirtOvalResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/dirt_oval\", { schema: DriverStatsByCategoryDirtOval });\n }\n\n /**\n * dirt_road\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/dirt_road\n * @sample driver_stats_by_category.dirt_road.json\n */\n async dirtRoad(): Promise<DriverStatsByCategoryDirtRoadResponse> {\n return this.client.get<DriverStatsByCategoryDirtRoadResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/dirt_road\", { schema: DriverStatsByCategoryDirtRoad });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst HostedCombinedSessions = z.object({\n success: z.boolean(),\n subscribed: z.boolean(),\n sequence: z.number(),\n sessions: z.array(z.object({\n numDrivers: z.number(),\n numSpotters: z.number(),\n numSpectators: z.number(),\n numBroadcasters: z.number(),\n availableReservedBroadcasterSlots: z.number(),\n numSpectatorSlots: z.number(),\n availableSpectatorSlots: z.number(),\n canBroadcast: z.boolean(),\n canWatch: z.boolean(),\n canSpot: z.boolean(),\n elig: z.object({\n sessionFull: z.boolean(),\n canSpot: z.boolean(),\n canWatch: z.boolean(),\n canDrive: z.boolean(),\n hasSessPassword: z.boolean(),\n needsPurchase: z.boolean(),\n ownCar: z.boolean(),\n ownTrack: z.boolean(),\n purchaseSkus: z.array(z.number()),\n registered: z.boolean()\n }),\n driverChanges: z.boolean(),\n restrictViewing: z.boolean(),\n maxUsers: z.number(),\n privateSessionId: z.number(),\n sessionId: z.number(),\n subsessionId: z.number(),\n passwordProtected: z.boolean(),\n sessionName: z.string(),\n openRegExpires: z.string(),\n launchAt: z.string(),\n fullCourseCautions: z.boolean(),\n numFastTows: z.number(),\n rollingStarts: z.boolean(),\n restarts: z.number(),\n multiclassType: z.number(),\n pitsInUse: z.number(),\n carsLeft: z.number(),\n maxDrivers: z.number(),\n hardcoreLevel: z.number(),\n practiceLength: z.number(),\n loneQualify: z.boolean(),\n qualifyLaps: z.number(),\n qualifyLength: z.number(),\n warmupLength: z.number(),\n raceLaps: z.number(),\n raceLength: z.number(),\n timeLimit: z.number(),\n restrictResults: z.boolean(),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n unsportConductRuleMode: z.number(),\n connectionBlackFlag: z.boolean(),\n luckyDog: z.boolean(),\n minTeamDrivers: z.number(),\n maxTeamDrivers: z.number(),\n qualifierMustStartRace: z.boolean(),\n driverChangeRule: z.number(),\n fixedSetup: z.boolean(),\n entryCount: z.number(),\n leagueId: z.number(),\n leagueSeasonId: z.number(),\n sessionType: z.number(),\n orderId: z.number(),\n minLicenseLevel: z.number(),\n maxLicenseLevel: z.number(),\n status: z.number(),\n paceCarId: z.nullable(z.number()),\n paceCarClassId: z.nullable(z.number()),\n numOptLaps: z.number(),\n damageModel: z.number(),\n doNotPaintCars: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n doNotCountCautionLaps: z.boolean(),\n consecCautionsSingleFile: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n noLapperWaveArounds: z.boolean(),\n shortParadeLap: z.boolean(),\n startOnQualTire: z.boolean(),\n telemetryRestriction: z.number(),\n telemetryForceToDisk: z.number(),\n maxAiDrivers: z.number(),\n aiAvoidPlayers: z.boolean(),\n adaptiveAiEnabled: z.boolean(),\n adaptiveAiDifficulty: z.optional(z.number()),\n mustUseDiffTireTypesInRace: z.boolean(),\n startZone: z.boolean(),\n enablePitlaneCollisions: z.boolean(),\n disallowVirtualMirror: z.boolean(),\n maxVisorTearoffs: z.number(),\n categoryId: z.number(),\n category: z.string(),\n sessionFull: z.boolean(),\n host: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n }),\n track: z.object({\n categoryId: z.number(),\n trackId: z.number(),\n trackName: z.string(),\n configName: z.optional(z.string())\n }),\n weather: z.object({\n allowFog: z.boolean(),\n fog: z.optional(z.number()),\n precipOption: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.number(),\n type: z.optional(z.number()),\n version: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number(),\n forecastOptions: z.optional(z.object({\n forecastType: z.number(),\n precipitation: z.number(),\n skies: z.number(),\n stopPrecip: z.number(),\n temperature: z.number(),\n weatherSeed: z.number(),\n windDir: z.number(),\n windSpeed: z.number()\n })),\n weatherSummary: z.optional(z.object({\n maxPrecipRate: z.optional(z.number()),\n maxPrecipRateDesc: z.string(),\n precipChance: z.number(),\n skiesHigh: z.optional(z.number()),\n skiesLow: z.optional(z.number()),\n tempHigh: z.optional(z.number()),\n tempLow: z.optional(z.number()),\n tempUnits: z.optional(z.number()),\n windDir: z.optional(z.number()),\n windHigh: z.optional(z.number()),\n windLow: z.optional(z.number()),\n windUnits: z.optional(z.number())\n })),\n weatherUrl: z.optional(z.string())\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.number(),\n qualifyRubber: z.number(),\n raceRubber: z.number(),\n warmupRubber: z.number()\n }),\n farm: z.object({\n farmId: z.number(),\n displayName: z.string(),\n imagePath: z.string(),\n displayed: z.boolean()\n }),\n admins: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n })),\n allowedTeams: z.array(z.unknown()),\n allowedLeagues: z.array(z.unknown()),\n cars: z.array(z.object({\n carId: z.number(),\n carName: z.string(),\n carClassId: z.number(),\n carClassName: z.string(),\n maxPctFuelFill: z.number(),\n weightPenaltyKg: z.number(),\n powerAdjustPct: z.number(),\n maxDryTireSets: z.number(),\n packageId: z.number(),\n qualSetupId: z.optional(z.number()),\n qualSetupFilename: z.optional(z.string()),\n raceSetupId: z.optional(z.number()),\n raceSetupFilename: z.optional(z.string())\n })),\n countByCarId: z.object({\n 73: z.optional(z.number()),\n 112: z.optional(z.number()),\n 119: z.optional(z.number()),\n 127: z.optional(z.number()),\n 128: z.optional(z.number()),\n 132: z.optional(z.number()),\n 133: z.optional(z.number()),\n 139: z.optional(z.number()),\n 140: z.optional(z.number()),\n 141: z.optional(z.number()),\n 143: z.optional(z.number()),\n 144: z.optional(z.number()),\n 146: z.optional(z.number()),\n 147: z.optional(z.number()),\n 150: z.optional(z.number()),\n 153: z.optional(z.number()),\n 156: z.optional(z.number()),\n 157: z.optional(z.number()),\n 159: z.optional(z.number()),\n 160: z.optional(z.number()),\n 168: z.optional(z.number()),\n 169: z.optional(z.number()),\n 170: z.optional(z.number()),\n 171: z.optional(z.number()),\n 172: z.optional(z.number()),\n 173: z.optional(z.number()),\n 174: z.optional(z.number()),\n 176: z.optional(z.number()),\n 178: z.optional(z.number()),\n 184: z.optional(z.number()),\n 185: z.optional(z.number()),\n 188: z.optional(z.number()),\n 189: z.optional(z.number()),\n 190: z.optional(z.number()),\n 192: z.optional(z.number()),\n 194: z.optional(z.number()),\n 196: z.optional(z.number()),\n 203: z.optional(z.number()),\n 204: z.optional(z.number()),\n 205: z.optional(z.number()),\n 206: z.optional(z.number()),\n 207: z.optional(z.number())\n }),\n countByCarClassId: z.object({\n 0: z.optional(z.number()),\n 2523: z.optional(z.number()),\n 2708: z.optional(z.number()),\n 4011: z.optional(z.number()),\n 4029: z.optional(z.number()),\n 4033: z.optional(z.number()),\n 4091: z.optional(z.number())\n }),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n eventTypes: z.array(z.object({\n eventType: z.number()\n })),\n sessionTypes: z.array(z.object({\n sessionType: z.number()\n })),\n canJoin: z.boolean(),\n sessAdmin: z.boolean(),\n friends: z.array(z.unknown()),\n watched: z.array(z.unknown()),\n endTime: z.string(),\n teamEntryCount: z.number(),\n isHeatRacing: z.boolean(),\n populated: z.boolean(),\n broadcaster: z.boolean(),\n minIr: z.number(),\n maxIr: z.number(),\n sessionDesc: z.optional(z.string()),\n aiMinSkill: z.optional(z.number()),\n aiMaxSkill: z.optional(z.number()),\n aiRosterName: z.optional(z.string()),\n heatSesInfo: z.optional(z.object({\n consolationDeltaMaxFieldSize: z.number(),\n consolationDeltaSessionLaps: z.number(),\n consolationDeltaSessionLengthMinutes: z.number(),\n consolationFirstMaxFieldSize: z.number(),\n consolationFirstSessionLaps: z.number(),\n consolationFirstSessionLengthMinutes: z.number(),\n consolationNumPositionToInvert: z.number(),\n consolationNumToConsolation: z.number(),\n consolationNumToMain: z.number(),\n consolationRunAlways: z.boolean(),\n consolationScoresChampPoints: z.boolean(),\n created: z.string(),\n custId: z.number(),\n heatCautionType: z.number(),\n heatInfoId: z.number(),\n heatInfoName: z.string(),\n heatLaps: z.number(),\n heatLengthMinutes: z.number(),\n heatMaxFieldSize: z.number(),\n heatNumFromEachToMain: z.number(),\n heatNumPositionToInvert: z.number(),\n heatScoresChampPoints: z.boolean(),\n heatSessionMinutesEstimate: z.number(),\n hidden: z.boolean(),\n mainLaps: z.number(),\n mainLengthMinutes: z.number(),\n mainMaxFieldSize: z.number(),\n mainNumPositionToInvert: z.number(),\n maxEntrants: z.number(),\n openPractice: z.boolean(),\n preMainPracticeLengthMinutes: z.number(),\n preQualNumToMain: z.number(),\n preQualPracticeLengthMinutes: z.number(),\n qualCautionType: z.number(),\n qualLaps: z.number(),\n qualLengthMinutes: z.number(),\n qualNumToMain: z.number(),\n qualOpenDelaySeconds: z.number(),\n qualScoresChampPoints: z.boolean(),\n qualScoring: z.number(),\n qualStyle: z.number(),\n raceStyle: z.number()\n })),\n altAssetId: z.optional(z.number()),\n registeredTeams: z.optional(z.array(z.number()))\n })),\n packageId: z.optional(z.number())\n});\nconst HostedSessions = z.object({\n subscribed: z.boolean(),\n sessions: z.array(z.object({\n adaptiveAiEnabled: z.boolean(),\n admins: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n })),\n aiAvoidPlayers: z.boolean(),\n aiMaxSkill: z.optional(z.number()),\n aiMinSkill: z.optional(z.number()),\n aiRosterName: z.optional(z.string()),\n allowedLeagues: z.array(z.unknown()),\n allowedTeams: z.array(z.unknown()),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n cars: z.array(z.object({\n carId: z.number(),\n carName: z.string(),\n carClassId: z.number(),\n carClassName: z.string(),\n maxPctFuelFill: z.number(),\n weightPenaltyKg: z.number(),\n powerAdjustPct: z.number(),\n maxDryTireSets: z.number(),\n qualSetupId: z.optional(z.number()),\n qualSetupFilename: z.optional(z.string()),\n raceSetupId: z.optional(z.number()),\n raceSetupFilename: z.optional(z.string()),\n packageId: z.number()\n })),\n carsLeft: z.number(),\n category: z.string(),\n categoryId: z.number(),\n connectionBlackFlag: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n consecCautionsSingleFile: z.boolean(),\n countByCarClassId: z.object({\n 0: z.optional(z.number()),\n 2523: z.optional(z.number()),\n 2708: z.optional(z.number()),\n 4011: z.optional(z.number()),\n 4029: z.optional(z.number()),\n 4033: z.optional(z.number()),\n 4091: z.optional(z.number())\n }),\n countByCarId: z.object({\n 73: z.optional(z.number()),\n 112: z.optional(z.number()),\n 119: z.optional(z.number()),\n 127: z.optional(z.number()),\n 128: z.optional(z.number()),\n 132: z.optional(z.number()),\n 133: z.optional(z.number()),\n 139: z.optional(z.number()),\n 140: z.optional(z.number()),\n 141: z.optional(z.number()),\n 143: z.optional(z.number()),\n 144: z.optional(z.number()),\n 146: z.optional(z.number()),\n 147: z.optional(z.number()),\n 150: z.optional(z.number()),\n 153: z.optional(z.number()),\n 156: z.optional(z.number()),\n 157: z.optional(z.number()),\n 159: z.optional(z.number()),\n 160: z.optional(z.number()),\n 168: z.optional(z.number()),\n 169: z.optional(z.number()),\n 170: z.optional(z.number()),\n 171: z.optional(z.number()),\n 172: z.optional(z.number()),\n 173: z.optional(z.number()),\n 174: z.optional(z.number()),\n 176: z.optional(z.number()),\n 178: z.optional(z.number()),\n 184: z.optional(z.number()),\n 185: z.optional(z.number()),\n 188: z.optional(z.number()),\n 189: z.optional(z.number()),\n 190: z.optional(z.number()),\n 192: z.optional(z.number()),\n 194: z.optional(z.number()),\n 196: z.optional(z.number()),\n 203: z.optional(z.number()),\n 204: z.optional(z.number()),\n 205: z.optional(z.number()),\n 206: z.optional(z.number()),\n 207: z.optional(z.number())\n }),\n damageModel: z.number(),\n disallowVirtualMirror: z.boolean(),\n doNotCountCautionLaps: z.boolean(),\n doNotPaintCars: z.boolean(),\n driverChangeRule: z.number(),\n driverChanges: z.boolean(),\n elig: z.object({\n sessionFull: z.boolean(),\n canSpot: z.boolean(),\n canWatch: z.boolean(),\n canDrive: z.boolean(),\n hasSessPassword: z.boolean(),\n needsPurchase: z.boolean(),\n ownCar: z.boolean(),\n ownTrack: z.boolean(),\n purchaseSkus: z.array(z.number()),\n registered: z.boolean()\n }),\n enablePitlaneCollisions: z.boolean(),\n entryCount: z.number(),\n eventTypes: z.array(z.object({\n eventType: z.number()\n })),\n farm: z.object({\n farmId: z.number(),\n displayName: z.string(),\n imagePath: z.string(),\n displayed: z.boolean()\n }),\n fixedSetup: z.boolean(),\n fullCourseCautions: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n hardcoreLevel: z.number(),\n host: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n }),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n launchAt: z.string(),\n leagueId: z.number(),\n leagueSeasonId: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n loneQualify: z.boolean(),\n luckyDog: z.boolean(),\n maxAiDrivers: z.number(),\n maxDrivers: z.number(),\n maxIr: z.number(),\n maxLicenseLevel: z.number(),\n maxTeamDrivers: z.number(),\n maxVisorTearoffs: z.number(),\n minIr: z.number(),\n minLicenseLevel: z.number(),\n minTeamDrivers: z.number(),\n multiclassType: z.number(),\n mustUseDiffTireTypesInRace: z.boolean(),\n noLapperWaveArounds: z.boolean(),\n numFastTows: z.number(),\n numOptLaps: z.number(),\n openRegExpires: z.string(),\n orderId: z.number(),\n paceCarClassId: z.nullable(z.number()),\n paceCarId: z.nullable(z.number()),\n passwordProtected: z.boolean(),\n pitsInUse: z.number(),\n practiceLength: z.number(),\n privateSessionId: z.number(),\n qualifierMustStartRace: z.boolean(),\n qualifyLaps: z.number(),\n qualifyLength: z.number(),\n raceLaps: z.number(),\n raceLength: z.number(),\n restarts: z.number(),\n restrictResults: z.boolean(),\n restrictViewing: z.boolean(),\n rollingStarts: z.boolean(),\n sessionDesc: z.optional(z.string()),\n sessionFull: z.boolean(),\n sessionId: z.number(),\n sessionName: z.string(),\n sessionType: z.number(),\n sessionTypes: z.array(z.object({\n sessionType: z.number()\n })),\n shortParadeLap: z.boolean(),\n startOnQualTire: z.boolean(),\n startZone: z.boolean(),\n status: z.number(),\n subsessionId: z.number(),\n teamEntryCount: z.number(),\n telemetryForceToDisk: z.number(),\n telemetryRestriction: z.number(),\n timeLimit: z.number(),\n track: z.object({\n categoryId: z.number(),\n configName: z.optional(z.string()),\n trackId: z.number(),\n trackName: z.string()\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.number(),\n qualifyRubber: z.number(),\n raceRubber: z.number(),\n warmupRubber: z.number()\n }),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n unsportConductRuleMode: z.number(),\n warmupLength: z.number(),\n weather: z.object({\n allowFog: z.boolean(),\n fog: z.optional(z.number()),\n precipOption: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.number(),\n type: z.optional(z.number()),\n version: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number(),\n weatherSummary: z.optional(z.object({\n maxPrecipRateDesc: z.string(),\n precipChance: z.number(),\n maxPrecipRate: z.optional(z.number()),\n skiesHigh: z.optional(z.number()),\n skiesLow: z.optional(z.number()),\n tempHigh: z.optional(z.number()),\n tempLow: z.optional(z.number()),\n tempUnits: z.optional(z.number()),\n windDir: z.optional(z.number()),\n windHigh: z.optional(z.number()),\n windLow: z.optional(z.number()),\n windUnits: z.optional(z.number())\n })),\n weatherUrl: z.optional(z.string()),\n forecastOptions: z.optional(z.object({\n forecastType: z.number(),\n precipitation: z.number(),\n skies: z.number(),\n stopPrecip: z.number(),\n temperature: z.number(),\n weatherSeed: z.number(),\n windDir: z.number(),\n windSpeed: z.number()\n }))\n }),\n heatSesInfo: z.optional(z.object({\n consolationDeltaMaxFieldSize: z.number(),\n consolationDeltaSessionLaps: z.number(),\n consolationDeltaSessionLengthMinutes: z.number(),\n consolationFirstMaxFieldSize: z.number(),\n consolationFirstSessionLaps: z.number(),\n consolationFirstSessionLengthMinutes: z.number(),\n consolationNumPositionToInvert: z.number(),\n consolationNumToConsolation: z.number(),\n consolationNumToMain: z.number(),\n consolationRunAlways: z.boolean(),\n consolationScoresChampPoints: z.boolean(),\n created: z.string(),\n custId: z.number(),\n heatCautionType: z.number(),\n heatInfoId: z.number(),\n heatInfoName: z.string(),\n heatLaps: z.number(),\n heatLengthMinutes: z.number(),\n heatMaxFieldSize: z.number(),\n heatNumFromEachToMain: z.number(),\n heatNumPositionToInvert: z.number(),\n heatScoresChampPoints: z.boolean(),\n heatSessionMinutesEstimate: z.number(),\n hidden: z.boolean(),\n mainLaps: z.number(),\n mainLengthMinutes: z.number(),\n mainMaxFieldSize: z.number(),\n mainNumPositionToInvert: z.number(),\n maxEntrants: z.number(),\n openPractice: z.boolean(),\n preMainPracticeLengthMinutes: z.number(),\n preQualNumToMain: z.number(),\n preQualPracticeLengthMinutes: z.number(),\n qualCautionType: z.number(),\n qualLaps: z.number(),\n qualLengthMinutes: z.number(),\n qualNumToMain: z.number(),\n qualOpenDelaySeconds: z.number(),\n qualScoresChampPoints: z.boolean(),\n qualScoring: z.number(),\n qualStyle: z.number(),\n raceStyle: z.number()\n })),\n adaptiveAiDifficulty: z.optional(z.number()),\n altAssetId: z.optional(z.number()),\n registeredTeams: z.optional(z.array(z.number()))\n })),\n success: z.boolean()\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type HostedCombinedSessionsResponse = z.infer<typeof HostedCombinedSessions>;\nexport type HostedSessionsResponse = z.infer<typeof HostedSessions>;\n\n// ---- Parameter Schemas ----\n\nconst HostedCombinedSessionsParamsSchema = z.object({\n packageId: z.optional(z.number()), // If set, return only sessions using this car or track package ID. // maps to: package_id\n});\n\nconst HostedSessionsParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type HostedCombinedSessionsParams = z.infer<typeof HostedCombinedSessionsParamsSchema>;\nexport type HostedSessionsParams = z.infer<typeof HostedSessionsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n HostedCombinedSessionsParamsSchema,\n HostedSessionsParamsSchema,\n HostedCombinedSessions,\n HostedSessions,\n};","import type { IRacingClient } from \"../client\";\nimport type { HostedCombinedSessionsParams, HostedCombinedSessionsResponse, HostedSessionsResponse } from \"./types\";\nimport { HostedCombinedSessions, HostedSessions } from \"./types\";\n\nexport class HostedService {\n constructor(private client: IRacingClient) {}\n\n /**\n * combined_sessions\n * @see https://members-ng.iracing.com/data/hosted/combined_sessions\n * @sample hosted.combined_sessions.json\n */\n async combinedSessions(params: HostedCombinedSessionsParams): Promise<HostedCombinedSessionsResponse> {\n return this.client.get<HostedCombinedSessionsResponse>(\"https://members-ng.iracing.com/data/hosted/combined_sessions\", { params, schema: HostedCombinedSessions });\n }\n\n /**\n * sessions\n * @see https://members-ng.iracing.com/data/hosted/sessions\n * @sample hosted.sessions.json\n */\n async sessions(): Promise<HostedSessionsResponse> {\n return this.client.get<HostedSessionsResponse>(\"https://members-ng.iracing.com/data/hosted/sessions\", { schema: HostedSessions });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst LeagueCustLeagueSessions = z.object({\n mine: z.boolean(),\n subscribed: z.boolean(),\n sequence: z.number(),\n sessions: z.array(z.object({\n numDrivers: z.number(),\n numSpotters: z.number(),\n numSpectators: z.number(),\n numBroadcasters: z.number(),\n availableReservedBroadcasterSlots: z.number(),\n numSpectatorSlots: z.number(),\n availableSpectatorSlots: z.number(),\n canBroadcast: z.boolean(),\n canWatch: z.boolean(),\n canSpot: z.boolean(),\n elig: z.object({\n sessionFull: z.boolean(),\n canSpot: z.boolean(),\n canWatch: z.boolean(),\n canDrive: z.boolean(),\n hasSessPassword: z.boolean(),\n needsPurchase: z.boolean(),\n ownCar: z.boolean(),\n ownTrack: z.boolean(),\n purchaseSkus: z.array(z.unknown()),\n registered: z.boolean()\n }),\n driverChanges: z.boolean(),\n restrictViewing: z.boolean(),\n maxUsers: z.number(),\n privateSessionId: z.number(),\n sessionId: z.number(),\n subsessionId: z.number(),\n passwordProtected: z.boolean(),\n sessionName: z.string(),\n sessionDesc: z.optional(z.string()),\n openRegExpires: z.string(),\n launchAt: z.string(),\n fullCourseCautions: z.boolean(),\n numFastTows: z.number(),\n rollingStarts: z.boolean(),\n restarts: z.number(),\n multiclassType: z.number(),\n pitsInUse: z.number(),\n carsLeft: z.number(),\n maxDrivers: z.number(),\n hardcoreLevel: z.number(),\n practiceLength: z.number(),\n loneQualify: z.boolean(),\n qualifyLaps: z.number(),\n qualifyLength: z.number(),\n warmupLength: z.number(),\n raceLaps: z.number(),\n raceLength: z.number(),\n timeLimit: z.number(),\n restrictResults: z.boolean(),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n unsportConductRuleMode: z.number(),\n connectionBlackFlag: z.boolean(),\n luckyDog: z.boolean(),\n minTeamDrivers: z.number(),\n maxTeamDrivers: z.number(),\n qualifierMustStartRace: z.boolean(),\n driverChangeRule: z.number(),\n fixedSetup: z.boolean(),\n entryCount: z.number(),\n leagueId: z.number(),\n leagueName: z.string(),\n leagueSeasonId: z.number(),\n leagueSeasonName: z.optional(z.string()),\n sessionType: z.number(),\n orderId: z.number(),\n minLicenseLevel: z.number(),\n maxLicenseLevel: z.number(),\n status: z.number(),\n paceCarId: z.nullable(z.number()),\n paceCarClassId: z.nullable(z.number()),\n numOptLaps: z.number(),\n damageModel: z.number(),\n doNotPaintCars: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n doNotCountCautionLaps: z.boolean(),\n consecCautionsSingleFile: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n noLapperWaveArounds: z.boolean(),\n shortParadeLap: z.boolean(),\n startOnQualTire: z.boolean(),\n telemetryRestriction: z.number(),\n telemetryForceToDisk: z.number(),\n maxAiDrivers: z.number(),\n aiAvoidPlayers: z.boolean(),\n adaptiveAiEnabled: z.boolean(),\n adaptiveAiDifficulty: z.number(),\n mustUseDiffTireTypesInRace: z.boolean(),\n startZone: z.boolean(),\n enablePitlaneCollisions: z.boolean(),\n disallowVirtualMirror: z.boolean(),\n maxVisorTearoffs: z.number(),\n categoryId: z.number(),\n category: z.string(),\n sessionFull: z.boolean(),\n host: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n }),\n track: z.object({\n categoryId: z.number(),\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n }),\n weather: z.object({\n allowFog: z.boolean(),\n fog: z.optional(z.number()),\n precipOption: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.number(),\n type: z.optional(z.number()),\n version: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number(),\n forecastOptions: z.optional(z.object({\n forecastType: z.number(),\n precipitation: z.number(),\n skies: z.number(),\n stopPrecip: z.number(),\n temperature: z.number(),\n weatherSeed: z.number(),\n windDir: z.number(),\n windSpeed: z.number()\n })),\n weatherSummary: z.optional(z.object({\n maxPrecipRate: z.number(),\n maxPrecipRateDesc: z.string(),\n precipChance: z.number(),\n skiesHigh: z.number(),\n skiesLow: z.number(),\n tempHigh: z.number(),\n tempLow: z.number(),\n tempUnits: z.number(),\n windDir: z.number(),\n windHigh: z.number(),\n windLow: z.number(),\n windUnits: z.number()\n })),\n weatherUrl: z.optional(z.string())\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.number(),\n qualifyRubber: z.number(),\n raceRubber: z.number(),\n warmupRubber: z.number()\n }),\n farm: z.object({\n farmId: z.number(),\n displayName: z.string(),\n imagePath: z.string(),\n displayed: z.boolean()\n }),\n admins: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n })),\n allowedTeams: z.array(z.unknown()),\n allowedLeagues: z.array(z.number()),\n cars: z.array(z.object({\n carId: z.number(),\n carName: z.string(),\n carClassId: z.number(),\n carClassName: z.string(),\n maxPctFuelFill: z.number(),\n weightPenaltyKg: z.number(),\n powerAdjustPct: z.number(),\n maxDryTireSets: z.number(),\n packageId: z.number(),\n raceSetupId: z.optional(z.number()),\n raceSetupFilename: z.optional(z.string())\n })),\n countByCarId: z.object({\n 148: z.optional(z.number()),\n 190: z.optional(z.number()),\n 192: z.optional(z.number()),\n 208: z.optional(z.number())\n }),\n countByCarClassId: z.object({\n 0: z.optional(z.number()),\n 3188: z.optional(z.number())\n }),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n eventTypes: z.array(z.object({\n eventType: z.number()\n })),\n sessionTypes: z.array(z.object({\n sessionType: z.number()\n })),\n canJoin: z.boolean(),\n image: z.object({\n smallLogo: z.string(),\n largeLogo: z.string()\n }),\n owner: z.boolean(),\n admin: z.boolean(),\n friends: z.array(z.unknown()),\n watched: z.array(z.unknown()),\n endTime: z.string(),\n teamEntryCount: z.number(),\n isHeatRacing: z.boolean(),\n populated: z.boolean(),\n broadcaster: z.boolean(),\n minIr: z.number(),\n maxIr: z.number()\n })),\n success: z.boolean(),\n packageId: z.optional(z.number())\n});\nconst LeagueDirectory = z.object({\n resultsPage: z.array(z.object({\n leagueId: z.number(),\n ownerId: z.number(),\n leagueName: z.string(),\n created: z.string(),\n about: z.optional(z.string()),\n rosterCount: z.number(),\n recruiting: z.boolean(),\n isAdmin: z.boolean(),\n isMember: z.boolean(),\n pendingApplication: z.boolean(),\n pendingInvitation: z.boolean(),\n owner: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n carNumber: z.nullable(z.string()),\n nickName: z.nullable(z.string())\n }),\n url: z.optional(z.string())\n })),\n success: z.boolean(),\n lowerbound: z.number(),\n upperbound: z.number(),\n rowCount: z.number()\n});\nconst LeagueGet = z.object({\n leagueId: z.number(),\n ownerId: z.number(),\n leagueName: z.string(),\n created: z.string(),\n hidden: z.boolean(),\n message: z.string(),\n about: z.string(),\n recruiting: z.boolean(),\n privateWall: z.boolean(),\n privateRoster: z.boolean(),\n privateSchedule: z.boolean(),\n privateResults: z.boolean(),\n isOwner: z.boolean(),\n isAdmin: z.boolean(),\n rosterCount: z.number(),\n owner: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n carNumber: z.nullable(z.unknown()),\n nickName: z.nullable(z.unknown())\n }),\n image: z.object({\n smallLogo: z.nullable(z.unknown()),\n largeLogo: z.nullable(z.unknown())\n }),\n tags: z.object({\n categorized: z.array(z.object({\n categoryId: z.number(),\n name: z.string(),\n limit: z.nullable(z.number()),\n tags: z.array(z.object({\n tagId: z.number(),\n tagName: z.string()\n }))\n })),\n notCategorized: z.array(z.unknown())\n }),\n leagueApplications: z.array(z.unknown()),\n pendingRequests: z.array(z.unknown()),\n isMember: z.boolean(),\n isApplicant: z.boolean(),\n isInvite: z.boolean(),\n isIgnored: z.boolean(),\n roster: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n owner: z.boolean(),\n admin: z.boolean(),\n leagueMailOptOut: z.boolean(),\n leaguePmOptOut: z.boolean(),\n leagueMemberSince: z.string(),\n carNumber: z.nullable(z.string()),\n nickName: z.nullable(z.string())\n }))\n});\nconst LeagueGetPointsSystems = z.object({\n subscribed: z.boolean(),\n success: z.boolean(),\n pointsSystems: z.array(z.object({\n pointsSystemId: z.number(),\n name: z.string(),\n description: z.string(),\n leagueId: z.number(),\n retired: z.boolean(),\n iracingSystem: z.boolean()\n })),\n seasonId: z.number(),\n leagueId: z.number()\n});\nconst LeagueMembership = z.array(z.object({\n leagueId: z.number(),\n leagueName: z.string(),\n owner: z.boolean(),\n admin: z.boolean(),\n leagueMailOptOut: z.boolean(),\n leaguePmOptOut: z.boolean(),\n carNumber: z.nullable(z.string()),\n nickName: z.nullable(z.string())\n}));\nconst LeagueRoster = z.object({\n type: z.string(),\n data: z.object({\n subscribed: z.boolean(),\n success: z.boolean(),\n rosterCount: z.number(),\n leagueId: z.number()\n }),\n dataUrl: z.string()\n});\nconst LeagueSeasons = z.object({\n subscribed: z.boolean(),\n seasons: z.array(z.object({\n leagueId: z.number(),\n seasonId: z.number(),\n pointsSystemId: z.number(),\n seasonName: z.string(),\n active: z.boolean(),\n hidden: z.boolean(),\n numDrops: z.number(),\n noDropsOnOrAfterRaceNum: z.number(),\n pointsCars: z.array(z.object({\n carId: z.number(),\n carName: z.string()\n })),\n driverPointsCarClasses: z.array(z.object({\n carClassId: z.number(),\n name: z.string(),\n carsInClass: z.array(z.object({\n carId: z.number(),\n carName: z.string()\n }))\n })),\n teamPointsCarClasses: z.array(z.object({\n carClassId: z.number(),\n name: z.string(),\n carsInClass: z.array(z.object({\n carId: z.number(),\n carName: z.string()\n }))\n })),\n pointsSystemName: z.string(),\n pointsSystemDesc: z.string()\n })),\n success: z.boolean(),\n retired: z.boolean(),\n leagueId: z.number()\n});\nconst LeagueSeasonStandings = z.object({\n carClassId: z.number(),\n success: z.boolean(),\n seasonId: z.number(),\n carId: z.number(),\n standings: z.object({\n driverStandings: z.array(z.object({\n rownum: z.number(),\n position: z.number(),\n driver: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n }),\n carNumber: z.nullable(z.string()),\n driverNickname: z.nullable(z.string()),\n wins: z.number(),\n averageStart: z.number(),\n averageFinish: z.number(),\n basePoints: z.number(),\n negativeAdjustments: z.number(),\n positiveAdjustments: z.number(),\n totalAdjustments: z.number(),\n totalPoints: z.number()\n })),\n teamStandings: z.array(z.unknown()),\n driverStandingsCsvUrl: z.string(),\n teamStandingsCsvUrl: z.string()\n }),\n leagueId: z.number()\n});\nconst LeagueSeasonSessions = z.object({\n success: z.boolean(),\n subscribed: z.boolean(),\n leagueId: z.number(),\n seasonId: z.number(),\n sessions: z.array(z.unknown())\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type LeagueCustLeagueSessionsResponse = z.infer<typeof LeagueCustLeagueSessions>;\nexport type LeagueDirectoryResponse = z.infer<typeof LeagueDirectory>;\nexport type LeagueGetResponse = z.infer<typeof LeagueGet>;\nexport type LeagueGetPointsSystemsResponse = z.infer<typeof LeagueGetPointsSystems>;\nexport type LeagueMembershipResponse = z.infer<typeof LeagueMembership>;\nexport type LeagueRosterResponse = z.infer<typeof LeagueRoster>;\nexport type LeagueSeasonsResponse = z.infer<typeof LeagueSeasons>;\nexport type LeagueSeasonStandingsResponse = z.infer<typeof LeagueSeasonStandings>;\nexport type LeagueSeasonSessionsResponse = z.infer<typeof LeagueSeasonSessions>;\n\n// ---- Parameter Schemas ----\n\nconst LeagueCustLeagueSessionsParamsSchema = z.object({\n mine: z.optional(z.boolean()), // If true, return only sessions created by this user.\n packageId: z.optional(z.number()), // If set, return only sessions using this car or track package ID. // maps to: package_id\n});\n\nconst LeagueDirectoryParamsSchema = z.object({\n search: z.optional(z.string()), // Will search against league name, description, owner, and league ID.\n tag: z.optional(z.string()), // One or more tags, comma-separated.\n restrictToMember: z.optional(z.boolean()), // If true include only leagues for which customer is a member. // maps to: restrict_to_member\n restrictToRecruiting: z.optional(z.boolean()), // If true include only leagues which are recruiting. // maps to: restrict_to_recruiting\n restrictToFriends: z.optional(z.boolean()), // If true include only leagues owned by a friend. // maps to: restrict_to_friends\n restrictToWatched: z.optional(z.boolean()), // If true include only leagues owned by a watched member. // maps to: restrict_to_watched\n minimumRosterCount: z.optional(z.number()), // If set include leagues with at least this number of members. // maps to: minimum_roster_count\n maximumRosterCount: z.optional(z.number()), // If set include leagues with no more than this number of members. // maps to: maximum_roster_count\n lowerbound: z.optional(z.number()), // First row of results to return. Defaults to 1.\n upperbound: z.optional(z.number()), // Last row of results to return. Defaults to lowerbound + 39.\n sort: z.optional(z.string()), // One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.\n order: z.optional(z.string()), // One of asc or desc. Defaults to asc.\n});\n\nconst LeagueGetParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n includeLicenses: z.optional(z.boolean()), // For faster responses, only request when necessary. // maps to: include_licenses\n});\n\nconst LeagueGetPointsSystemsParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n seasonId: z.optional(z.number()), // If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. // maps to: season_id\n});\n\nconst LeagueMembershipParamsSchema = z.object({\n custId: z.optional(z.number()), // If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. // maps to: cust_id\n includeLeague: z.optional(z.boolean()), // maps to: include_league\n});\n\nconst LeagueRosterParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n includeLicenses: z.optional(z.boolean()), // For faster responses, only request when necessary. // maps to: include_licenses\n});\n\nconst LeagueSeasonsParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n retired: z.optional(z.boolean()), // If true include seasons which are no longer active.\n});\n\nconst LeagueSeasonStandingsParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n seasonId: z.number(), // maps to: season_id\n carClassId: z.optional(z.number()), // maps to: car_class_id\n carId: z.optional(z.number()), // If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. // maps to: car_id\n});\n\nconst LeagueSeasonSessionsParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n seasonId: z.number(), // maps to: season_id\n resultsOnly: z.optional(z.boolean()), // If true include only sessions for which results are available. // maps to: results_only\n});\n\n// ---- Exported Parameter Types ----\n\nexport type LeagueCustLeagueSessionsParams = z.infer<typeof LeagueCustLeagueSessionsParamsSchema>;\nexport type LeagueDirectoryParams = z.infer<typeof LeagueDirectoryParamsSchema>;\nexport type LeagueGetParams = z.infer<typeof LeagueGetParamsSchema>;\nexport type LeagueGetPointsSystemsParams = z.infer<typeof LeagueGetPointsSystemsParamsSchema>;\nexport type LeagueMembershipParams = z.infer<typeof LeagueMembershipParamsSchema>;\nexport type LeagueRosterParams = z.infer<typeof LeagueRosterParamsSchema>;\nexport type LeagueSeasonsParams = z.infer<typeof LeagueSeasonsParamsSchema>;\nexport type LeagueSeasonStandingsParams = z.infer<typeof LeagueSeasonStandingsParamsSchema>;\nexport type LeagueSeasonSessionsParams = z.infer<typeof LeagueSeasonSessionsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n LeagueCustLeagueSessionsParamsSchema,\n LeagueDirectoryParamsSchema,\n LeagueGetParamsSchema,\n LeagueGetPointsSystemsParamsSchema,\n LeagueMembershipParamsSchema,\n LeagueRosterParamsSchema,\n LeagueSeasonsParamsSchema,\n LeagueSeasonStandingsParamsSchema,\n LeagueSeasonSessionsParamsSchema,\n LeagueCustLeagueSessions,\n LeagueDirectory,\n LeagueGet,\n LeagueGetPointsSystems,\n LeagueMembership,\n LeagueRoster,\n LeagueSeasons,\n LeagueSeasonStandings,\n LeagueSeasonSessions,\n};","import type { IRacingClient } from \"../client\";\nimport type { LeagueCustLeagueSessionsParams, LeagueDirectoryParams, LeagueGetParams, LeagueGetPointsSystemsParams, LeagueMembershipParams, LeagueRosterParams, LeagueSeasonsParams, LeagueSeasonStandingsParams, LeagueSeasonSessionsParams, LeagueCustLeagueSessionsResponse, LeagueDirectoryResponse, LeagueGetResponse, LeagueGetPointsSystemsResponse, LeagueMembershipResponse, LeagueRosterResponse, LeagueSeasonsResponse, LeagueSeasonStandingsResponse, LeagueSeasonSessionsResponse } from \"./types\";\nimport { LeagueCustLeagueSessions, LeagueDirectory, LeagueGet, LeagueGetPointsSystems, LeagueMembership, LeagueRoster, LeagueSeasons, LeagueSeasonStandings, LeagueSeasonSessions } from \"./types\";\n\nexport class LeagueService {\n constructor(private client: IRacingClient) {}\n\n /**\n * cust_league_sessions\n * @see https://members-ng.iracing.com/data/league/cust_league_sessions\n * @sample league.cust_league_sessions.json\n */\n async custLeagueSessions(params: LeagueCustLeagueSessionsParams): Promise<LeagueCustLeagueSessionsResponse> {\n return this.client.get<LeagueCustLeagueSessionsResponse>(\"https://members-ng.iracing.com/data/league/cust_league_sessions\", { params, schema: LeagueCustLeagueSessions });\n }\n\n /**\n * directory\n * @see https://members-ng.iracing.com/data/league/directory\n * @sample league.directory.json\n */\n async directory(params: LeagueDirectoryParams): Promise<LeagueDirectoryResponse> {\n return this.client.get<LeagueDirectoryResponse>(\"https://members-ng.iracing.com/data/league/directory\", { params, schema: LeagueDirectory });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/league/get\n * @sample league.get.json\n */\n async get(params: LeagueGetParams): Promise<LeagueGetResponse> {\n return this.client.get<LeagueGetResponse>(\"https://members-ng.iracing.com/data/league/get\", { params, schema: LeagueGet });\n }\n\n /**\n * get_points_systems\n * @see https://members-ng.iracing.com/data/league/get_points_systems\n * @sample league.get_points_systems.json\n */\n async getPointsSystems(params: LeagueGetPointsSystemsParams): Promise<LeagueGetPointsSystemsResponse> {\n return this.client.get<LeagueGetPointsSystemsResponse>(\"https://members-ng.iracing.com/data/league/get_points_systems\", { params, schema: LeagueGetPointsSystems });\n }\n\n /**\n * membership\n * @see https://members-ng.iracing.com/data/league/membership\n * @sample league.membership.json\n */\n async membership(params: LeagueMembershipParams): Promise<LeagueMembershipResponse> {\n return this.client.get<LeagueMembershipResponse>(\"https://members-ng.iracing.com/data/league/membership\", { params, schema: LeagueMembership });\n }\n\n /**\n * roster\n * @see https://members-ng.iracing.com/data/league/roster\n * @sample league.roster.json\n */\n async roster(params: LeagueRosterParams): Promise<LeagueRosterResponse> {\n return this.client.get<LeagueRosterResponse>(\"https://members-ng.iracing.com/data/league/roster\", { params, schema: LeagueRoster });\n }\n\n /**\n * seasons\n * @see https://members-ng.iracing.com/data/league/seasons\n * @sample league.seasons.json\n */\n async seasons(params: LeagueSeasonsParams): Promise<LeagueSeasonsResponse> {\n return this.client.get<LeagueSeasonsResponse>(\"https://members-ng.iracing.com/data/league/seasons\", { params, schema: LeagueSeasons });\n }\n\n /**\n * season_standings\n * @see https://members-ng.iracing.com/data/league/season_standings\n * @sample league.season_standings.json\n */\n async seasonStandings(params: LeagueSeasonStandingsParams): Promise<LeagueSeasonStandingsResponse> {\n return this.client.get<LeagueSeasonStandingsResponse>(\"https://members-ng.iracing.com/data/league/season_standings\", { params, schema: LeagueSeasonStandings });\n }\n\n /**\n * season_sessions\n * @see https://members-ng.iracing.com/data/league/season_sessions\n * @sample league.season_sessions.json\n */\n async seasonSessions(params: LeagueSeasonSessionsParams): Promise<LeagueSeasonSessionsResponse> {\n return this.client.get<LeagueSeasonSessionsResponse>(\"https://members-ng.iracing.com/data/league/season_sessions\", { params, schema: LeagueSeasonSessions });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst LookupCountries = z.array(z.object({\n countryName: z.string(),\n countryCode: z.string()\n}));\nconst LookupDrivers = z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n}),\n profileDisabled: z.boolean()\n}));\nconst LookupFlairs = z.object({\n success: z.boolean(),\n flairs: z.array(z.object({\n flairId: z.number(),\n flairName: z.string(),\n seq: z.number(),\n flairShortname: z.optional(z.string()),\n countryCode: z.optional(z.string())\n }))\n});\nconst LookupGet = z.array(z.object({\n lookups: z.array(z.unknown()),\n tag: z.string()\n}));\nconst LookupLicenses = z.array(z.object({\n licenseGroup: z.number(),\n groupName: z.string(),\n minNumRaces: z.nullable(z.number()),\n participationCredits: z.number(),\n minSrToFastTrack: z.nullable(z.number()),\n levels: z.array(z.object({\n licenseId: z.number(),\n licenseGroup: z.number(),\n license: z.string(),\n shortName: z.string(),\n licenseLetter: z.string(),\n color: z.string()\n })),\n minNumTt: z.nullable(z.number())\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type LookupCountriesResponse = z.infer<typeof LookupCountries>;\nexport type LookupDriversResponse = z.infer<typeof LookupDrivers>;\nexport type LookupFlairsResponse = z.infer<typeof LookupFlairs>;\nexport type LookupGetResponse = z.infer<typeof LookupGet>;\nexport type LookupLicensesResponse = z.infer<typeof LookupLicenses>;\n\n// ---- Parameter Schemas ----\n\nconst LookupCountriesParamsSchema = z.object({\n});\n\nconst LookupDriversParamsSchema = z.object({\n searchTerm: z.string(), // A cust_id or partial name for which to search. // maps to: search_term\n leagueId: z.optional(z.number()), // Narrow the search to the roster of the given league. // maps to: league_id\n});\n\nconst LookupFlairsParamsSchema = z.object({\n});\n\nconst LookupGetParamsSchema = z.object({\n});\n\nconst LookupLicensesParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type LookupCountriesParams = z.infer<typeof LookupCountriesParamsSchema>;\nexport type LookupDriversParams = z.infer<typeof LookupDriversParamsSchema>;\nexport type LookupFlairsParams = z.infer<typeof LookupFlairsParamsSchema>;\nexport type LookupGetParams = z.infer<typeof LookupGetParamsSchema>;\nexport type LookupLicensesParams = z.infer<typeof LookupLicensesParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n LookupCountriesParamsSchema,\n LookupDriversParamsSchema,\n LookupFlairsParamsSchema,\n LookupGetParamsSchema,\n LookupLicensesParamsSchema,\n LookupCountries,\n LookupDrivers,\n LookupFlairs,\n LookupGet,\n LookupLicenses,\n};","import type { IRacingClient } from \"../client\";\nimport type { LookupDriversParams, LookupCountriesResponse, LookupDriversResponse, LookupFlairsResponse, LookupGetResponse, LookupLicensesResponse } from \"./types\";\nimport { LookupCountries, LookupDrivers, LookupFlairs, LookupGet, LookupLicenses } from \"./types\";\n\nexport class LookupService {\n constructor(private client: IRacingClient) {}\n\n /**\n * countries\n * @see https://members-ng.iracing.com/data/lookup/countries\n * @sample lookup.countries.json\n */\n async countries(): Promise<LookupCountriesResponse> {\n return this.client.get<LookupCountriesResponse>(\"https://members-ng.iracing.com/data/lookup/countries\", { schema: LookupCountries });\n }\n\n /**\n * drivers\n * @see https://members-ng.iracing.com/data/lookup/drivers\n * @sample lookup.drivers.json\n */\n async drivers(params: LookupDriversParams): Promise<LookupDriversResponse> {\n return this.client.get<LookupDriversResponse>(\"https://members-ng.iracing.com/data/lookup/drivers\", { params, schema: LookupDrivers });\n }\n\n /**\n * flairs\n * @see https://members-ng.iracing.com/data/lookup/flairs\n * @sample lookup.flairs.json\n */\n async flairs(): Promise<LookupFlairsResponse> {\n return this.client.get<LookupFlairsResponse>(\"https://members-ng.iracing.com/data/lookup/flairs\", { schema: LookupFlairs });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/lookup/get\n * @sample lookup.get.json\n */\n async get(): Promise<LookupGetResponse> {\n return this.client.get<LookupGetResponse>(\"https://members-ng.iracing.com/data/lookup/get\", { schema: LookupGet });\n }\n\n /**\n * licenses\n * @see https://members-ng.iracing.com/data/lookup/licenses\n * @sample lookup.licenses.json\n */\n async licenses(): Promise<LookupLicensesResponse> {\n return this.client.get<LookupLicensesResponse>(\"https://members-ng.iracing.com/data/lookup/licenses\", { schema: LookupLicenses });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst MemberAwards = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n custId: z.number(),\n awardCount: z.number()\n }),\n dataUrl: z.string()\n});\nconst MemberAwardInstances = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n custId: z.number(),\n awardId: z.number(),\n awardCount: z.number()\n }),\n dataUrl: z.string()\n});\nconst MemberChartData = z.object({\n blackout: z.boolean(),\n categoryId: z.number(),\n chartType: z.number(),\n data: z.array(z.object({\n when: z.string(),\n value: z.number()\n })),\n success: z.boolean(),\n custId: z.number()\n});\nconst MemberGet = z.object({\n success: z.boolean(),\n custIds: z.array(z.number()),\n members: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n lastLogin: z.string(),\n memberSince: z.string(),\n flairId: z.number(),\n flairName: z.string(),\n flairShortname: z.string(),\n ai: z.boolean()\n }))\n});\nconst MemberInfo = z.object({\n custId: z.number(),\n displayName: z.string(),\n firstName: z.string(),\n lastName: z.string(),\n onCarName: z.string(),\n memberSince: z.string(),\n flairId: z.number(),\n flairName: z.string(),\n flairShortname: z.string(),\n flairCountryCode: z.string(),\n lastLogin: z.string(),\n readTc: z.string(),\n readPp: z.string(),\n readCompRules: z.string(),\n flags: z.number(),\n connectionType: z.string(),\n downloadServer: z.string(),\n account: z.object({\n irDollars: z.number(),\n irCredits: z.number(),\n status: z.string(),\n countryRules: z.nullable(z.unknown())\n }),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n suit: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n bodyType: z.number()\n }),\n licenses: z.object({\n oval: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n }),\n sportsCar: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n }),\n formulaCar: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n }),\n dirtOval: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n }),\n dirtRoad: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n })\n }),\n carPackages: z.array(z.object({\n packageId: z.number(),\n contentIds: z.array(z.number())\n })),\n trackPackages: z.array(z.object({\n packageId: z.number(),\n contentIds: z.array(z.number())\n })),\n otherOwnedPackages: z.array(z.number()),\n dev: z.boolean(),\n alphaTester: z.boolean(),\n rainTester: z.boolean(),\n broadcaster: z.boolean(),\n restrictions: z.object({\n\n }),\n hasReadCompRules: z.boolean(),\n hasReadNda: z.boolean(),\n flagsHex: z.string(),\n hundredPctClub: z.boolean(),\n twentyPctDiscount: z.boolean(),\n lastSeason: z.number(),\n hasAdditionalContent: z.boolean(),\n hasReadTc: z.boolean(),\n hasReadPp: z.boolean()\n});\nconst MemberParticipationCredits = z.array(z.object({\n custId: z.number(),\n seasonId: z.number(),\n seriesId: z.number(),\n seriesName: z.string(),\n licenseGroup: z.number(),\n licenseGroupName: z.string(),\n participationCredits: z.number(),\n minWeeks: z.number(),\n weeks: z.number(),\n earnedCredits: z.number(),\n totalCredits: z.number()\n}));\nconst MemberProfile = z.object({\n recentAwards: z.array(z.object({\n memberAwardId: z.number(),\n awardId: z.number(),\n achievement: z.boolean(),\n awardCount: z.number(),\n awardDate: z.string(),\n awardOrder: z.number(),\n awardedDescription: z.string(),\n custId: z.number(),\n description: z.string(),\n groupName: z.string(),\n hasPdf: z.boolean(),\n iconUrlLarge: z.string(),\n iconUrlSmall: z.string(),\n iconUrlUnawarded: z.string(),\n name: z.string(),\n progress: z.optional(z.number()),\n progressLabel: z.optional(z.string()),\n threshold: z.optional(z.number()),\n viewed: z.boolean(),\n weight: z.number(),\n subsessionId: z.optional(z.number())\n })),\n activity: z.object({\n recent30daysCount: z.number(),\n prev30daysCount: z.number(),\n consecutiveWeeks: z.number(),\n mostConsecutiveWeeks: z.number()\n }),\n success: z.boolean(),\n imageUrl: z.string(),\n memberInfo: z.object({\n ai: z.boolean(),\n country: z.nullable(z.string()),\n countryCode: z.string(),\n custId: z.number(),\n displayName: z.string(),\n flairId: z.number(),\n flairName: z.string(),\n flairShortname: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n lastLogin: z.string(),\n licenses: z.array(z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n })),\n memberSince: z.string()\n }),\n disabled: z.boolean(),\n licenseHistory: z.array(z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n seq: z.number()\n })),\n recentEvents: z.array(z.object({\n eventType: z.string(),\n subsessionId: z.number(),\n startTime: z.string(),\n eventId: z.number(),\n eventName: z.string(),\n simsessionType: z.number(),\n startingPosition: z.number(),\n finishPosition: z.number(),\n bestLapTime: z.number(),\n percentRank: z.number(),\n carId: z.number(),\n carName: z.string(),\n logoUrl: z.nullable(z.string()),\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n })\n })),\n custId: z.number(),\n isGenericImage: z.boolean(),\n followCounts: z.object({\n followers: z.number(),\n follows: z.number()\n })\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type MemberAwardsResponse = z.infer<typeof MemberAwards>;\nexport type MemberAwardInstancesResponse = z.infer<typeof MemberAwardInstances>;\nexport type MemberChartDataResponse = z.infer<typeof MemberChartData>;\nexport type MemberGetResponse = z.infer<typeof MemberGet>;\nexport type MemberInfoResponse = z.infer<typeof MemberInfo>;\nexport type MemberParticipationCreditsResponse = z.infer<typeof MemberParticipationCredits>;\nexport type MemberProfileResponse = z.infer<typeof MemberProfile>;\n\n// ---- Parameter Schemas ----\n\nconst MemberAwardsParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst MemberAwardInstancesParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n awardId: z.number(), // maps to: award_id\n});\n\nconst MemberChartDataParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n categoryId: z.number(), // 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road // maps to: category_id\n chartType: z.number(), // 1 - iRating; 2 - TT Rating; 3 - License/SR // maps to: chart_type\n});\n\nconst MemberGetParamsSchema = z.object({\n custIds: z.array(z.number()), // ?cust_ids=2,3,4 // maps to: cust_ids\n includeLicenses: z.optional(z.boolean()), // maps to: include_licenses\n});\n\nconst MemberInfoParamsSchema = z.object({\n});\n\nconst MemberParticipationCreditsParamsSchema = z.object({\n});\n\nconst MemberProfileParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\n// ---- Exported Parameter Types ----\n\nexport type MemberAwardsParams = z.infer<typeof MemberAwardsParamsSchema>;\nexport type MemberAwardInstancesParams = z.infer<typeof MemberAwardInstancesParamsSchema>;\nexport type MemberChartDataParams = z.infer<typeof MemberChartDataParamsSchema>;\nexport type MemberGetParams = z.infer<typeof MemberGetParamsSchema>;\nexport type MemberInfoParams = z.infer<typeof MemberInfoParamsSchema>;\nexport type MemberParticipationCreditsParams = z.infer<typeof MemberParticipationCreditsParamsSchema>;\nexport type MemberProfileParams = z.infer<typeof MemberProfileParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n MemberAwardsParamsSchema,\n MemberAwardInstancesParamsSchema,\n MemberChartDataParamsSchema,\n MemberGetParamsSchema,\n MemberInfoParamsSchema,\n MemberParticipationCreditsParamsSchema,\n MemberProfileParamsSchema,\n MemberAwards,\n MemberAwardInstances,\n MemberChartData,\n MemberGet,\n MemberInfo,\n MemberParticipationCredits,\n MemberProfile,\n};","import type { IRacingClient } from \"../client\";\nimport type { MemberAwardsParams, MemberAwardInstancesParams, MemberChartDataParams, MemberGetParams, MemberProfileParams, MemberAwardsResponse, MemberAwardInstancesResponse, MemberChartDataResponse, MemberGetResponse, MemberInfoResponse, MemberParticipationCreditsResponse, MemberProfileResponse } from \"./types\";\nimport { MemberAwards, MemberAwardInstances, MemberChartData, MemberGet, MemberInfo, MemberParticipationCredits, MemberProfile } from \"./types\";\n\nexport class MemberService {\n constructor(private client: IRacingClient) {}\n\n /**\n * awards\n * @see https://members-ng.iracing.com/data/member/awards\n * @sample member.awards.json\n */\n async awards(params: MemberAwardsParams): Promise<MemberAwardsResponse> {\n return this.client.get<MemberAwardsResponse>(\"https://members-ng.iracing.com/data/member/awards\", { params, schema: MemberAwards });\n }\n\n /**\n * award_instances\n * @see https://members-ng.iracing.com/data/member/award_instances\n * @sample member.award_instances.json\n */\n async awardInstances(params: MemberAwardInstancesParams): Promise<MemberAwardInstancesResponse> {\n return this.client.get<MemberAwardInstancesResponse>(\"https://members-ng.iracing.com/data/member/award_instances\", { params, schema: MemberAwardInstances });\n }\n\n /**\n * chart_data\n * @see https://members-ng.iracing.com/data/member/chart_data\n * @sample member.chart_data.json\n */\n async chartData(params: MemberChartDataParams): Promise<MemberChartDataResponse> {\n return this.client.get<MemberChartDataResponse>(\"https://members-ng.iracing.com/data/member/chart_data\", { params, schema: MemberChartData });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/member/get\n * @sample member.get.json\n */\n async get(params: MemberGetParams): Promise<MemberGetResponse> {\n return this.client.get<MemberGetResponse>(\"https://members-ng.iracing.com/data/member/get\", { params, schema: MemberGet });\n }\n\n /**\n * info\n * @see https://members-ng.iracing.com/data/member/info\n * @sample member.info.json\n */\n async info(): Promise<MemberInfoResponse> {\n return this.client.get<MemberInfoResponse>(\"https://members-ng.iracing.com/data/member/info\", { schema: MemberInfo });\n }\n\n /**\n * participation_credits\n * @see https://members-ng.iracing.com/data/member/participation_credits\n * @sample member.participation_credits.json\n */\n async participationCredits(): Promise<MemberParticipationCreditsResponse> {\n return this.client.get<MemberParticipationCreditsResponse>(\"https://members-ng.iracing.com/data/member/participation_credits\", { schema: MemberParticipationCredits });\n }\n\n /**\n * profile\n * @see https://members-ng.iracing.com/data/member/profile\n * @sample member.profile.json\n */\n async profile(params: MemberProfileParams): Promise<MemberProfileResponse> {\n return this.client.get<MemberProfileResponse>(\"https://members-ng.iracing.com/data/member/profile\", { params, schema: MemberProfile });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst ResultsGet = z.object({\n subsessionId: z.number(),\n allowedLicenses: z.array(z.object({\n groupName: z.string(),\n licenseGroup: z.number(),\n maxLicenseLevel: z.number(),\n minLicenseLevel: z.number(),\n parentId: z.number()\n })),\n associatedSubsessionIds: z.array(z.number()),\n canProtest: z.boolean(),\n carClasses: z.array(z.object({\n carClassId: z.number(),\n shortName: z.string(),\n name: z.string(),\n strengthOfField: z.number(),\n numEntries: z.number(),\n carsInClass: z.array(z.object({\n carId: z.number()\n }))\n })),\n cautionType: z.number(),\n cooldownMinutes: z.number(),\n cornersPerLap: z.number(),\n damageModel: z.number(),\n driverChangeParam1: z.number(),\n driverChangeParam2: z.number(),\n driverChangeRule: z.number(),\n driverChanges: z.boolean(),\n endTime: z.string(),\n eventAverageLap: z.number(),\n eventBestLapTime: z.number(),\n eventLapsComplete: z.number(),\n eventStrengthOfField: z.number(),\n eventType: z.number(),\n eventTypeName: z.string(),\n heatInfoId: z.number(),\n licenseCategory: z.string(),\n licenseCategoryId: z.number(),\n limitMinutes: z.number(),\n maxTeamDrivers: z.number(),\n maxWeeks: z.number(),\n minTeamDrivers: z.number(),\n numCautionLaps: z.number(),\n numCautions: z.number(),\n numDrivers: z.number(),\n numLapsForQualAverage: z.number(),\n numLapsForSoloAverage: z.number(),\n numLeadChanges: z.number(),\n officialSession: z.boolean(),\n pointsType: z.string(),\n privateSessionId: z.number(),\n raceWeekNum: z.number(),\n resultsRestricted: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonQuarter: z.number(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n seriesId: z.number(),\n seriesLogo: z.string(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n sessionId: z.number(),\n sessionResults: z.array(z.object({\n simsessionNumber: z.number(),\n simsessionName: z.string(),\n simsessionType: z.number(),\n simsessionTypeName: z.string(),\n simsessionSubtype: z.number(),\n results: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n aggregateChampPoints: z.number(),\n ai: z.boolean(),\n averageLap: z.number(),\n bestLapNum: z.number(),\n bestLapTime: z.number(),\n bestNlapsNum: z.number(),\n bestNlapsTime: z.number(),\n bestQualLapAt: z.string(),\n bestQualLapNum: z.number(),\n bestQualLapTime: z.number(),\n carClassId: z.number(),\n carClassName: z.string(),\n carClassShortName: z.string(),\n carId: z.number(),\n carName: z.string(),\n carcfg: z.number(),\n champPoints: z.number(),\n classInterval: z.number(),\n countryCode: z.string(),\n division: z.number(),\n divisionName: z.string(),\n dropRace: z.boolean(),\n finishPosition: z.number(),\n finishPositionInClass: z.number(),\n flairId: z.number(),\n flairName: z.string(),\n flairShortname: z.string(),\n friend: z.boolean(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n incidents: z.number(),\n interval: z.number(),\n lapsComplete: z.number(),\n lapsLead: z.number(),\n leagueAggPoints: z.number(),\n leaguePoints: z.number(),\n licenseChangeOval: z.number(),\n licenseChangeRoad: z.number(),\n livery: z.object({\n carId: z.number(),\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n numberFont: z.number(),\n numberColor1: z.string(),\n numberColor2: z.string(),\n numberColor3: z.string(),\n numberSlant: z.number(),\n sponsor1: z.number(),\n sponsor2: z.number(),\n carNumber: z.string(),\n wheelColor: z.nullable(z.string()),\n rimType: z.number()\n }),\n maxPctFuelFill: z.number(),\n newCpi: z.number(),\n newLicenseLevel: z.number(),\n newSubLevel: z.number(),\n newTtrating: z.number(),\n newiRating: z.number(),\n oldCpi: z.number(),\n oldLicenseLevel: z.number(),\n oldSubLevel: z.number(),\n oldTtrating: z.number(),\n oldiRating: z.number(),\n optLapsComplete: z.number(),\n position: z.number(),\n qualLapTime: z.number(),\n reasonOut: z.string(),\n reasonOutId: z.number(),\n startingPosition: z.number(),\n startingPositionInClass: z.number(),\n suit: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string()\n }),\n watched: z.boolean(),\n weightPenaltyKg: z.number()\n }))\n })),\n sessionSplits: z.array(z.object({\n subsessionId: z.number(),\n eventStrengthOfField: z.number()\n })),\n specialEventType: z.number(),\n startTime: z.string(),\n track: z.object({\n category: z.string(),\n categoryId: z.number(),\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.number(),\n qualifyRubber: z.number(),\n raceRubber: z.number(),\n warmupRubber: z.number()\n }),\n weather: z.object({\n allowFog: z.boolean(),\n fog: z.number(),\n precipMm2hrBeforeFinalSession: z.number(),\n precipMmFinalSession: z.number(),\n precipOption: z.number(),\n precipTimePct: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.number(),\n type: z.number(),\n version: z.number(),\n weatherVarInitial: z.number(),\n weatherVarOngoing: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number()\n })\n});\nconst ResultsEventLog = z.object({\n success: z.boolean(),\n sessionInfo: z.object({\n subsessionId: z.number(),\n sessionId: z.number(),\n simsessionNumber: z.number(),\n simsessionType: z.number(),\n simsessionName: z.string(),\n eventType: z.number(),\n eventTypeName: z.string(),\n privateSessionId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n startTime: z.string(),\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n })\n }),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.string()),\n chunkFileNames: z.array(z.string())\n })\n});\nconst ResultsLapChartData = z.object({\n success: z.boolean(),\n sessionInfo: z.object({\n subsessionId: z.number(),\n sessionId: z.number(),\n simsessionNumber: z.number(),\n simsessionType: z.number(),\n simsessionName: z.string(),\n numLapsForQualAverage: z.number(),\n numLapsForSoloAverage: z.number(),\n eventType: z.number(),\n eventTypeName: z.string(),\n privateSessionId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n startTime: z.string(),\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n })\n }),\n bestLapNum: z.number(),\n bestLapTime: z.number(),\n bestNlapsNum: z.number(),\n bestNlapsTime: z.number(),\n bestQualLapNum: z.number(),\n bestQualLapTime: z.number(),\n bestQualLapAt: z.nullable(z.unknown()),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string()\n});\nconst ResultsLapData = z.object({\n success: z.boolean(),\n sessionInfo: z.object({\n subsessionId: z.number(),\n sessionId: z.number(),\n simsessionNumber: z.number(),\n simsessionType: z.number(),\n simsessionName: z.string(),\n numLapsForQualAverage: z.number(),\n numLapsForSoloAverage: z.number(),\n eventType: z.number(),\n eventTypeName: z.string(),\n privateSessionId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n startTime: z.string(),\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n })\n }),\n bestLapNum: z.number(),\n bestLapTime: z.number(),\n bestNlapsNum: z.number(),\n bestNlapsTime: z.number(),\n bestQualLapNum: z.number(),\n bestQualLapTime: z.number(),\n bestQualLapAt: z.nullable(z.unknown()),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n groupId: z.number(),\n custId: z.number(),\n name: z.string(),\n carId: z.number(),\n licenseLevel: z.number(),\n livery: z.object({\n carId: z.number(),\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n numberFont: z.number(),\n numberColor1: z.string(),\n numberColor2: z.string(),\n numberColor3: z.string(),\n numberSlant: z.number(),\n sponsor1: z.number(),\n sponsor2: z.number(),\n carNumber: z.string(),\n wheelColor: z.nullable(z.unknown()),\n rimType: z.number()\n })\n});\nconst ResultsSearchHosted = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.unknown()),\n chunkFileNames: z.array(z.unknown())\n }),\n params: z.object({\n custId: z.number(),\n teamId: z.number(),\n finishRangeBegin: z.optional(z.string()),\n finishRangeEnd: z.optional(z.string()),\n startRangeBegin: z.string(),\n startRangeEnd: z.optional(z.string()),\n categoryIds: z.array(z.number()),\n hostCustId: z.optional(z.number()),\n sessionName: z.optional(z.string()),\n carId: z.optional(z.number()),\n trackId: z.optional(z.number()),\n leagueId: z.optional(z.number()),\n leagueSeasonId: z.optional(z.number())\n })\n })\n});\nconst ResultsSearchSeries = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.unknown()),\n chunkFileNames: z.array(z.unknown())\n }),\n params: z.object({\n custId: z.number(),\n teamId: z.number(),\n finishRangeBegin: z.optional(z.string()),\n finishRangeEnd: z.optional(z.string()),\n startRangeBegin: z.optional(z.string()),\n startRangeEnd: z.optional(z.string()),\n categoryIds: z.array(z.number()),\n seriesId: z.optional(z.number()),\n seasonYear: z.optional(z.number()),\n seasonQuarter: z.optional(z.number()),\n raceWeekNum: z.number(),\n officialOnly: z.boolean(),\n eventTypes: z.array(z.number()),\n seasonLicenseGroups: z.array(z.number())\n })\n })\n});\nconst ResultsSeasonResults = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n raceWeekNum: z.number(),\n eventType: z.nullable(z.number()),\n resultsList: z.array(z.object({\n sessionId: z.number(),\n subsessionId: z.number(),\n raceWeekNum: z.number(),\n carClasses: z.array(z.object({\n carClassId: z.number(),\n shortName: z.string(),\n name: z.string(),\n numEntries: z.number(),\n strengthOfField: z.number()\n })),\n driverChanges: z.boolean(),\n eventBestLapTime: z.number(),\n eventStrengthOfField: z.number(),\n eventType: z.number(),\n eventTypeName: z.string(),\n farm: z.object({\n farmId: z.number(),\n displayName: z.string(),\n imagePath: z.string(),\n displayed: z.boolean()\n }),\n numCautionLaps: z.number(),\n numCautions: z.number(),\n numDrivers: z.number(),\n numLeadChanges: z.number(),\n officialSession: z.boolean(),\n startTime: z.string(),\n track: z.object({\n trackId: z.number(),\n trackName: z.string()\n }),\n winnerHelmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n winnerId: z.number(),\n winnerLicenseLevel: z.number(),\n winnerName: z.string()\n }))\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type ResultsGetResponse = z.infer<typeof ResultsGet>;\nexport type ResultsEventLogResponse = z.infer<typeof ResultsEventLog>;\nexport type ResultsLapChartDataResponse = z.infer<typeof ResultsLapChartData>;\nexport type ResultsLapDataResponse = z.infer<typeof ResultsLapData>;\nexport type ResultsSearchHostedResponse = z.infer<typeof ResultsSearchHosted>;\nexport type ResultsSearchSeriesResponse = z.infer<typeof ResultsSearchSeries>;\nexport type ResultsSeasonResultsResponse = z.infer<typeof ResultsSeasonResults>;\n\n// ---- Parameter Schemas ----\n\nconst ResultsGetParamsSchema = z.object({\n subsessionId: z.number(), // maps to: subsession_id\n includeLicenses: z.optional(z.boolean()), // maps to: include_licenses\n});\n\nconst ResultsEventLogParamsSchema = z.object({\n subsessionId: z.number(), // maps to: subsession_id\n simsessionNumber: z.number(), // The main event is 0; the preceding event is -1, and so on. // maps to: simsession_number\n});\n\nconst ResultsLapChartDataParamsSchema = z.object({\n subsessionId: z.number(), // maps to: subsession_id\n simsessionNumber: z.number(), // The main event is 0; the preceding event is -1, and so on. // maps to: simsession_number\n});\n\nconst ResultsLapDataParamsSchema = z.object({\n subsessionId: z.number(), // maps to: subsession_id\n simsessionNumber: z.number(), // The main event is 0; the preceding event is -1, and so on. // maps to: simsession_number\n custId: z.optional(z.number()), // Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included. // maps to: cust_id\n teamId: z.optional(z.number()), // Required if the subsession was a team event. // maps to: team_id\n});\n\nconst ResultsSearchHostedParamsSchema = z.object({\n startRangeBegin: z.optional(z.string()), // Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". // maps to: start_range_begin\n startRangeEnd: z.optional(z.string()), // ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. // maps to: start_range_end\n finishRangeBegin: z.optional(z.string()), // Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". // maps to: finish_range_begin\n finishRangeEnd: z.optional(z.string()), // ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. // maps to: finish_range_end\n custId: z.optional(z.number()), // The participant's customer ID. Ignored if team_id is supplied. // maps to: cust_id\n teamId: z.optional(z.number()), // The team ID to search for. Takes priority over cust_id if both are supplied. // maps to: team_id\n hostCustId: z.optional(z.number()), // The host's customer ID. // maps to: host_cust_id\n sessionName: z.optional(z.string()), // Part or all of the session's name. // maps to: session_name\n leagueId: z.optional(z.number()), // Include only results for the league with this ID. // maps to: league_id\n leagueSeasonId: z.optional(z.number()), // Include only results for the league season with this ID. // maps to: league_season_id\n carId: z.optional(z.number()), // One of the cars used by the session. // maps to: car_id\n trackId: z.optional(z.number()), // The ID of the track used by the session. // maps to: track_id\n categoryIds: z.optional(z.array(z.number())), // Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 // maps to: category_ids\n});\n\nconst ResultsSearchSeriesParamsSchema = z.object({\n seasonYear: z.optional(z.number()), // Required when using season_quarter. // maps to: season_year\n seasonQuarter: z.optional(z.number()), // Required when using season_year. // maps to: season_quarter\n startRangeBegin: z.optional(z.string()), // Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". // maps to: start_range_begin\n startRangeEnd: z.optional(z.string()), // ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. // maps to: start_range_end\n finishRangeBegin: z.optional(z.string()), // Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". // maps to: finish_range_begin\n finishRangeEnd: z.optional(z.string()), // ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. // maps to: finish_range_end\n custId: z.optional(z.number()), // Include only sessions in which this customer participated. Ignored if team_id is supplied. // maps to: cust_id\n teamId: z.optional(z.number()), // Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. // maps to: team_id\n seriesId: z.optional(z.number()), // Include only sessions for series with this ID. // maps to: series_id\n raceWeekNum: z.optional(z.number()), // Include only sessions with this race week number. // maps to: race_week_num\n officialOnly: z.optional(z.boolean()), // If true, include only sessions earning championship points. Defaults to all. // maps to: official_only\n eventTypes: z.optional(z.array(z.number())), // Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 // maps to: event_types\n categoryIds: z.optional(z.array(z.number())), // License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 // maps to: category_ids\n});\n\nconst ResultsSeasonResultsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n eventType: z.optional(z.number()), // Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race // maps to: event_type\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\n// ---- Exported Parameter Types ----\n\nexport type ResultsGetParams = z.infer<typeof ResultsGetParamsSchema>;\nexport type ResultsEventLogParams = z.infer<typeof ResultsEventLogParamsSchema>;\nexport type ResultsLapChartDataParams = z.infer<typeof ResultsLapChartDataParamsSchema>;\nexport type ResultsLapDataParams = z.infer<typeof ResultsLapDataParamsSchema>;\nexport type ResultsSearchHostedParams = z.infer<typeof ResultsSearchHostedParamsSchema>;\nexport type ResultsSearchSeriesParams = z.infer<typeof ResultsSearchSeriesParamsSchema>;\nexport type ResultsSeasonResultsParams = z.infer<typeof ResultsSeasonResultsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n ResultsGetParamsSchema,\n ResultsEventLogParamsSchema,\n ResultsLapChartDataParamsSchema,\n ResultsLapDataParamsSchema,\n ResultsSearchHostedParamsSchema,\n ResultsSearchSeriesParamsSchema,\n ResultsSeasonResultsParamsSchema,\n ResultsGet,\n ResultsEventLog,\n ResultsLapChartData,\n ResultsLapData,\n ResultsSearchHosted,\n ResultsSearchSeries,\n ResultsSeasonResults,\n};","import type { IRacingClient } from \"../client\";\nimport type { ResultsGetParams, ResultsEventLogParams, ResultsLapChartDataParams, ResultsLapDataParams, ResultsSearchHostedParams, ResultsSearchSeriesParams, ResultsSeasonResultsParams, ResultsGetResponse, ResultsEventLogResponse, ResultsLapChartDataResponse, ResultsLapDataResponse, ResultsSearchHostedResponse, ResultsSearchSeriesResponse, ResultsSeasonResultsResponse } from \"./types\";\nimport { ResultsGet, ResultsEventLog, ResultsLapChartData, ResultsLapData, ResultsSearchHosted, ResultsSearchSeries, ResultsSeasonResults } from \"./types\";\n\nexport class ResultsService {\n constructor(private client: IRacingClient) {}\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/results/get\n * @sample results.get.json\n */\n async get(params: ResultsGetParams): Promise<ResultsGetResponse> {\n return this.client.get<ResultsGetResponse>(\"https://members-ng.iracing.com/data/results/get\", { params, schema: ResultsGet });\n }\n\n /**\n * event_log\n * @see https://members-ng.iracing.com/data/results/event_log\n * @sample results.event_log.json\n */\n async eventLog(params: ResultsEventLogParams): Promise<ResultsEventLogResponse> {\n return this.client.get<ResultsEventLogResponse>(\"https://members-ng.iracing.com/data/results/event_log\", { params, schema: ResultsEventLog });\n }\n\n /**\n * lap_chart_data\n * @see https://members-ng.iracing.com/data/results/lap_chart_data\n * @sample results.lap_chart_data.json\n */\n async lapChartData(params: ResultsLapChartDataParams): Promise<ResultsLapChartDataResponse> {\n return this.client.get<ResultsLapChartDataResponse>(\"https://members-ng.iracing.com/data/results/lap_chart_data\", { params, schema: ResultsLapChartData });\n }\n\n /**\n * lap_data\n * @see https://members-ng.iracing.com/data/results/lap_data\n * @sample results.lap_data_var3.json\n */\n async lapData(params: ResultsLapDataParams): Promise<ResultsLapDataResponse> {\n return this.client.get<ResultsLapDataResponse>(\"https://members-ng.iracing.com/data/results/lap_data\", { params, schema: ResultsLapData });\n }\n\n /**\n * search_hosted\n * @see https://members-ng.iracing.com/data/results/search_hosted\n * @sample results.search_hosted.json\n */\n async searchHosted(params: ResultsSearchHostedParams): Promise<ResultsSearchHostedResponse> {\n return this.client.get<ResultsSearchHostedResponse>(\"https://members-ng.iracing.com/data/results/search_hosted\", { params, schema: ResultsSearchHosted });\n }\n\n /**\n * search_series\n * @see https://members-ng.iracing.com/data/results/search_series\n * @sample results.search_series.json\n */\n async searchSeries(params: ResultsSearchSeriesParams): Promise<ResultsSearchSeriesResponse> {\n return this.client.get<ResultsSearchSeriesResponse>(\"https://members-ng.iracing.com/data/results/search_series\", { params, schema: ResultsSearchSeries });\n }\n\n /**\n * season_results\n * @see https://members-ng.iracing.com/data/results/season_results\n * @sample results.season_results.json\n */\n async seasonResults(params: ResultsSeasonResultsParams): Promise<ResultsSeasonResultsResponse> {\n return this.client.get<ResultsSeasonResultsResponse>(\"https://members-ng.iracing.com/data/results/season_results\", { params, schema: ResultsSeasonResults });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst SeasonList = z.object({\n seasonQuarter: z.number(),\n seasons: z.array(z.object({\n seasonId: z.number(),\n seriesId: z.number(),\n seasonName: z.string(),\n seriesName: z.string(),\n official: z.boolean(),\n seasonYear: z.number(),\n seasonQuarter: z.number(),\n licenseGroup: z.number(),\n fixedSetup: z.boolean(),\n driverChanges: z.boolean(),\n rookieSeason: z.optional(z.string())\n })),\n seasonYear: z.number()\n});\nconst SeasonRaceGuide = z.object({\n subscribed: z.boolean(),\n sessions: z.array(z.object({\n seasonId: z.number(),\n startTime: z.string(),\n superSession: z.boolean(),\n seriesId: z.number(),\n raceWeekNum: z.number(),\n endTime: z.string(),\n sessionId: z.optional(z.number()),\n entryCount: z.number()\n })),\n blockBeginTime: z.string(),\n blockEndTime: z.string(),\n success: z.boolean()\n});\nconst SeasonSpectatorSubsessionids = z.object({\n eventTypes: z.array(z.number()),\n success: z.boolean(),\n subsessionIds: z.array(z.number())\n});\nconst SeasonSpectatorSubsessionidsDetail = z.object({\n success: z.boolean(),\n seasonIds: z.array(z.number()),\n eventTypes: z.array(z.number()),\n subsessions: z.array(z.object({\n subsessionId: z.number(),\n sessionId: z.number(),\n seasonId: z.number(),\n startTime: z.string(),\n raceWeekNum: z.number(),\n eventType: z.number()\n }))\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type SeasonListResponse = z.infer<typeof SeasonList>;\nexport type SeasonRaceGuideResponse = z.infer<typeof SeasonRaceGuide>;\nexport type SeasonSpectatorSubsessionidsResponse = z.infer<typeof SeasonSpectatorSubsessionids>;\nexport type SeasonSpectatorSubsessionidsDetailResponse = z.infer<typeof SeasonSpectatorSubsessionidsDetail>;\n\n// ---- Parameter Schemas ----\n\nconst SeasonListParamsSchema = z.object({\n seasonYear: z.number(), // maps to: season_year\n seasonQuarter: z.number(), // maps to: season_quarter\n});\n\nconst SeasonRaceGuideParamsSchema = z.object({\n from: z.optional(z.string()), // ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.\n includeEndAfterFrom: z.optional(z.boolean()), // Include sessions which start before 'from' but end after. // maps to: include_end_after_from\n});\n\nconst SeasonSpectatorSubsessionidsParamsSchema = z.object({\n eventTypes: z.optional(z.array(z.number())), // Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 // maps to: event_types\n});\n\nconst SeasonSpectatorSubsessionidsDetailParamsSchema = z.object({\n eventTypes: z.optional(z.array(z.number())), // Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 // maps to: event_types\n seasonIds: z.optional(z.array(z.number())), // Seasons to include in the search. Defaults to all. ?season_ids=513,937 // maps to: season_ids\n});\n\n// ---- Exported Parameter Types ----\n\nexport type SeasonListParams = z.infer<typeof SeasonListParamsSchema>;\nexport type SeasonRaceGuideParams = z.infer<typeof SeasonRaceGuideParamsSchema>;\nexport type SeasonSpectatorSubsessionidsParams = z.infer<typeof SeasonSpectatorSubsessionidsParamsSchema>;\nexport type SeasonSpectatorSubsessionidsDetailParams = z.infer<typeof SeasonSpectatorSubsessionidsDetailParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n SeasonListParamsSchema,\n SeasonRaceGuideParamsSchema,\n SeasonSpectatorSubsessionidsParamsSchema,\n SeasonSpectatorSubsessionidsDetailParamsSchema,\n SeasonList,\n SeasonRaceGuide,\n SeasonSpectatorSubsessionids,\n SeasonSpectatorSubsessionidsDetail,\n};","import type { IRacingClient } from \"../client\";\nimport type { SeasonListParams, SeasonRaceGuideParams, SeasonSpectatorSubsessionidsParams, SeasonSpectatorSubsessionidsDetailParams, SeasonListResponse, SeasonRaceGuideResponse, SeasonSpectatorSubsessionidsResponse, SeasonSpectatorSubsessionidsDetailResponse } from \"./types\";\nimport { SeasonList, SeasonRaceGuide, SeasonSpectatorSubsessionids, SeasonSpectatorSubsessionidsDetail } from \"./types\";\n\nexport class SeasonService {\n constructor(private client: IRacingClient) {}\n\n /**\n * list\n * @see https://members-ng.iracing.com/data/season/list\n * @sample season.list.json\n */\n async list(params: SeasonListParams): Promise<SeasonListResponse> {\n return this.client.get<SeasonListResponse>(\"https://members-ng.iracing.com/data/season/list\", { params, schema: SeasonList });\n }\n\n /**\n * race_guide\n * @see https://members-ng.iracing.com/data/season/race_guide\n * @sample season.race_guide.json\n */\n async raceGuide(params: SeasonRaceGuideParams): Promise<SeasonRaceGuideResponse> {\n return this.client.get<SeasonRaceGuideResponse>(\"https://members-ng.iracing.com/data/season/race_guide\", { params, schema: SeasonRaceGuide });\n }\n\n /**\n * spectator_subsessionids\n * @see https://members-ng.iracing.com/data/season/spectator_subsessionids\n * @sample season.spectator_subsessionids.json\n */\n async spectatorSubsessionids(params: SeasonSpectatorSubsessionidsParams): Promise<SeasonSpectatorSubsessionidsResponse> {\n return this.client.get<SeasonSpectatorSubsessionidsResponse>(\"https://members-ng.iracing.com/data/season/spectator_subsessionids\", { params, schema: SeasonSpectatorSubsessionids });\n }\n\n /**\n * spectator_subsessionids_detail\n * @see https://members-ng.iracing.com/data/season/spectator_subsessionids_detail\n * @sample season.spectator_subsessionids_detail.json\n */\n async spectatorSubsessionidsDetail(params: SeasonSpectatorSubsessionidsDetailParams): Promise<SeasonSpectatorSubsessionidsDetailResponse> {\n return this.client.get<SeasonSpectatorSubsessionidsDetailResponse>(\"https://members-ng.iracing.com/data/season/spectator_subsessionids_detail\", { params, schema: SeasonSpectatorSubsessionidsDetail });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst SeriesAssets = z.record(z.string(), z.object({\n largeImage: z.optional(z.nullable(z.string())),\n logo: z.optional(z.nullable(z.string())),\n seriesCopy: z.optional(z.nullable(z.string())),\n seriesId: z.optional(z.nullable(z.number())),\n smallImage: z.optional(z.nullable(z.string()))\n}));\nconst SeriesGet = z.array(z.object({\n allowedLicenses: z.array(z.object({\n groupName: z.string(),\n licenseGroup: z.number(),\n maxLicenseLevel: z.number(),\n minLicenseLevel: z.number()\n })),\n category: z.string(),\n categoryId: z.number(),\n eligible: z.boolean(),\n firstSeason: z.object({\n seasonYear: z.number(),\n seasonQuarter: z.number()\n}),\n forumUrl: z.optional(z.string()),\n maxStarters: z.number(),\n minStarters: z.number(),\n ovalCautionType: z.number(),\n roadCautionType: z.number(),\n seriesId: z.number(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n searchFilters: z.optional(z.string())\n}));\nconst SeriesPastSeasons = z.object({\n success: z.boolean(),\n series: z.object({\n seriesId: z.number(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n categoryId: z.number(),\n category: z.string(),\n active: z.boolean(),\n official: z.boolean(),\n fixedSetup: z.boolean(),\n searchFilters: z.string(),\n logo: z.string(),\n licenseGroup: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n allowedLicenses: z.array(z.object({\n groupName: z.string(),\n licenseGroup: z.number(),\n maxLicenseLevel: z.number(),\n minLicenseLevel: z.number(),\n parentId: z.number()\n })),\n seasons: z.array(z.object({\n seasonId: z.number(),\n seriesId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n seasonQuarter: z.number(),\n active: z.boolean(),\n official: z.boolean(),\n driverChanges: z.boolean(),\n fixedSetup: z.boolean(),\n licenseGroup: z.number(),\n hasSupersessions: z.boolean(),\n carSwitching: z.boolean(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n carClasses: z.array(z.object({\n carClassId: z.number(),\n shortName: z.string(),\n name: z.string(),\n relativeSpeed: z.number()\n })),\n raceWeeks: z.array(z.object({\n seasonId: z.number(),\n raceWeekNum: z.number(),\n track: z.object({\n trackId: z.number(),\n trackName: z.string(),\n configName: z.optional(z.string())\n })\n }))\n }))\n }),\n seriesId: z.number()\n});\nconst SeriesSeasons = z.array(z.object({\n seasonId: z.number(),\n seasonName: z.string(),\n active: z.boolean(),\n allowedSeasonMembers: z.nullable(z.string()),\n carClassIds: z.array(z.number()),\n carSwitching: z.boolean(),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n cautionLapsDoNotCount: z.boolean(),\n complete: z.boolean(),\n connectionBlackFlag: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n consecCautionsSingleFile: z.boolean(),\n crossLicense: z.boolean(),\n distributedMatchmaking: z.boolean(),\n driverChangeRule: z.number(),\n driverChanges: z.boolean(),\n drops: z.number(),\n enablePitlaneCollisions: z.boolean(),\n fixedSetup: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n gridByClass: z.boolean(),\n hardcoreLevel: z.number(),\n hasSupersessions: z.boolean(),\n ignoreLicenseForPractice: z.boolean(),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n isHeatRacing: z.boolean(),\n licenseGroup: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n luckyDog: z.boolean(),\n maxTeamDrivers: z.number(),\n maxWeeks: z.number(),\n minTeamDrivers: z.number(),\n multiclass: z.boolean(),\n mustUseDiffTireTypesInRace: z.boolean(),\n nextRaceSession: z.nullable(z.string()),\n numFastTows: z.number(),\n numOptLaps: z.number(),\n official: z.boolean(),\n opDuration: z.number(),\n openPracticeSessionTypeId: z.number(),\n qualifierMustStartRace: z.boolean(),\n raceWeek: z.number(),\n raceWeekToMakeDivisions: z.number(),\n regUserCount: z.number(),\n regionCompetition: z.boolean(),\n restrictByMember: z.boolean(),\n restrictToCar: z.boolean(),\n restrictViewing: z.boolean(),\n scheduleDescription: z.string(),\n schedules: z.array(z.object({\n seasonId: z.number(),\n raceWeekNum: z.number(),\n carRestrictions: z.array(z.object({\n carId: z.number(),\n maxDryTireSets: z.number(),\n maxPctFuelFill: z.number(),\n powerAdjustPct: z.number(),\n raceSetupId: z.optional(z.number()),\n weightPenaltyKg: z.number(),\n qualSetupId: z.optional(z.number())\n })),\n category: z.string(),\n categoryId: z.number(),\n enablePitlaneCollisions: z.boolean(),\n fullCourseCautions: z.boolean(),\n practiceLength: z.optional(z.number()),\n qualAttached: z.boolean(),\n qualifyLaps: z.optional(z.number()),\n qualifyLength: z.optional(z.number()),\n raceLapLimit: z.nullable(z.number()),\n raceTimeDescriptors: z.array(z.object({\n repeating: z.boolean(),\n sessionMinutes: z.number(),\n sessionTimes: z.optional(z.array(z.string())),\n superSession: z.boolean(),\n dayOffset: z.optional(z.array(z.number())),\n firstSessionTime: z.optional(z.string()),\n repeatMinutes: z.optional(z.number()),\n startDate: z.optional(z.string())\n })),\n raceTimeLimit: z.nullable(z.number()),\n raceWeekCarClassIds: z.array(z.number()),\n raceWeekCars: z.array(z.object({\n carId: z.number(),\n carName: z.string(),\n carNameAbbreviated: z.string()\n })),\n restartType: z.string(),\n scheduleName: z.string(),\n seasonName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n shortParadeLap: z.boolean(),\n specialEventType: z.nullable(z.string()),\n startDate: z.string(),\n startType: z.string(),\n startZone: z.boolean(),\n track: z.object({\n category: z.string(),\n categoryId: z.number(),\n trackId: z.number(),\n trackName: z.string(),\n configName: z.optional(z.string())\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.optional(z.number()),\n raceRubber: z.optional(z.number())\n }),\n warmupLength: z.optional(z.number()),\n weather: z.object({\n allowFog: z.optional(z.boolean()),\n forecastOptions: z.optional(z.object({\n allowFog: z.boolean(),\n forecastType: z.number(),\n precipitation: z.number(),\n skies: z.number(),\n stopPrecip: z.number(),\n temperature: z.number(),\n weatherSeed: z.number(),\n windDir: z.number(),\n windSpeed: z.number()\n })),\n precipOption: z.optional(z.number()),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.optional(z.number()),\n version: z.number(),\n weatherSummary: z.optional(z.object({\n maxPrecipRate: z.number(),\n maxPrecipRateDesc: z.string(),\n precipChance: z.number(),\n skiesHigh: z.number(),\n skiesLow: z.number(),\n tempHigh: z.number(),\n tempLow: z.number(),\n tempUnits: z.number(),\n windDir: z.number(),\n windHigh: z.number(),\n windLow: z.number(),\n windUnits: z.number()\n })),\n weatherUrl: z.optional(z.string()),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number(),\n fog: z.optional(z.number()),\n type: z.optional(z.number()),\n weatherVarInitial: z.optional(z.number()),\n weatherVarOngoing: z.optional(z.number())\n }),\n weekEndTime: z.string()\n })),\n scoreAsCarclassid: z.optional(z.number()),\n seasonQuarter: z.number(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n sendToOpenPractice: z.boolean(),\n seriesId: z.number(),\n shortParadeLap: z.boolean(),\n startDate: z.string(),\n startOnQualTire: z.boolean(),\n startZone: z.boolean(),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n unsportConductRuleMode: z.number(),\n rookieSeason: z.optional(z.string()),\n regOpenMinutes: z.optional(z.number()),\n heatSesInfo: z.optional(z.object({\n consolationDeltaMaxFieldSize: z.number(),\n consolationDeltaSessionLaps: z.number(),\n consolationDeltaSessionLengthMinutes: z.number(),\n consolationFirstMaxFieldSize: z.number(),\n consolationFirstSessionLaps: z.number(),\n consolationFirstSessionLengthMinutes: z.number(),\n consolationNumPositionToInvert: z.number(),\n consolationNumToConsolation: z.number(),\n consolationNumToMain: z.number(),\n consolationRunAlways: z.boolean(),\n consolationScoresChampPoints: z.boolean(),\n created: z.string(),\n custId: z.number(),\n description: z.string(),\n heatCautionType: z.number(),\n heatInfoId: z.number(),\n heatInfoName: z.string(),\n heatLaps: z.number(),\n heatLengthMinutes: z.number(),\n heatMaxFieldSize: z.number(),\n heatNumFromEachToMain: z.number(),\n heatNumPositionToInvert: z.number(),\n heatScoresChampPoints: z.boolean(),\n heatSessionMinutesEstimate: z.number(),\n hidden: z.boolean(),\n mainLaps: z.number(),\n mainLengthMinutes: z.number(),\n mainMaxFieldSize: z.number(),\n mainNumPositionToInvert: z.number(),\n maxEntrants: z.number(),\n openPractice: z.boolean(),\n preMainPracticeLengthMinutes: z.number(),\n preQualNumToMain: z.number(),\n preQualPracticeLengthMinutes: z.number(),\n qualCautionType: z.number(),\n qualLaps: z.number(),\n qualLengthMinutes: z.number(),\n qualNumToMain: z.number(),\n qualOpenDelaySeconds: z.number(),\n qualScoresChampPoints: z.boolean(),\n qualScoring: z.number(),\n qualStyle: z.number(),\n raceStyle: z.number()\n}))\n}));\nconst SeriesSeasonList = z.object({\n seasons: z.array(z.object({\n seasonId: z.number(),\n seasonName: z.string(),\n active: z.boolean(),\n allowedSeasonMembers: z.nullable(z.string()),\n carClassIds: z.array(z.number()),\n carSwitching: z.boolean(),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n cautionLapsDoNotCount: z.boolean(),\n complete: z.boolean(),\n connectionBlackFlag: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n consecCautionsSingleFile: z.boolean(),\n crossLicense: z.boolean(),\n currentWeekSched: z.object({\n raceWeekNum: z.number(),\n track: z.object({\n category: z.string(),\n categoryId: z.number(),\n trackId: z.number(),\n trackName: z.string(),\n configName: z.optional(z.string())\n }),\n carRestrictions: z.array(z.object({\n carId: z.number(),\n maxDryTireSets: z.number(),\n maxPctFuelFill: z.number(),\n powerAdjustPct: z.number(),\n raceSetupId: z.optional(z.number()),\n weightPenaltyKg: z.number(),\n qualSetupId: z.optional(z.number())\n })),\n raceLapLimit: z.nullable(z.number()),\n raceTimeLimit: z.nullable(z.number()),\n precipChance: z.optional(z.number()),\n startType: z.string(),\n categoryId: z.number()\n }),\n distributedMatchmaking: z.boolean(),\n driverChangeRule: z.number(),\n driverChanges: z.boolean(),\n drops: z.number(),\n elig: z.object({\n ownCar: z.boolean(),\n ownTrack: z.boolean()\n }),\n enablePitlaneCollisions: z.boolean(),\n fixedSetup: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n gridByClass: z.boolean(),\n hardcoreLevel: z.number(),\n hasMpr: z.boolean(),\n hasSupersessions: z.boolean(),\n ignoreLicenseForPractice: z.boolean(),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n isHeatRacing: z.boolean(),\n licenseGroup: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n luckyDog: z.boolean(),\n maxTeamDrivers: z.number(),\n maxWeeks: z.number(),\n minTeamDrivers: z.number(),\n multiclass: z.boolean(),\n mustUseDiffTireTypesInRace: z.boolean(),\n numFastTows: z.number(),\n numOptLaps: z.number(),\n official: z.boolean(),\n opDuration: z.number(),\n openPracticeSessionTypeId: z.number(),\n qualifierMustStartRace: z.boolean(),\n raceWeek: z.number(),\n raceWeekCarClassIds: z.optional(z.array(z.object({\n raceWeekNum: z.number(),\n carClassIds: z.array(z.number())\n }))),\n raceWeekToMakeDivisions: z.number(),\n regUserCount: z.number(),\n regionCompetition: z.boolean(),\n restrictByMember: z.boolean(),\n restrictToCar: z.boolean(),\n restrictViewing: z.boolean(),\n scheduleDescription: z.string(),\n seasonQuarter: z.number(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n sendToOpenPractice: z.boolean(),\n seriesId: z.number(),\n shortParadeLap: z.boolean(),\n startDate: z.string(),\n startOnQualTire: z.boolean(),\n startZone: z.boolean(),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n unsportConductRuleMode: z.number(),\n rookieSeason: z.optional(z.string()),\n regOpenMinutes: z.optional(z.number()),\n heatSesInfo: z.optional(z.object({\n consolationDeltaMaxFieldSize: z.number(),\n consolationDeltaSessionLaps: z.number(),\n consolationDeltaSessionLengthMinutes: z.number(),\n consolationFirstMaxFieldSize: z.number(),\n consolationFirstSessionLaps: z.number(),\n consolationFirstSessionLengthMinutes: z.number(),\n consolationNumPositionToInvert: z.number(),\n consolationNumToConsolation: z.number(),\n consolationNumToMain: z.number(),\n consolationRunAlways: z.boolean(),\n consolationScoresChampPoints: z.boolean(),\n created: z.string(),\n custId: z.number(),\n description: z.string(),\n heatCautionType: z.number(),\n heatInfoId: z.number(),\n heatInfoName: z.string(),\n heatLaps: z.number(),\n heatLengthMinutes: z.number(),\n heatMaxFieldSize: z.number(),\n heatNumFromEachToMain: z.number(),\n heatNumPositionToInvert: z.number(),\n heatScoresChampPoints: z.boolean(),\n heatSessionMinutesEstimate: z.number(),\n hidden: z.boolean(),\n mainLaps: z.number(),\n mainLengthMinutes: z.number(),\n mainMaxFieldSize: z.number(),\n mainNumPositionToInvert: z.number(),\n maxEntrants: z.number(),\n openPractice: z.boolean(),\n preMainPracticeLengthMinutes: z.number(),\n preQualNumToMain: z.number(),\n preQualPracticeLengthMinutes: z.number(),\n qualCautionType: z.number(),\n qualLaps: z.number(),\n qualLengthMinutes: z.number(),\n qualNumToMain: z.number(),\n qualOpenDelaySeconds: z.number(),\n qualScoresChampPoints: z.boolean(),\n qualScoring: z.number(),\n qualStyle: z.number(),\n raceStyle: z.number()\n }))\n }))\n});\nconst SeriesSeasonSchedule = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n schedules: z.array(z.object({\n seasonId: z.number(),\n raceWeekNum: z.number(),\n carRestrictions: z.array(z.unknown()),\n category: z.string(),\n categoryId: z.number(),\n enablePitlaneCollisions: z.boolean(),\n eventOptions: z.object({\n allowWaveArounds: z.boolean(),\n cautionsEnabled: z.boolean(),\n qualifyScoringType: z.number(),\n restartType: z.number(),\n shortParadeLap: z.boolean(),\n singleFileConsecCautions: z.boolean(),\n standingStart: z.boolean(),\n startingGridType: z.number()\n }),\n eventSessions: z.array(z.object({\n laps: z.number(),\n minutes: z.number(),\n startTimeOffset: z.number(),\n type: z.number(),\n typeName: z.string(),\n unlimitedLaps: z.boolean(),\n unlimitedTime: z.boolean()\n })),\n fullCourseCautions: z.boolean(),\n practiceLength: z.number(),\n qualAttached: z.boolean(),\n qualTimeDescriptors: z.array(z.unknown()),\n qualifyLaps: z.number(),\n qualifyLength: z.number(),\n raceLapLimit: z.nullable(z.string()),\n raceTimeDescriptors: z.array(z.object({\n repeating: z.boolean(),\n sessionMinutes: z.number(),\n sessionTimes: z.array(z.string()),\n superSession: z.boolean()\n })),\n raceTimeLimit: z.number(),\n raceWeekCarClasses: z.array(z.unknown()),\n restartType: z.string(),\n scheduleName: z.string(),\n seasonName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n shortParadeLap: z.boolean(),\n specialEventType: z.nullable(z.string()),\n startDate: z.string(),\n startType: z.string(),\n startZone: z.boolean(),\n track: z.object({\n category: z.string(),\n categoryId: z.number(),\n configName: z.optional(z.string()),\n trackId: z.number(),\n trackName: z.string()\n }),\n trackState: z.object({\n leaveMarbles: z.boolean()\n }),\n warmupLength: z.number(),\n weather: z.object({\n fog: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n type: z.number(),\n version: z.number(),\n weatherVarInitial: z.number(),\n weatherVarOngoing: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number()\n }),\n weekEndTime: z.string()\n }))\n});\nconst SeriesStatsSeries = z.array(z.object({\n seriesId: z.number(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n categoryId: z.number(),\n category: z.string(),\n active: z.boolean(),\n official: z.boolean(),\n fixedSetup: z.boolean(),\n logo: z.nullable(z.string()),\n licenseGroup: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n allowedLicenses: z.array(z.object({\n groupName: z.string(),\n licenseGroup: z.number(),\n maxLicenseLevel: z.number(),\n minLicenseLevel: z.number(),\n parentId: z.number()\n })),\n seasons: z.array(z.object({\n seasonId: z.number(),\n seriesId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n seasonQuarter: z.number(),\n active: z.boolean(),\n official: z.boolean(),\n driverChanges: z.boolean(),\n fixedSetup: z.boolean(),\n licenseGroup: z.number(),\n hasSupersessions: z.boolean(),\n carSwitching: z.boolean(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n carClasses: z.array(z.object({\n carClassId: z.number(),\n shortName: z.string(),\n name: z.string(),\n relativeSpeed: z.number()\n })),\n raceWeeks: z.array(z.object({\n seasonId: z.number(),\n raceWeekNum: z.number(),\n track: z.object({\n configName: z.optional(z.string()),\n trackId: z.number(),\n trackName: z.string()\n })\n }))\n })),\n searchFilters: z.optional(z.string())\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type SeriesAssetsResponse = z.infer<typeof SeriesAssets>;\nexport type SeriesGetResponse = z.infer<typeof SeriesGet>;\nexport type SeriesPastSeasonsResponse = z.infer<typeof SeriesPastSeasons>;\nexport type SeriesSeasonsResponse = z.infer<typeof SeriesSeasons>;\nexport type SeriesSeasonListResponse = z.infer<typeof SeriesSeasonList>;\nexport type SeriesSeasonScheduleResponse = z.infer<typeof SeriesSeasonSchedule>;\nexport type SeriesStatsSeriesResponse = z.infer<typeof SeriesStatsSeries>;\n\n// ---- Parameter Schemas ----\n\nconst SeriesAssetsParamsSchema = z.object({\n});\n\nconst SeriesGetParamsSchema = z.object({\n});\n\nconst SeriesPastSeasonsParamsSchema = z.object({\n seriesId: z.number(), // maps to: series_id\n});\n\nconst SeriesSeasonsParamsSchema = z.object({\n includeSeries: z.optional(z.boolean()), // maps to: include_series\n seasonYear: z.optional(z.number()), // To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. // maps to: season_year\n seasonQuarter: z.optional(z.number()), // To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. // maps to: season_quarter\n});\n\nconst SeriesSeasonListParamsSchema = z.object({\n includeSeries: z.optional(z.boolean()), // maps to: include_series\n seasonYear: z.optional(z.number()), // maps to: season_year\n seasonQuarter: z.optional(z.number()), // maps to: season_quarter\n});\n\nconst SeriesSeasonScheduleParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n});\n\nconst SeriesStatsSeriesParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type SeriesAssetsParams = z.infer<typeof SeriesAssetsParamsSchema>;\nexport type SeriesGetParams = z.infer<typeof SeriesGetParamsSchema>;\nexport type SeriesPastSeasonsParams = z.infer<typeof SeriesPastSeasonsParamsSchema>;\nexport type SeriesSeasonsParams = z.infer<typeof SeriesSeasonsParamsSchema>;\nexport type SeriesSeasonListParams = z.infer<typeof SeriesSeasonListParamsSchema>;\nexport type SeriesSeasonScheduleParams = z.infer<typeof SeriesSeasonScheduleParamsSchema>;\nexport type SeriesStatsSeriesParams = z.infer<typeof SeriesStatsSeriesParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n SeriesAssetsParamsSchema,\n SeriesGetParamsSchema,\n SeriesPastSeasonsParamsSchema,\n SeriesSeasonsParamsSchema,\n SeriesSeasonListParamsSchema,\n SeriesSeasonScheduleParamsSchema,\n SeriesStatsSeriesParamsSchema,\n SeriesAssets,\n SeriesGet,\n SeriesPastSeasons,\n SeriesSeasons,\n SeriesSeasonList,\n SeriesSeasonSchedule,\n SeriesStatsSeries,\n};","import type { IRacingClient } from \"../client\";\nimport type { SeriesPastSeasonsParams, SeriesSeasonsParams, SeriesSeasonListParams, SeriesSeasonScheduleParams, SeriesAssetsResponse, SeriesGetResponse, SeriesPastSeasonsResponse, SeriesSeasonsResponse, SeriesSeasonListResponse, SeriesSeasonScheduleResponse, SeriesStatsSeriesResponse } from \"./types\";\nimport { SeriesAssets, SeriesGet, SeriesPastSeasons, SeriesSeasons, SeriesSeasonList, SeriesSeasonSchedule, SeriesStatsSeries } from \"./types\";\n\nexport class SeriesService {\n constructor(private client: IRacingClient) {}\n\n /**\n * assets\n * @see https://members-ng.iracing.com/data/series/assets\n * @sample series.assets.json\n */\n async assets(): Promise<SeriesAssetsResponse> {\n return this.client.get<SeriesAssetsResponse>(\"https://members-ng.iracing.com/data/series/assets\", { schema: SeriesAssets });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/series/get\n * @sample series.get.json\n */\n async get(): Promise<SeriesGetResponse> {\n return this.client.get<SeriesGetResponse>(\"https://members-ng.iracing.com/data/series/get\", { schema: SeriesGet });\n }\n\n /**\n * past_seasons\n * @see https://members-ng.iracing.com/data/series/past_seasons\n * @sample series.past_seasons.json\n */\n async pastSeasons(params: SeriesPastSeasonsParams): Promise<SeriesPastSeasonsResponse> {\n return this.client.get<SeriesPastSeasonsResponse>(\"https://members-ng.iracing.com/data/series/past_seasons\", { params, schema: SeriesPastSeasons });\n }\n\n /**\n * seasons\n * @see https://members-ng.iracing.com/data/series/seasons\n * @sample series.seasons.json\n */\n async seasons(params: SeriesSeasonsParams): Promise<SeriesSeasonsResponse> {\n return this.client.get<SeriesSeasonsResponse>(\"https://members-ng.iracing.com/data/series/seasons\", { params, schema: SeriesSeasons });\n }\n\n /**\n * season_list\n * @see https://members-ng.iracing.com/data/series/season_list\n * @sample series.season_list.json\n */\n async seasonList(params: SeriesSeasonListParams): Promise<SeriesSeasonListResponse> {\n return this.client.get<SeriesSeasonListResponse>(\"https://members-ng.iracing.com/data/series/season_list\", { params, schema: SeriesSeasonList });\n }\n\n /**\n * season_schedule\n * @see https://members-ng.iracing.com/data/series/season_schedule\n * @sample series.season_schedule.json\n */\n async seasonSchedule(params: SeriesSeasonScheduleParams): Promise<SeriesSeasonScheduleResponse> {\n return this.client.get<SeriesSeasonScheduleResponse>(\"https://members-ng.iracing.com/data/series/season_schedule\", { params, schema: SeriesSeasonSchedule });\n }\n\n /**\n * stats_series\n * @see https://members-ng.iracing.com/data/series/stats_series\n * @sample series.stats_series.json\n */\n async statsSeries(): Promise<SeriesStatsSeriesResponse> {\n return this.client.get<SeriesStatsSeriesResponse>(\"https://members-ng.iracing.com/data/series/stats_series\", { schema: SeriesStatsSeries });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst StatsMemberBests = z.object({\n carsDriven: z.array(z.object({\n carId: z.number(),\n carName: z.string()\n })),\n bests: z.array(z.object({\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n }),\n eventType: z.string(),\n bestLapTime: z.number(),\n subsessionId: z.number(),\n endTime: z.string(),\n seasonYear: z.number(),\n seasonQuarter: z.number()\n })),\n custId: z.number(),\n carId: z.number()\n});\nconst StatsMemberCareer = z.object({\n stats: z.array(z.object({\n categoryId: z.number(),\n category: z.string(),\n starts: z.number(),\n wins: z.number(),\n top5: z.number(),\n poles: z.number(),\n avgStartPosition: z.number(),\n avgFinishPosition: z.number(),\n laps: z.number(),\n lapsLed: z.number(),\n avgIncidents: z.number(),\n avgPoints: z.number(),\n winPercentage: z.number(),\n top5Percentage: z.number(),\n lapsLedPercentage: z.number(),\n polesPercentage: z.number()\n })),\n custId: z.number()\n});\nconst StatsMemberDivision = z.object({\n division: z.number(),\n projected: z.boolean(),\n eventType: z.number(),\n success: z.boolean(),\n seasonId: z.number()\n});\nconst StatsMemberRecap = z.object({\n year: z.number(),\n stats: z.object({\n starts: z.number(),\n wins: z.number(),\n top5: z.number(),\n avgStartPosition: z.number(),\n avgFinishPosition: z.number(),\n laps: z.number(),\n lapsLed: z.number(),\n favoriteCar: z.nullable(z.object({\n carId: z.number(),\n carName: z.string(),\n carImage: z.string()\n })),\n favoriteTrack: z.nullable(z.object({\n configName: z.string(),\n trackId: z.number(),\n trackLogo: z.string(),\n trackName: z.string()\n }))\n }),\n success: z.boolean(),\n season: z.nullable(z.number()),\n custId: z.number()\n});\nconst StatsMemberRecentRaces = z.object({\n races: z.array(z.object({\n seasonId: z.number(),\n seriesId: z.number(),\n seriesName: z.string(),\n carId: z.number(),\n carClassId: z.number(),\n livery: z.object({\n carId: z.number(),\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string()\n }),\n licenseLevel: z.number(),\n sessionStartTime: z.string(),\n winnerGroupId: z.number(),\n winnerName: z.string(),\n winnerHelmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n winnerLicenseLevel: z.number(),\n startPosition: z.number(),\n finishPosition: z.number(),\n qualifyingTime: z.number(),\n laps: z.number(),\n lapsLed: z.number(),\n incidents: z.number(),\n points: z.number(),\n strengthOfField: z.number(),\n subsessionId: z.number(),\n oldSubLevel: z.number(),\n newSubLevel: z.number(),\n oldiRating: z.number(),\n newiRating: z.number(),\n track: z.object({\n trackId: z.number(),\n trackName: z.string()\n }),\n dropRace: z.boolean(),\n seasonYear: z.number(),\n seasonQuarter: z.number(),\n raceWeekNum: z.number()\n })),\n custId: z.number()\n});\nconst StatsMemberSummary = z.object({\n thisYear: z.object({\n numOfficialSessions: z.number(),\n numLeagueSessions: z.number(),\n numOfficialWins: z.number(),\n numLeagueWins: z.number()\n }),\n custId: z.number()\n});\nconst StatsMemberYearly = z.object({\n stats: z.array(z.object({\n categoryId: z.number(),\n category: z.string(),\n starts: z.number(),\n wins: z.number(),\n top5: z.number(),\n poles: z.number(),\n avgStartPosition: z.number(),\n avgFinishPosition: z.number(),\n laps: z.number(),\n lapsLed: z.number(),\n avgIncidents: z.number(),\n avgPoints: z.number(),\n winPercentage: z.number(),\n top5Percentage: z.number(),\n lapsLedPercentage: z.number(),\n year: z.number(),\n polesPercentage: z.number()\n })),\n custId: z.number()\n});\nconst StatsSeasonDriverStandings = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonSupersessionStandings = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.unknown()),\n chunkFileNames: z.array(z.unknown())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonTeamStandings = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonTtStandings = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.string()),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonTtResults = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.string()),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonQualifyResults = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.unknown()),\n chunkFileNames: z.array(z.unknown())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsWorldRecords = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n carId: z.number(),\n trackId: z.number(),\n chunkInfo: z.nullable(z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n })),\n lastUpdated: z.string(),\n seasonYear: z.optional(z.number()),\n seasonQuarter: z.optional(z.number())\n })\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type StatsMemberBestsResponse = z.infer<typeof StatsMemberBests>;\nexport type StatsMemberCareerResponse = z.infer<typeof StatsMemberCareer>;\nexport type StatsMemberDivisionResponse = z.infer<typeof StatsMemberDivision>;\nexport type StatsMemberRecapResponse = z.infer<typeof StatsMemberRecap>;\nexport type StatsMemberRecentRacesResponse = z.infer<typeof StatsMemberRecentRaces>;\nexport type StatsMemberSummaryResponse = z.infer<typeof StatsMemberSummary>;\nexport type StatsMemberYearlyResponse = z.infer<typeof StatsMemberYearly>;\nexport type StatsSeasonDriverStandingsResponse = z.infer<typeof StatsSeasonDriverStandings>;\nexport type StatsSeasonSupersessionStandingsResponse = z.infer<typeof StatsSeasonSupersessionStandings>;\nexport type StatsSeasonTeamStandingsResponse = z.infer<typeof StatsSeasonTeamStandings>;\nexport type StatsSeasonTtStandingsResponse = z.infer<typeof StatsSeasonTtStandings>;\nexport type StatsSeasonTtResultsResponse = z.infer<typeof StatsSeasonTtResults>;\nexport type StatsSeasonQualifyResultsResponse = z.infer<typeof StatsSeasonQualifyResults>;\nexport type StatsWorldRecordsResponse = z.infer<typeof StatsWorldRecords>;\n\n// ---- Parameter Schemas ----\n\nconst StatsMemberBestsParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n carId: z.optional(z.number()), // First call should exclude car_id; use cars_driven list in return for subsequent calls. // maps to: car_id\n});\n\nconst StatsMemberCareerParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst StatsMemberDivisionParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n eventType: z.number(), // The event type code for the division type: 4 - Time Trial; 5 - Race // maps to: event_type\n});\n\nconst StatsMemberRecapParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n year: z.optional(z.number()), // Season year; if not supplied the current calendar year (UTC) is used.\n season: z.optional(z.number()), // Season (quarter) within the year; if not supplied the recap will be fore the entire year.\n});\n\nconst StatsMemberRecentRacesParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst StatsMemberSummaryParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst StatsMemberYearlyParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst StatsSeasonDriverStandingsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\nconst StatsSeasonSupersessionStandingsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\nconst StatsSeasonTeamStandingsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\nconst StatsSeasonTtStandingsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\nconst StatsSeasonTtResultsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n raceWeekNum: z.number(), // The first race week of a season is 0. // maps to: race_week_num\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n});\n\nconst StatsSeasonQualifyResultsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n raceWeekNum: z.number(), // The first race week of a season is 0. // maps to: race_week_num\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n});\n\nconst StatsWorldRecordsParamsSchema = z.object({\n carId: z.number(), // maps to: car_id\n trackId: z.number(), // maps to: track_id\n seasonYear: z.optional(z.number()), // Limit best times to a given year. // maps to: season_year\n seasonQuarter: z.optional(z.number()), // Limit best times to a given quarter; only applicable when year is used. // maps to: season_quarter\n});\n\n// ---- Exported Parameter Types ----\n\nexport type StatsMemberBestsParams = z.infer<typeof StatsMemberBestsParamsSchema>;\nexport type StatsMemberCareerParams = z.infer<typeof StatsMemberCareerParamsSchema>;\nexport type StatsMemberDivisionParams = z.infer<typeof StatsMemberDivisionParamsSchema>;\nexport type StatsMemberRecapParams = z.infer<typeof StatsMemberRecapParamsSchema>;\nexport type StatsMemberRecentRacesParams = z.infer<typeof StatsMemberRecentRacesParamsSchema>;\nexport type StatsMemberSummaryParams = z.infer<typeof StatsMemberSummaryParamsSchema>;\nexport type StatsMemberYearlyParams = z.infer<typeof StatsMemberYearlyParamsSchema>;\nexport type StatsSeasonDriverStandingsParams = z.infer<typeof StatsSeasonDriverStandingsParamsSchema>;\nexport type StatsSeasonSupersessionStandingsParams = z.infer<typeof StatsSeasonSupersessionStandingsParamsSchema>;\nexport type StatsSeasonTeamStandingsParams = z.infer<typeof StatsSeasonTeamStandingsParamsSchema>;\nexport type StatsSeasonTtStandingsParams = z.infer<typeof StatsSeasonTtStandingsParamsSchema>;\nexport type StatsSeasonTtResultsParams = z.infer<typeof StatsSeasonTtResultsParamsSchema>;\nexport type StatsSeasonQualifyResultsParams = z.infer<typeof StatsSeasonQualifyResultsParamsSchema>;\nexport type StatsWorldRecordsParams = z.infer<typeof StatsWorldRecordsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n StatsMemberBestsParamsSchema,\n StatsMemberCareerParamsSchema,\n StatsMemberDivisionParamsSchema,\n StatsMemberRecapParamsSchema,\n StatsMemberRecentRacesParamsSchema,\n StatsMemberSummaryParamsSchema,\n StatsMemberYearlyParamsSchema,\n StatsSeasonDriverStandingsParamsSchema,\n StatsSeasonSupersessionStandingsParamsSchema,\n StatsSeasonTeamStandingsParamsSchema,\n StatsSeasonTtStandingsParamsSchema,\n StatsSeasonTtResultsParamsSchema,\n StatsSeasonQualifyResultsParamsSchema,\n StatsWorldRecordsParamsSchema,\n StatsMemberBests,\n StatsMemberCareer,\n StatsMemberDivision,\n StatsMemberRecap,\n StatsMemberRecentRaces,\n StatsMemberSummary,\n StatsMemberYearly,\n StatsSeasonDriverStandings,\n StatsSeasonSupersessionStandings,\n StatsSeasonTeamStandings,\n StatsSeasonTtStandings,\n StatsSeasonTtResults,\n StatsSeasonQualifyResults,\n StatsWorldRecords,\n};","import type { IRacingClient } from \"../client\";\nimport type { StatsMemberBestsParams, StatsMemberCareerParams, StatsMemberDivisionParams, StatsMemberRecapParams, StatsMemberRecentRacesParams, StatsMemberSummaryParams, StatsMemberYearlyParams, StatsSeasonDriverStandingsParams, StatsSeasonSupersessionStandingsParams, StatsSeasonTeamStandingsParams, StatsSeasonTtStandingsParams, StatsSeasonTtResultsParams, StatsSeasonQualifyResultsParams, StatsWorldRecordsParams, StatsMemberBestsResponse, StatsMemberCareerResponse, StatsMemberDivisionResponse, StatsMemberRecapResponse, StatsMemberRecentRacesResponse, StatsMemberSummaryResponse, StatsMemberYearlyResponse, StatsSeasonDriverStandingsResponse, StatsSeasonSupersessionStandingsResponse, StatsSeasonTeamStandingsResponse, StatsSeasonTtStandingsResponse, StatsSeasonTtResultsResponse, StatsSeasonQualifyResultsResponse, StatsWorldRecordsResponse } from \"./types\";\nimport { StatsMemberBests, StatsMemberCareer, StatsMemberDivision, StatsMemberRecap, StatsMemberRecentRaces, StatsMemberSummary, StatsMemberYearly, StatsSeasonDriverStandings, StatsSeasonSupersessionStandings, StatsSeasonTeamStandings, StatsSeasonTtStandings, StatsSeasonTtResults, StatsSeasonQualifyResults, StatsWorldRecords } from \"./types\";\n\nexport class StatsService {\n constructor(private client: IRacingClient) {}\n\n /**\n * member_bests\n * @see https://members-ng.iracing.com/data/stats/member_bests\n * @sample stats.member_bests.json\n */\n async memberBests(params: StatsMemberBestsParams): Promise<StatsMemberBestsResponse> {\n return this.client.get<StatsMemberBestsResponse>(\"https://members-ng.iracing.com/data/stats/member_bests\", { params, schema: StatsMemberBests });\n }\n\n /**\n * member_career\n * @see https://members-ng.iracing.com/data/stats/member_career\n * @sample stats.member_career.json\n */\n async memberCareer(params: StatsMemberCareerParams): Promise<StatsMemberCareerResponse> {\n return this.client.get<StatsMemberCareerResponse>(\"https://members-ng.iracing.com/data/stats/member_career\", { params, schema: StatsMemberCareer });\n }\n\n /**\n * member_division\n * @see https://members-ng.iracing.com/data/stats/member_division\n * @sample stats.member_division.json\n */\n async memberDivision(params: StatsMemberDivisionParams): Promise<StatsMemberDivisionResponse> {\n return this.client.get<StatsMemberDivisionResponse>(\"https://members-ng.iracing.com/data/stats/member_division\", { params, schema: StatsMemberDivision });\n }\n\n /**\n * member_recap\n * @see https://members-ng.iracing.com/data/stats/member_recap\n * @sample stats.member_recap.json\n */\n async memberRecap(params: StatsMemberRecapParams): Promise<StatsMemberRecapResponse> {\n return this.client.get<StatsMemberRecapResponse>(\"https://members-ng.iracing.com/data/stats/member_recap\", { params, schema: StatsMemberRecap });\n }\n\n /**\n * member_recent_races\n * @see https://members-ng.iracing.com/data/stats/member_recent_races\n * @sample stats.member_recent_races.json\n */\n async memberRecentRaces(params: StatsMemberRecentRacesParams): Promise<StatsMemberRecentRacesResponse> {\n return this.client.get<StatsMemberRecentRacesResponse>(\"https://members-ng.iracing.com/data/stats/member_recent_races\", { params, schema: StatsMemberRecentRaces });\n }\n\n /**\n * member_summary\n * @see https://members-ng.iracing.com/data/stats/member_summary\n * @sample stats.member_summary.json\n */\n async memberSummary(params: StatsMemberSummaryParams): Promise<StatsMemberSummaryResponse> {\n return this.client.get<StatsMemberSummaryResponse>(\"https://members-ng.iracing.com/data/stats/member_summary\", { params, schema: StatsMemberSummary });\n }\n\n /**\n * member_yearly\n * @see https://members-ng.iracing.com/data/stats/member_yearly\n * @sample stats.member_yearly.json\n */\n async memberYearly(params: StatsMemberYearlyParams): Promise<StatsMemberYearlyResponse> {\n return this.client.get<StatsMemberYearlyResponse>(\"https://members-ng.iracing.com/data/stats/member_yearly\", { params, schema: StatsMemberYearly });\n }\n\n /**\n * season_driver_standings\n * @see https://members-ng.iracing.com/data/stats/season_driver_standings\n * @sample stats.season_driver_standings.json\n */\n async seasonDriverStandings(params: StatsSeasonDriverStandingsParams): Promise<StatsSeasonDriverStandingsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_driver_standings', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonDriverStandingsResponse>(\"https://members-ng.iracing.com/data/stats/season_driver_standings\", { params, schema: StatsSeasonDriverStandings });\n }\n\n /**\n * season_supersession_standings\n * @see https://members-ng.iracing.com/data/stats/season_supersession_standings\n * @sample stats.season_supersession_standings.json\n */\n async seasonSupersessionStandings(params: StatsSeasonSupersessionStandingsParams): Promise<StatsSeasonSupersessionStandingsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_supersession_standings', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonSupersessionStandingsResponse>(\"https://members-ng.iracing.com/data/stats/season_supersession_standings\", { params, schema: StatsSeasonSupersessionStandings });\n }\n\n /**\n * season_team_standings\n * @see https://members-ng.iracing.com/data/stats/season_team_standings\n * @sample stats.season_team_standings.json\n */\n async seasonTeamStandings(params: StatsSeasonTeamStandingsParams): Promise<StatsSeasonTeamStandingsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_team_standings', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonTeamStandingsResponse>(\"https://members-ng.iracing.com/data/stats/season_team_standings\", { params, schema: StatsSeasonTeamStandings });\n }\n\n /**\n * season_tt_standings\n * @see https://members-ng.iracing.com/data/stats/season_tt_standings\n * @sample stats.season_tt_standings.json\n */\n async seasonTtStandings(params: StatsSeasonTtStandingsParams): Promise<StatsSeasonTtStandingsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_tt_standings', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonTtStandingsResponse>(\"https://members-ng.iracing.com/data/stats/season_tt_standings\", { params, schema: StatsSeasonTtStandings });\n }\n\n /**\n * season_tt_results\n * @see https://members-ng.iracing.com/data/stats/season_tt_results\n * @sample stats.season_tt_results.json\n */\n async seasonTtResults(params: StatsSeasonTtResultsParams): Promise<StatsSeasonTtResultsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_tt_results', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonTtResultsResponse>(\"https://members-ng.iracing.com/data/stats/season_tt_results\", { params, schema: StatsSeasonTtResults });\n }\n\n /**\n * season_qualify_results\n * @see https://members-ng.iracing.com/data/stats/season_qualify_results\n * @sample stats.season_qualify_results.json\n */\n async seasonQualifyResults(params: StatsSeasonQualifyResultsParams): Promise<StatsSeasonQualifyResultsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_qualify_results', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonQualifyResultsResponse>(\"https://members-ng.iracing.com/data/stats/season_qualify_results\", { params, schema: StatsSeasonQualifyResults });\n }\n\n /**\n * world_records\n * @see https://members-ng.iracing.com/data/stats/world_records\n * @sample stats.world_records.json\n */\n async worldRecords(params: StatsWorldRecordsParams): Promise<StatsWorldRecordsResponse> {\n return this.client.get<StatsWorldRecordsResponse>(\"https://members-ng.iracing.com/data/stats/world_records\", { params, schema: StatsWorldRecords });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst TeamGet = z.object({\n teamId: z.number(),\n ownerId: z.number(),\n teamName: z.string(),\n created: z.string(),\n hidden: z.boolean(),\n message: z.string(),\n about: z.string(),\n url: z.string(),\n rosterCount: z.number(),\n recruiting: z.boolean(),\n privateWall: z.boolean(),\n isDefault: z.boolean(),\n isOwner: z.boolean(),\n isAdmin: z.boolean(),\n suit: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string()\n }),\n owner: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n owner: z.boolean(),\n admin: z.boolean()\n }),\n tags: z.object({\n categorized: z.array(z.unknown()),\n notCategorized: z.array(z.unknown())\n }),\n teamApplications: z.array(z.unknown()),\n pendingRequests: z.array(z.unknown()),\n isMember: z.boolean(),\n isApplicant: z.boolean(),\n isInvite: z.boolean(),\n isIgnored: z.boolean(),\n roster: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n owner: z.boolean(),\n admin: z.boolean()\n }))\n});\nconst TeamMembership = z.array(z.object({\n teamId: z.number(),\n teamName: z.string(),\n owner: z.boolean(),\n admin: z.boolean(),\n defaultTeam: z.boolean()\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type TeamGetResponse = z.infer<typeof TeamGet>;\nexport type TeamMembershipResponse = z.infer<typeof TeamMembership>;\n\n// ---- Parameter Schemas ----\n\nconst TeamGetParamsSchema = z.object({\n teamId: z.number(), // maps to: team_id\n includeLicenses: z.optional(z.boolean()), // For faster responses, only request when necessary. // maps to: include_licenses\n});\n\nconst TeamMembershipParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type TeamGetParams = z.infer<typeof TeamGetParamsSchema>;\nexport type TeamMembershipParams = z.infer<typeof TeamMembershipParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n TeamGetParamsSchema,\n TeamMembershipParamsSchema,\n TeamGet,\n TeamMembership,\n};","import type { IRacingClient } from \"../client\";\nimport type { TeamGetParams, TeamGetResponse, TeamMembershipResponse } from \"./types\";\nimport { TeamGet, TeamMembership } from \"./types\";\n\nexport class TeamService {\n constructor(private client: IRacingClient) {}\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/team/get\n * @sample team.get.json\n */\n async get(params: TeamGetParams): Promise<TeamGetResponse> {\n return this.client.get<TeamGetResponse>(\"https://members-ng.iracing.com/data/team/get\", { params, schema: TeamGet });\n }\n\n /**\n * membership\n * @see https://members-ng.iracing.com/data/team/membership\n * @sample team.membership.json\n */\n async membership(): Promise<TeamMembershipResponse> {\n return this.client.get<TeamMembershipResponse>(\"https://members-ng.iracing.com/data/team/membership\", { schema: TeamMembership });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst TimeAttackMemberSeasonResults = z.array(z.unknown());\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type TimeAttackMemberSeasonResultsResponse = z.infer<typeof TimeAttackMemberSeasonResults>;\n\n// ---- Parameter Schemas ----\n\nconst TimeAttackMemberSeasonResultsParamsSchema = z.object({\n taCompSeasonId: z.number(), // maps to: ta_comp_season_id\n});\n\n// ---- Exported Parameter Types ----\n\nexport type TimeAttackMemberSeasonResultsParams = z.infer<typeof TimeAttackMemberSeasonResultsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n TimeAttackMemberSeasonResultsParamsSchema,\n TimeAttackMemberSeasonResults,\n};","import type { IRacingClient } from \"../client\";\nimport type { TimeAttackMemberSeasonResultsParams, TimeAttackMemberSeasonResultsResponse } from \"./types\";\nimport { TimeAttackMemberSeasonResults } from \"./types\";\n\nexport class TimeAttackService {\n constructor(private client: IRacingClient) {}\n\n /**\n * member_season_results\n * @see https://members-ng.iracing.com/data/time_attack/member_season_results\n * @sample time_attack.member_season_results.json\n */\n async memberSeasonResults(params: TimeAttackMemberSeasonResultsParams): Promise<TimeAttackMemberSeasonResultsResponse> {\n return this.client.get<TimeAttackMemberSeasonResultsResponse>(\"https://members-ng.iracing.com/data/time_attack/member_season_results\", { params, schema: TimeAttackMemberSeasonResults });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Common Schemas ----\n\nconst TrackMapLayersSchema = z.object({\n background: z.string(),\n inactive: z.string(),\n active: z.string(),\n pitroad: z.string(),\n startFinish: z.string(), // maps from: start-finish\n turns: z.string()\n});\n\n// ---- Response Schemas ----\n\nconst TrackAssets = z.record(z.string(), z.object({\n coordinates: z.optional(z.nullable(z.string())),\n detailCopy: z.optional(z.nullable(z.string())),\n detailTechspecsCopy: z.optional(z.nullable(z.string())),\n detailVideo: z.optional(z.nullable(z.string())),\n folder: z.optional(z.nullable(z.string())),\n galleryImages: z.optional(z.nullable(z.string())),\n galleryPrefix: z.optional(z.nullable(z.string())),\n largeImage: z.optional(z.nullable(z.string())),\n logo: z.optional(z.nullable(z.string())),\n north: z.optional(z.nullable(z.string())),\n numSvgImages: z.optional(z.nullable(z.number())),\n smallImage: z.optional(z.nullable(z.string())),\n trackId: z.optional(z.nullable(z.number())),\n trackMap: z.optional(z.nullable(z.string())),\n trackMapLayers: z.optional(z.nullable(z.object({\n background: z.string(),\n inactive: z.string(),\n active: z.string(),\n pitroad: z.string(),\n startFinish: z.string(),\n turns: z.string()\n })))\n}));\nconst TrackGet = z.array(z.object({\n aiEnabled: z.boolean(),\n allowPitlaneCollisions: z.boolean(),\n allowRollingStart: z.boolean(),\n allowStandingStart: z.boolean(),\n awardExempt: z.boolean(),\n category: z.string(),\n categoryId: z.number(),\n closes: z.string(),\n configName: z.optional(z.string()),\n cornersPerLap: z.number(),\n created: z.string(),\n firstSale: z.string(),\n folder: z.string(),\n freeWithSubscription: z.boolean(),\n fullyLit: z.boolean(),\n gridStalls: z.number(),\n hasOptPath: z.boolean(),\n hasShortParadeLap: z.boolean(),\n hasStartZone: z.boolean(),\n hasSvgMap: z.boolean(),\n isDirt: z.boolean(),\n isOval: z.boolean(),\n isPsPurchasable: z.boolean(),\n lapScoring: z.number(),\n latitude: z.number(),\n location: z.string(),\n logo: z.string(),\n longitude: z.number(),\n maxCars: z.number(),\n nightLighting: z.boolean(),\n numberPitstalls: z.number(),\n opens: z.string(),\n packageId: z.number(),\n pitRoadSpeedLimit: z.optional(z.number()),\n price: z.number(),\n priority: z.number(),\n purchasable: z.boolean(),\n qualifyLaps: z.number(),\n rainEnabled: z.boolean(),\n restartOnLeft: z.boolean(),\n retired: z.boolean(),\n searchFilters: z.string(),\n siteUrl: z.optional(z.string()),\n sku: z.number(),\n smallImage: z.string(),\n soloLaps: z.number(),\n startOnLeft: z.boolean(),\n supportsGripCompound: z.boolean(),\n techTrack: z.boolean(),\n timeZone: z.string(),\n trackConfigLength: z.number(),\n trackDirpath: z.string(),\n trackId: z.number(),\n trackName: z.string(),\n trackType: z.number(),\n trackTypeText: z.string(),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n priceDisplay: z.optional(z.string()),\n nominalLapTime: z.optional(z.number()),\n banking: z.optional(z.string())\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type TrackAssetsResponse = z.infer<typeof TrackAssets>;\nexport type TrackGetResponse = z.infer<typeof TrackGet>;\n\n// ---- Parameter Schemas ----\n\nconst TrackAssetsParamsSchema = z.object({\n});\n\nconst TrackGetParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type TrackAssetsParams = z.infer<typeof TrackAssetsParamsSchema>;\nexport type TrackGetParams = z.infer<typeof TrackGetParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n TrackAssetsParamsSchema,\n TrackGetParamsSchema,\n TrackAssets,\n TrackGet,\n};","import type { IRacingClient } from \"../client\";\nimport type { TrackAssetsResponse, TrackGetResponse } from \"./types\";\nimport { TrackAssets, TrackGet } from \"./types\";\n\nexport class TrackService {\n constructor(private client: IRacingClient) {}\n\n /**\n * assets\n * @see https://members-ng.iracing.com/data/track/assets\n * @sample track.assets.json\n */\n async assets(): Promise<TrackAssetsResponse> {\n return this.client.get<TrackAssetsResponse>(\"https://members-ng.iracing.com/data/track/assets\", { schema: TrackAssets });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/track/get\n * @sample track.get.json\n */\n async get(): Promise<TrackGetResponse> {\n return this.client.get<TrackGetResponse>(\"https://members-ng.iracing.com/data/track/get\", { schema: TrackGet });\n }\n\n}","/* AUTO-GENERATED — do not edit */\n\nimport { IRacingClient, IRacingError, type IRacingClientOptions, type IRacingErrorOptions } from \"./client\";\nimport { CarService } from \"./car/service\";\nimport { CarclassService } from \"./carclass/service\";\nimport { ConstantsService } from \"./constants/service\";\nimport { DriverStatsByCategoryService } from \"./driver-stats-by-category/service\";\nimport { HostedService } from \"./hosted/service\";\nimport { LeagueService } from \"./league/service\";\nimport { LookupService } from \"./lookup/service\";\nimport { MemberService } from \"./member/service\";\nimport { ResultsService } from \"./results/service\";\nimport { SeasonService } from \"./season/service\";\nimport { SeriesService } from \"./series/service\";\nimport { StatsService } from \"./stats/service\";\nimport { TeamService } from \"./team/service\";\nimport { TimeAttackService } from \"./time-attack/service\";\nimport { TrackService } from \"./track/service\";\n\n// Re-export client\nexport { IRacingClient, IRacingError, type IRacingClientOptions, type IRacingErrorOptions };\n\n// Re-export http-client-toolkit types\nexport type { HttpClientStores } from '@http-client-toolkit/core';\n\n// Re-export auth types and helpers\nexport type {\n AuthConfig,\n PasswordLimitedAuth,\n AuthorizationCodeAuth,\n TokenResponse,\n OnTokenRefresh,\n FetchLike,\n} from \"./auth\";\n\nexport {\n OAuthError,\n TokenRefreshError,\n buildAuthorizationUrl,\n exchangeAuthorizationCode,\n} from \"./auth\";\n\nexport * from \"./car/types\";\nexport * from \"./carclass/types\";\nexport * from \"./constants/types\";\nexport * from \"./driver-stats-by-category/types\";\nexport * from \"./hosted/types\";\nexport * from \"./league/types\";\nexport * from \"./lookup/types\";\nexport * from \"./member/types\";\nexport * from \"./results/types\";\nexport * from \"./season/types\";\nexport * from \"./series/types\";\nexport * from \"./stats/types\";\nexport * from \"./team/types\";\nexport * from \"./time-attack/types\";\nexport * from \"./track/types\";\n\nexport class IRacingDataClient {\n private client: IRacingClient;\n\n public car: CarService;\n public carclass: CarclassService;\n public constants: ConstantsService;\n public driverStatsByCategory: DriverStatsByCategoryService;\n public hosted: HostedService;\n public league: LeagueService;\n public lookup: LookupService;\n public member: MemberService;\n public results: ResultsService;\n public season: SeasonService;\n public series: SeriesService;\n public stats: StatsService;\n public team: TeamService;\n public timeAttack: TimeAttackService;\n public track: TrackService;\n\n constructor(opts: IRacingClientOptions) {\n this.client = new IRacingClient(opts);\n\n this.car = new CarService(this.client);\n this.carclass = new CarclassService(this.client);\n this.constants = new ConstantsService(this.client);\n this.driverStatsByCategory = new DriverStatsByCategoryService(this.client);\n this.hosted = new HostedService(this.client);\n this.league = new LeagueService(this.client);\n this.lookup = new LookupService(this.client);\n this.member = new MemberService(this.client);\n this.results = new ResultsService(this.client);\n this.season = new SeasonService(this.client);\n this.series = new SeriesService(this.client);\n this.stats = new StatsService(this.client);\n this.team = new TeamService(this.client);\n this.timeAttack = new TimeAttackService(this.client);\n this.track = new TrackService(this.client);\n }\n}"]}
1
+ {"version":3,"sources":["../src/auth/types.ts","../src/auth/errors.ts","../src/auth/constants.ts","../src/auth/crypto.ts","../src/auth/flows/password-limited.ts","../src/auth/flows/authorization-code.ts","../src/auth/flows/refresh.ts","../src/auth/token-manager.ts","../src/client.ts","../src/car/types.ts","../src/car/service.ts","../src/carclass/types.ts","../src/carclass/service.ts","../src/constants/types.ts","../src/constants/service.ts","../src/driver-stats-by-category/types.ts","../src/driver-stats-by-category/service.ts","../src/hosted/types.ts","../src/hosted/service.ts","../src/league/types.ts","../src/league/service.ts","../src/lookup/types.ts","../src/lookup/service.ts","../src/member/types.ts","../src/member/service.ts","../src/results/types.ts","../src/results/service.ts","../src/season/types.ts","../src/season/service.ts","../src/series/types.ts","../src/series/service.ts","../src/stats/types.ts","../src/stats/service.ts","../src/team/types.ts","../src/team/service.ts","../src/time-attack/types.ts","../src/time-attack/service.ts","../src/track/types.ts","../src/track/service.ts","../src/index.ts"],"names":["z","record","z2","z3","z4","z5","z7","z8","z9","z10","z11","z12","z13","z14","z15","z16"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,IAAM,sBAAwBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC1C,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,UAAA,EAAcA,WAAQ,QAAQ,CAAA;AAAA,EAC9B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACpC,wBAAA,EAA4BA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC/C,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAC9B,CAAC,CAAA;AA6IM,SAAS,sBAAsB,IAAA,EAA+C;AACnF,EAAA,OAAO,KAAK,IAAA,KAAS,kBAAA;AACvB;AAKO,SAAS,wBAAwB,IAAA,EAAiD;AACvF,EAAA,OAAO,KAAK,IAAA,KAAS,oBAAA;AACvB;;;ACzJO,IAAM,UAAA,GAAN,cAAyB,KAAA,CAAM;AAAA,EAGpC,WAAA,CACkB,IAAA,EACA,WAAA,EACA,GAAA,EAChB;AACA,IAAA,KAAA,CAAM,eAAe,IAAI,CAAA;AAJT,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AACA,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AALlB,IAAA,aAAA,CAAA,IAAA,EAAyB,MAAA,EAAe,YAAA,CAAA;AAAA,EAQxC;AAAA,EAEA,IAAI,cAAA,GAA0B;AAC5B,IAAA,OAAO,KAAK,IAAA,KAAS,eAAA;AAAA,EACvB;AAAA,EAEA,IAAI,eAAA,GAA2B;AAC7B,IAAA,OAAO,KAAK,IAAA,KAAS,gBAAA;AAAA,EACvB;AAAA,EAEA,IAAI,aAAA,GAAyB;AAC3B,IAAA,OAAO,KAAK,IAAA,KAAS,cAAA;AAAA,EACvB;AAAA,EAEA,IAAI,oBAAA,GAAgC;AAClC,IAAA,OAAO,KAAK,IAAA,KAAS,qBAAA;AAAA,EACvB;AACF;AAKO,IAAM,iBAAA,GAAN,cAAgC,UAAA,CAAW;AAAA,EAGhD,WAAA,CACE,IAAA,EACA,WAAA,EACgB,KAAA,EAChB;AACA,IAAA,KAAA,CAAM,MAAM,WAAW,CAAA;AAFP,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AALlB,IAAA,aAAA,CAAA,IAAA,EAAyB,MAAA,EAAe,mBAAA,CAAA;AAAA,EAQxC;AACF;;;ACzDO,IAAM,eAAA,GAAkB;AAAA,EAC7B,SAAA,EAAW,4CAAA;AAAA,EACX,KAAA,EAAO;AACT,CAAA;AAGO,IAAM,kBAAA,GAAqB,cAAA;AAE3B,IAAM,iBAAA,GAAoB,gCAAA;AAG1B,IAAM,4BAAA,GAA+B,EAAA;AAGrC,IAAM,qCAAA,GAAwC,GAAA;AAG9C,IAAM,6BAAA,GAAgC,GAAA;;;ACC7C,SAAsB,UAAA,CAAW,QAAgB,UAAA,EAAqC;AAAA,EAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACpF,IAAA,MAAM,YAAA,GAAe,UAAA,CAAW,IAAA,EAAK,CAAE,WAAA,EAAY;AACnD,IAAA,MAAM,WAAW,MAAA,GAAS,YAAA;AAE1B,IAAA,MAAM,OAAA,GAAU,IAAI,WAAA,EAAY;AAChC,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,MAAA,CAAO,QAAQ,CAAA;AACpC,IAAA,MAAM,aAAa,MAAM,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,WAAW,IAAI,CAAA;AAC7D,IAAA,MAAM,YAAY,KAAA,CAAM,IAAA,CAAK,IAAI,UAAA,CAAW,UAAU,CAAC,CAAA;AAGvD,IAAA,OAAO,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa,GAAG,SAAS,CAAC,CAAA;AAAA,EAC/C,CAAA,CAAA;AAAA;AAMA,SAAsB,YAAA,CAAa,UAAkB,QAAA,EAAmC;AAAA,EAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtF,IAAA,OAAO,UAAA,CAAW,UAAU,QAAQ,CAAA;AAAA,EACtC,CAAA,CAAA;AAAA;AAMA,SAAsB,gBAAA,CAAiB,UAAkB,YAAA,EAAuC;AAAA,EAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC9F,IAAA,OAAO,UAAA,CAAW,cAAc,QAAQ,CAAA;AAAA,EAC1C,CAAA,CAAA;AAAA;AAQO,SAAS,oBAAA,CAAqB,SAAiB,EAAA,EAAY;AAChE,EAAA,MAAM,eAAA,GAAkB,oEAAA;AACxB,EAAA,MAAM,YAAA,GAAe,IAAI,UAAA,CAAW,MAAM,CAAA;AAC1C,EAAA,MAAA,CAAO,gBAAgB,YAAY,CAAA;AACnC,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,YAAA,EAAc,CAAC,IAAA,KAAS,gBAAgB,IAAA,GAAO,eAAA,CAAgB,MAAM,CAAC,CAAA,CAAE,IAAA;AAAA,IACxF;AAAA,GACF;AACF;AAMA,SAAsB,YAAA,GAAkC;AAAA,EAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtD,IAAA,MAAM,QAAA,GAAW,qBAAqB,EAAE,CAAA;AAExC,IAAA,MAAM,OAAA,GAAU,IAAI,WAAA,EAAY;AAChC,IAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,MAAA,CAAO,QAAQ,CAAA;AACpC,IAAA,MAAM,aAAa,MAAM,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,WAAW,IAAI,CAAA;AAC7D,IAAA,MAAM,YAAY,KAAA,CAAM,IAAA,CAAK,IAAI,UAAA,CAAW,UAAU,CAAC,CAAA;AAGvD,IAAA,MAAM,YAAY,IAAA,CAAK,MAAA,CAAO,aAAa,GAAG,SAAS,CAAC,CAAA,CACrD,OAAA,CAAQ,KAAA,EAAO,GAAG,EAClB,OAAA,CAAQ,KAAA,EAAO,GAAG,CAAA,CAClB,OAAA,CAAQ,MAAM,EAAE,CAAA;AAEnB,IAAA,OAAO,EAAE,UAAU,SAAA,EAAU;AAAA,EAC/B,CAAA,CAAA;AAAA;;;AC5DA,SAAsB,4BACpB,OAAA,EACwB;AAAA,EAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACxB,IAAA,MAAM,EAAE,QAAA,EAAU,YAAA,EAAc,QAAA,EAAU,QAAA,EAAU,SAAQ,GAAI,OAAA;AAGhE,IAAA,MAAM,CAAC,cAAA,EAAgB,kBAAkB,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,MAC7D,YAAA,CAAa,UAAU,QAAQ,CAAA;AAAA,MAC/B,gBAAA,CAAiB,UAAU,YAAY;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,IAAI,eAAA,CAAgB;AAAA,MAC/B,UAAA,EAAY,kBAAA;AAAA,MACZ,SAAA,EAAW,QAAA;AAAA,MACX,aAAA,EAAe,kBAAA;AAAA,MACf,QAAA;AAAA,MACA,QAAA,EAAU,cAAA;AAAA,MACV,KAAA,EAAO;AAAA,KACR,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,eAAA,CAAgB,KAAA,EAAO;AAAA,MACpD,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAA,EAAoC;AAAA,MAC/D,IAAA,EAAM,KAAK,QAAA;AAAS,KACrB,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAEjC,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,MAAM,IAAI,UAAA,CAAW,IAAA,CAAK,OAAO,IAAA,CAAK,iBAAA,EAAmB,KAAK,SAAS,CAAA;AAAA,IACzE;AAGA,IAAA,OAAO,mBAAA,CAAoB,MAAM,IAAI,CAAA;AAAA,EACvC,CAAA,CAAA;AAAA;;;AChCA,SAAsB,sBACpB,OAAA,EACiC;AAAA,EAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAzBnC,IAAA,IAAA,EAAA;AA0BE,IAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAa,KAAA,EAAO,OAAA,GAAU,MAAK,GAAI,OAAA;AACzD,IAAA,MAAM,KAAA,GAAA,CAAQ,EAAA,GAAA,OAAA,CAAQ,KAAA,KAAR,IAAA,GAAA,EAAA,GAAiB,OAAO,UAAA,EAAW;AAEjD,IAAA,MAAM,MAAA,GAAS,IAAI,eAAA,CAAgB;AAAA,MACjC,aAAA,EAAe,MAAA;AAAA,MACf,SAAA,EAAW,QAAA;AAAA,MACX,YAAA,EAAc,WAAA;AAAA,MACd;AAAA,KACD,CAAA;AAED,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAA,CAAO,GAAA,CAAI,SAAS,KAAK,CAAA;AAAA,IAC3B;AAEA,IAAA,IAAI,IAAA;AACJ,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,IAAA,GAAO,MAAM,YAAA,EAAa;AAC1B,MAAA,MAAA,CAAO,GAAA,CAAI,gBAAA,EAAkB,IAAA,CAAK,SAAS,CAAA;AAC3C,MAAA,MAAA,CAAO,GAAA,CAAI,yBAAyB,MAAM,CAAA;AAAA,IAC5C;AAEA,IAAA,OAAO;AAAA,MACL,KAAK,CAAA,EAAG,eAAA,CAAgB,SAAS,CAAA,CAAA,EAAI,MAAA,CAAO,UAAU,CAAA,CAAA;AAAA,MACtD,KAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF,CAAA,CAAA;AAAA;AAeA,SAAsB,0BACpB,OAAA,EACwB;AAAA,EAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AArE1B,IAAA,IAAA,EAAA;AAsEE,IAAA,MAAM,EAAE,QAAA,EAAU,YAAA,EAAc,IAAA,EAAM,WAAA,EAAa,cAAa,GAAI,OAAA;AACpE,IAAA,MAAM,OAAA,GAAA,CAAU,EAAA,GAAA,OAAA,CAAQ,OAAA,KAAR,IAAA,GAAA,EAAA,GAAmB,UAAA,CAAW,KAAA;AAE9C,IAAA,MAAM,YAAA,GAAe,MAAM,gBAAA,CAAiB,QAAA,EAAU,YAAY,CAAA;AAElE,IAAA,MAAM,IAAA,GAAO,IAAI,eAAA,CAAgB;AAAA,MAC/B,UAAA,EAAY,oBAAA;AAAA,MACZ,SAAA,EAAW,QAAA;AAAA,MACX,aAAA,EAAe,YAAA;AAAA,MACf,IAAA;AAAA,MACA,YAAA,EAAc;AAAA,KACf,CAAA;AAED,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,IAAA,CAAK,GAAA,CAAI,iBAAiB,YAAY,CAAA;AAAA,IACxC;AAEA,IAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,eAAA,CAAgB,KAAA,EAAO;AAAA,MACpD,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAA,EAAoC;AAAA,MAC/D,IAAA,EAAM,KAAK,QAAA;AAAS,KACrB,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAEjC,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,MAAM,IAAI,UAAA,CAAW,IAAA,CAAK,OAAO,IAAA,CAAK,iBAAA,EAAmB,KAAK,SAAS,CAAA;AAAA,IACzE;AAGA,IAAA,OAAO,mBAAA,CAAoB,MAAM,IAAI,CAAA;AAAA,EACvC,CAAA,CAAA;AAAA;;;ACnFA,SAAsB,cAAc,OAAA,EAAsD;AAAA,EAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACxF,IAAA,MAAM,EAAE,QAAA,EAAU,YAAA,EAAc,YAAA,EAAc,SAAQ,GAAI,OAAA;AAE1D,IAAA,MAAM,YAAA,GAAe,MAAM,gBAAA,CAAiB,QAAA,EAAU,YAAY,CAAA;AAElE,IAAA,MAAM,IAAA,GAAO,IAAI,eAAA,CAAgB;AAAA,MAC/B,UAAA,EAAY,eAAA;AAAA,MACZ,SAAA,EAAW,QAAA;AAAA,MACX,aAAA,EAAe,YAAA;AAAA,MACf,aAAA,EAAe,YAAA;AAAA,MACf,KAAA,EAAO;AAAA,KACR,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,eAAA,CAAgB,KAAA,EAAO;AAAA,MACpD,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAA,EAAoC;AAAA,MAC/D,IAAA,EAAM,KAAK,QAAA;AAAS,KACrB,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAEjC,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,MAAM,IAAI,UAAA,CAAW,IAAA,CAAK,OAAO,IAAA,CAAK,iBAAA,EAAmB,KAAK,SAAS,CAAA;AAAA,IACzE;AAGA,IAAA,OAAO,mBAAA,CAAoB,MAAM,IAAI,CAAA;AAAA,EACvC,CAAA,CAAA;AAAA;;;ACpBO,IAAM,eAAN,MAAmB;AAAA,EAUxB,YAAY,OAAA,EAA8B;AAT1C,IAAA,aAAA,CAAA,IAAA,EAAQ,YAAA,EAAgC,IAAA,CAAA;AACxC,IAAA,aAAA,CAAA,IAAA,EAAQ,gBAAA,EAA6C,IAAA,CAAA;AACrD,IAAA,aAAA,CAAA,IAAA,EAAQ,kBAAA,EAA2B,CAAA,CAAA;AAEnC,IAAA,aAAA,CAAA,IAAA,EAAiB,UAAA,CAAA;AACjB,IAAA,aAAA,CAAA,IAAA,EAAiB,cAAA,CAAA;AACjB,IAAA,aAAA,CAAA,IAAA,EAAiB,SAAA,CAAA;AACjB,IAAA,aAAA,CAAA,IAAA,EAAiB,gBAAA,CAAA;AAGf,IAAA,IAAA,CAAK,WAAW,OAAA,CAAQ,QAAA;AACxB,IAAA,IAAA,CAAK,eAAe,OAAA,CAAQ,YAAA;AAC5B,IAAA,IAAA,CAAK,UAAU,OAAA,CAAQ,OAAA;AACvB,IAAA,IAAA,CAAK,iBAAiB,OAAA,CAAQ,cAAA;AAAA,EAChC;AAAA;AAAA,EAGA,UAAU,QAAA,EAA+B;AA3C3C,IAAA,IAAA,EAAA;AA4CI,IAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AACxC,IAAA,IAAA,CAAK,UAAA,GAAa;AAAA,MAChB,aAAa,QAAA,CAAS,YAAA;AAAA,MACtB,YAAA,EAAA,CAAc,EAAA,GAAA,QAAA,CAAS,aAAA,KAAT,IAAA,GAAA,EAAA,GAA0B,IAAA;AAAA,MACxC,SAAA,EAAW,GAAA,IAAO,QAAA,CAAS,UAAA,IAAc,qCAAA,CAAA;AAAA,MACzC,WAAW,QAAA,CAAS;AAAA,KACtB;AAAA,EACF;AAAA;AAAA,EAGA,cAAc,KAAA,EAAyB;AACrC,IAAA,IAAA,CAAK,UAAA,GAAa,KAAA;AAAA,EACpB;AAAA;AAAA,EAGA,SAAA,GAAqB;AACnB,IAAA,OAAO,KAAK,UAAA,KAAe,IAAA;AAAA,EAC7B;AAAA;AAAA,EAGA,YAAA,GAAwB;AACtB,IAAA,IAAI,CAAC,IAAA,CAAK,UAAA,EAAY,OAAO,KAAA;AAC7B,IAAA,MAAM,MAAM,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,GAAA,KAAQ,GAAI,CAAA;AACxC,IAAA,OAAO,IAAA,CAAK,UAAA,CAAW,SAAA,GAAY,GAAA,GAAM,4BAAA;AAAA,EAC3C;AAAA;AAAA,EAGA,UAAA,GAAsB;AAvExB,IAAA,IAAA,EAAA;AAwEI,IAAA,OAAA,CAAA,CAAO,EAAA,GAAA,IAAA,CAAK,UAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAiB,YAAA,MAAiB,IAAA;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMM,cAAA,GAAkC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtC,MAAA,IAAI,IAAA,CAAK,cAAa,EAAG;AACvB,QAAA,OAAO,KAAK,UAAA,CAAY,WAAA;AAAA,MAC1B;AAEA,MAAA,IAAI,CAAC,KAAK,UAAA,EAAY;AACpB,QAAA,MAAM,IAAI,UAAA,CAAW,eAAA,EAAiB,iDAAiD,CAAA;AAAA,MACzF;AAEA,MAAA,IAAI,CAAC,IAAA,CAAK,UAAA,EAAW,EAAG;AACtB,QAAA,MAAM,IAAI,iBAAA;AAAA,UACR,eAAA;AAAA,UACA;AAAA,SACF;AAAA,MACF;AAGA,MAAA,IAAI,CAAC,KAAK,cAAA,EAAgB;AACxB,QAAA,IAAA,CAAK,cAAA,GAAiB,KAAK,cAAA,EAAe;AAAA,MAC5C;AAEA,MAAA,IAAI;AACF,QAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,cAAA;AAC5B,QAAA,OAAO,QAAA,CAAS,WAAA;AAAA,MAClB,CAAA,SAAE;AACA,QAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AAAA,MACxB;AAAA,IACF,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA,EAGA,WAAA,GAAoB;AAClB,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAAA,EACpB;AAAA,EAEc,cAAA,GAAsC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAElD,MAAA,MAAM,GAAA,GAAM,KAAK,GAAA,EAAI;AACrB,MAAA,MAAM,oBAAA,GAAuB,MAAM,IAAA,CAAK,gBAAA;AACxC,MAAA,IAAI,uBAAuB,6BAAA,EAA+B;AACxD,QAAA,MAAM,IAAA,CAAK,KAAA,CAAM,6BAAA,GAAgC,oBAAoB,CAAA;AAAA,MACvE;AACA,MAAA,IAAA,CAAK,gBAAA,GAAmB,KAAK,GAAA,EAAI;AAEjC,MAAA,IAAI;AACF,QAAA,MAAM,QAAA,GAAW,MAAM,aAAA,CAAc;AAAA,UACnC,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,cAAc,IAAA,CAAK,YAAA;AAAA,UACnB,YAAA,EAAc,KAAK,UAAA,CAAY,YAAA;AAAA,UAC/B,SAAS,IAAA,CAAK;AAAA,SACf,CAAA;AAED,QAAA,IAAA,CAAK,UAAU,QAAQ,CAAA;AAEvB,QAAA,IAAI,KAAK,cAAA,EAAgB;AACvB,UAAA,MAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA,CAAK,cAAA,CAAe,QAAQ,CAAC,CAAA;AAAA,QACrD;AAEA,QAAA,OAAO,IAAA,CAAK,UAAA;AAAA,MACd,SAAS,KAAA,EAAO;AACd,QAAA,IAAI,iBAAiB,UAAA,EAAY;AAC/B,UAAA,MAAM,IAAI,iBAAA,CAAkB,KAAA,CAAM,IAAA,EAAM,KAAA,CAAM,aAAa,KAAK,CAAA;AAAA,QAClE;AACA,QAAA,MAAM,KAAA;AAAA,MACR;AAAA,IACF,CAAA,CAAA;AAAA,EAAA;AAAA,EAEQ,MAAM,EAAA,EAA2B;AACvC,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,EAAE,CAAC,CAAA;AAAA,EACzD;AACF,CAAA;;;ACpFO,IAAM,YAAA,GAAN,cAA2B,KAAA,CAAM;AAAA,EAOtC,WAAA,CAAY,OAAA,EAAiB,OAAA,GAA+B,EAAC,EAAG;AAC9D,IAAA,KAAA,CAAM,OAAO,CAAA;AAPf,IAAA,aAAA,CAAA,IAAA,EAAgB,QAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,YAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,KAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,cAAA,CAAA;AAChB,IAAA,aAAA,CAAA,IAAA,EAAgB,SAAA,CAAA;AAId,IAAA,IAAA,CAAK,IAAA,GAAO,cAAA;AACZ,IAAA,IAAA,CAAK,SAAS,OAAA,CAAQ,MAAA;AACtB,IAAA,IAAA,CAAK,aAAa,OAAA,CAAQ,UAAA;AAC1B,IAAA,IAAA,CAAK,MAAM,OAAA,CAAQ,GAAA;AACnB,IAAA,IAAA,CAAK,eAAe,OAAA,CAAQ,YAAA;AAC5B,IAAA,IAAA,CAAK,UAAU,OAAA,CAAQ,OAAA;AAAA,EACzB;AAAA,EAEA,IAAI,iBAAA,GAA6B;AAC/B,IAAA,OACE,IAAA,CAAK,MAAA,KAAW,GAAA,IAChB,IAAA,CAAK,YAAA,IAAgB,IAAA,IACrB,OAAO,IAAA,CAAK,YAAA,KAAiB,QAAA,IAC5B,IAAA,CAAK,YAAA,CAAyC,KAAA,KAAU,kBAAA;AAAA,EAE7D;AAAA,EAEA,IAAI,oBAAA,GAAgC;AAClC,IAAA,OAAO,IAAA,CAAK,MAAA,KAAW,GAAA,IAAO,CAAC,IAAA,CAAK,iBAAA;AAAA,EACtC;AAAA,EAEA,IAAI,aAAA,GAAyB;AAC3B,IAAA,OAAO,KAAK,MAAA,KAAW,GAAA;AAAA,EACzB;AAAA,EAEA,IAAI,cAAA,GAA0B;AAC5B,IAAA,OAAO,KAAK,MAAA,KAAW,GAAA;AAAA,EACzB;AACF;AAKO,IAAM,gBAAN,MAAoB;AAAA,EAazB,YAAY,OAAA,EAA+B;AAZ3C,IAAA,aAAA,CAAA,IAAA,EAAiB,aAAA,CAAA;AACjB,IAAA,aAAA,CAAA,IAAA,EAAiB,YAAA,CAAA;AACjB,IAAA,aAAA,CAAA,IAAA,EAAiB,cAAA,CAAA;AACjB,IAAA,aAAA,CAAA,IAAA,EAAiB,gBAAA,CAAA;AACjB,IAAA,aAAA,CAAA,IAAA,EAAiB,wBAAA,CAAA;AACjB,IAAA,aAAA,CAAA,IAAA,EAAiB,YAAA,CAAA;AAEjB,IAAA,aAAA,CAAA,IAAA,EAAQ,0BAAA,EAA+C,IAAA,CAAA;AACvD,IAAA,aAAA,CAAA,IAAA,EAAQ,8BAAA,EAAmD,IAAA,CAAA;AAE3D,IAAA,aAAA,CAAA,IAAA,EAAQ,uBAAA,EAA8C,IAAA,CAAA;AArHxD,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAwHI,IAAA,IAAA,CAAK,eAAc,EAAA,GAAA,OAAA,CAAQ,OAAA,KAAR,YAAmB,UAAA,CAAW,KAAA,CAAM,KAAK,UAAU,CAAA;AACtE,IAAA,IAAI,CAAC,KAAK,WAAA,EAAa;AACrB,MAAA,MAAM,IAAI,MAAM,2DAA2D,CAAA;AAAA,IAC7E;AAEA,IAAA,IAAA,CAAK,aAAa,OAAA,CAAQ,IAAA;AAC1B,IAAA,IAAA,CAAK,cAAA,GAAA,CAAiB,EAAA,GAAA,OAAA,CAAQ,cAAA,KAAR,IAAA,GAAA,EAAA,GAA0B,IAAA;AAChD,IAAA,IAAA,CAAK,sBAAA,GAAA,CAAyB,EAAA,GAAA,OAAA,CAAQ,sBAAA,KAAR,IAAA,GAAA,EAAA,GAAkC,IAAA;AAGhE,IAAA,IAAA,CAAK,YAAA,GAAe,IAAI,YAAA,CAAa;AAAA,MACnC,QAAA,EAAU,QAAQ,IAAA,CAAK,QAAA;AAAA,MACvB,YAAA,EAAc,QAAQ,IAAA,CAAK,YAAA;AAAA,MAC3B,SAAS,IAAA,CAAK,WAAA;AAAA,MACd,cAAA,EAAgB,QAAQ,IAAA,CAAK;AAAA,KAC9B,CAAA;AAGD,IAAA,MAAM,MAAA,GAAS,QAAQ,IAAA,CAAK,MAAA;AAE5B,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,IAAA,CAAK,aAAa,aAAA,CAAc;AAAA,QAC9B,aAAa,MAAA,CAAO,WAAA;AAAA,QACpB,YAAA,EAAA,CAAc,EAAA,GAAA,MAAA,CAAO,YAAA,KAAP,IAAA,GAAA,EAAA,GAAuB,IAAA;AAAA,QACrC,SAAA,EAAA,CACE,EAAA,GAAA,MAAA,CAAO,SAAA,KAAP,IAAA,GAAA,EAAA,GAAoB,IAAA,CAAK,MAAM,IAAA,CAAK,GAAA,EAAI,GAAI,GAAI,CAAA,GAAI,qCAAA;AAAA,QACtD,SAAA,EAAW;AAAA,OACZ,CAAA;AAAA,IACH;AAGA,IAAA,IAAA,CAAK,aAAa,IAAI,UAAA;AAAA,MACpB,OAAA,CAAQ,MAAA;AAAA,MACR;AAAA,QACE,OAAA,EAAS,KAAK,aAAA,EAAc;AAAA,QAC5B,kBAAA,EAAoB,KAAK,wBAAA,EAAyB;AAAA,QAClD,mBAAA,EAAqB,CAAC,IAAA,KAAS,IAAA,CAAK,mBAAmB,IAAI,CAAA;AAAA,QAC3D,YAAA,EAAc,CAAC,OAAA,KAAY,IAAA,CAAK,kBAAkB,OAAO;AAAA;AAC3D,KACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOc,kBAAkB,QAAA,EAAuC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAvKzE,MAAA,IAAA,EAAA,EAAA,EAAA;AAwKI,MAAA,IAAI,oBAAoB,QAAA,EAAU;AAChC,QAAA,OAAO,QAAA;AAAA,MACT;AAGA,MAAA,MAAM,IAAA,GAAO,QAAA;AASb,MAAA,IAAI,IAAA;AACJ,MAAA,IAAI,KAAK,IAAA,EAAM;AACb,QAAA,IAAI;AACF,UAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,IAAA,EAAK;AAC7B,UAAA,IAAA,GAAO,IAAA,CAAK,UAAU,IAAI,CAAA;AAAA,QAC5B,CAAA,CAAA,OAAQ,CAAA,EAAA;AACN,UAAA,IAAA,GAAO,IAAA,CAAK,IAAA,GAAO,MAAM,IAAA,CAAK,MAAK,GAAI,EAAA;AAAA,QACzC;AAAA,MACF,CAAA,MAAA,IAAW,KAAK,IAAA,EAAM;AACpB,QAAA,IAAA,GAAO,MAAM,KAAK,IAAA,EAAK;AAAA,MACzB,CAAA,MAAO;AACL,QAAA,IAAA,GAAO,EAAA;AAAA,MACT;AAEA,MAAA,MAAM,OAAA,GAAU,IAAI,OAAA,EAAQ;AAC5B,MAAA,IAAI,KAAK,OAAA,EAAS;AAChB,QAAA,IAAI,IAAA,CAAK,mBAAmB,OAAA,EAAS;AACnC,UAAA,IAAA,CAAK,OAAA,CAAQ,QAAQ,CAAC,KAAA,EAAO,QAAQ,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAK,KAAK,CAAC,CAAA;AAAA,QAC9D,CAAA,MAAA,IAAW,OAAO,IAAA,CAAK,OAAA,CAAQ,QAAQ,UAAA,EAAY;AAEjD,UAAA,KAAA,MAAW,IAAA,IAAQ,CAAC,cAAA,EAAgB,eAAA,EAAiB,eAAe,CAAA,EAAG;AACrE,YAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,IAAI,CAAA;AACjC,YAAA,IAAI,GAAA,EAAK,OAAA,CAAQ,GAAA,CAAI,IAAA,EAAM,GAAG,CAAA;AAAA,UAChC;AAAA,QACF;AAAA,MACF;AAEA,MAAA,OAAO,IAAI,SAAS,IAAA,EAAM;AAAA,QACxB,SAAQ,EAAA,GAAA,IAAA,CAAK,MAAA,KAAL,IAAA,GAAA,EAAA,GAAgB,IAAA,CAAK,KAAK,GAAA,GAAM,GAAA;AAAA,QACxC,aAAY,EAAA,GAAA,IAAA,CAAK,UAAA,KAAL,IAAA,GAAA,EAAA,GAAoB,IAAA,CAAK,KAAK,IAAA,GAAO,uBAAA;AAAA,QACjD;AAAA,OACD,CAAA;AAAA,IACH,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKQ,aAAA,GAAwE;AAC9E,IAAA,OAAO,CAAO,KAAa,IAAA,KAA0C,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACnE,MAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,WAAA,CAAY,KAAK,IAAI,CAAA;AACpD,MAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,iBAAA,CAAkB,WAAW,CAAA;AAEzD,MAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,QAAA,OAAO,QAAA;AAAA,MACT;AAEA,MAAA,MAAM,WAAA,GAAc,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,IAAK,EAAA;AAC5D,MAAA,IAAI,CAAC,WAAA,CAAY,QAAA,CAAS,kBAAkB,CAAA,EAAG;AAC7C,QAAA,OAAO,QAAA;AAAA,MACT;AAGA,MAAA,MAAM,MAAA,GAAS,SAAS,KAAA,EAAM;AAC9B,MAAA,MAAM,IAAA,GAAO,MAAM,MAAA,CAAO,IAAA,EAAK;AAG/B,MAAA,IAAI,CAAC,IAAA,CAAK,IAAA,IAAQ,CAAC,KAAK,OAAA,EAAS;AAC/B,QAAA,OAAO,QAAA;AAAA,MACT;AAGA,MAAA,MAAM,aAAA,GAAgB,MAAM,IAAA,CAAK,WAAA,CAAY,KAAK,IAAI,CAAA;AACtD,MAAA,MAAM,UAAA,GAAa,MAAM,IAAA,CAAK,iBAAA,CAAkB,aAAa,CAAA;AAE7D,MAAA,IAAI,CAAC,WAAW,EAAA,EAAI;AAClB,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,yBAAA,EAA4B,UAAA,CAAW,UAAU,CAAA,CAAE,CAAA;AAAA,MACrE;AAGA,MAAA,MAAM,WAAA,GAAc,IAAI,IAAA,CAAK,IAAA,CAAK,OAAO,CAAA;AACzC,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAA,CAAO,WAAA,CAAY,OAAA,EAAQ,GAAI,IAAA,CAAK,GAAA,EAAI,IAAK,GAAI,CAAC,CAAA;AAGlF,MAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,IAAK,EAAA;AAChE,MAAA,IAAI,cAAc,QAAA,CAAS,UAAU,KAAK,aAAA,CAAc,QAAA,CAAS,YAAY,CAAA,EAAG;AAC9E,QAAA,MAAM,OAAA,GAAU,MAAM,UAAA,CAAW,IAAA,EAAK;AACtC,QAAA,MAAM,UAAA,GAAa,KAAK,SAAA,CAAU;AAAA,UAChC,WAAA,EAAa,KAAA;AAAA,UACb,OAAA,EAAS,OAAA;AAAA,UACT,IAAA,EAAM;AAAA,SACP,CAAA;AAED,QAAA,OAAO,IAAI,SAAS,UAAA,EAAY;AAAA,UAC9B,MAAA,EAAQ,GAAA;AAAA,UACR,OAAA,EAAS;AAAA,YACP,cAAA,EAAgB,kBAAA;AAAA,YAChB,eAAA,EAAiB,WAAW,MAAM,CAAA;AAAA;AACpC,SACD,CAAA;AAAA,MACH;AAGA,MAAA,MAAM,MAAA,GAAS,MAAM,UAAA,CAAW,IAAA,EAAK;AACrC,MAAA,OAAO,IAAI,SAAS,MAAA,EAAQ;AAAA,QAC1B,MAAA,EAAQ,GAAA;AAAA,QACR,OAAA,EAAS;AAAA,UACP,cAAA,EAAgB,kBAAA;AAAA,UAChB,eAAA,EAAiB,WAAW,MAAM,CAAA;AAAA;AACpC,OACD,CAAA;AAAA,IACH,CAAA,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,wBAAA,GAAqF;AAC3F,IAAA,OAAO,CAAO,MAAc,IAAA,KAA4C,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtE,MAAA,MAAM,KAAK,mBAAA,EAAoB;AAC/B,MAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,cAAA,EAAe;AAE9C,MAAA,OAAO,iCACF,IAAA,CAAA,EADE;AAAA,QAEL,OAAA,EAAS,cAAA,CAAA,cAAA,CAAA,EAAA,EACJ,MAAA,CAAO,WAAA,CAAY,IAAI,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,CAAE,OAAA,EAAS,CAAA,CAAA,EACtD,WAAA;AAAA,OAEP,CAAA;AAAA,IACF,CAAA,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,kBAAkB,OAAA,EAAyC;AACjE,IAAA,MAAM,EAAE,MAAA,EAAQ,IAAA,EAAM,OAAA,KAAY,OAAA,CAAQ,QAAA;AAE1C,IAAA,IAAI,WAAW,GAAA,EAAK;AAClB,MAAA,MAAM,gBACJ,IAAA,IAAQ,IAAA,IACR,OAAO,IAAA,KAAS,QAAA,IACf,KAAiC,KAAA,KAAU,kBAAA;AAC9C,MAAA,OAAO,IAAI,YAAA;AAAA,QACT,gBACI,0CAAA,GACA,qBAAA;AAAA,QACJ,EAAE,QAAQ,GAAA,EAAK,GAAA,EAAK,QAAQ,GAAA,EAAK,YAAA,EAAc,MAAM,OAAA;AAAQ,OAC/D;AAAA,IACF;AACA,IAAA,IAAI,WAAW,GAAA,EAAK;AAClB,MAAA,OAAO,IAAI,YAAA;AAAA,QACT,+DAAA;AAAA,QACA,EAAE,QAAQ,GAAA,EAAK,GAAA,EAAK,QAAQ,GAAA,EAAK,YAAA,EAAc,MAAM,OAAA;AAAQ,OAC/D;AAAA,IACF;AACA,IAAA,IAAI,WAAW,GAAA,EAAK;AAClB,MAAA,OAAO,IAAI,YAAA;AAAA,QACT,6EAAA;AAAA,QACA,EAAE,QAAQ,GAAA,EAAK,GAAA,EAAK,QAAQ,GAAA,EAAK,YAAA,EAAc,MAAM,OAAA;AAAQ,OAC/D;AAAA,IACF;AAEA,IAAA,OAAO,IAAI,YAAA;AAAA,MACT,OAAA,CAAQ,OAAA;AAAA,MACR,EAAE,MAAA,EAAQ,GAAA,EAAK,QAAQ,GAAA,EAAK,YAAA,EAAc,MAAM,OAAA;AAAQ,KAC1D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKc,mBAAA,GAAqC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACjD,MAAA,IAAI,IAAA,CAAK,YAAA,CAAa,SAAA,EAAU,EAAG;AACjC,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,uBAAA,CAAwB,IAAA,CAAK,UAAU,CAAA,EAAG;AAC5C,QAAA,MAAM,IAAI,UAAA;AAAA,UACR,eAAA;AAAA,UACA;AAAA,SAEF;AAAA,MACF;AAEA,MAAA,IAAI,qBAAA,CAAsB,IAAA,CAAK,UAAU,CAAA,EAAG;AAC1C,QAAA,IAAI,CAAC,KAAK,qBAAA,EAAuB;AAC/B,UAAA,IAAA,CAAK,qBAAA,GAAwB,KAAK,2BAAA,EAA4B;AAAA,QAChE;AAEA,QAAA,IAAI;AACF,UAAA,MAAM,IAAA,CAAK,qBAAA;AAAA,QACb,CAAA,SAAE;AACA,UAAA,IAAA,CAAK,qBAAA,GAAwB,IAAA;AAAA,QAC/B;AAAA,MACF;AAAA,IACF,CAAA,CAAA;AAAA,EAAA;AAAA,EAEc,2BAAA,GAA6C;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACzD,MAAA,IAAI,CAAC,qBAAA,CAAsB,IAAA,CAAK,UAAU,CAAA,EAAG;AAC3C,QAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,MACvC;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,2BAAA,CAA4B;AAAA,QAC/C,QAAA,EAAU,KAAK,UAAA,CAAW,QAAA;AAAA,QAC1B,YAAA,EAAc,KAAK,UAAA,CAAW,YAAA;AAAA,QAC9B,QAAA,EAAU,KAAK,UAAA,CAAW,QAAA;AAAA,QAC1B,QAAA,EAAU,KAAK,UAAA,CAAW,QAAA;AAAA,QAC1B,SAAS,IAAA,CAAK;AAAA,OACf,CAAA;AAED,MAAA,IAAA,CAAK,YAAA,CAAa,UAAU,MAAM,CAAA;AAElC,MAAA,IAAI,IAAA,CAAK,WAAW,cAAA,EAAgB;AAClC,QAAA,MAAM,QAAQ,OAAA,CAAQ,IAAA,CAAK,UAAA,CAAW,cAAA,CAAe,MAAM,CAAC,CAAA;AAAA,MAC9D;AAAA,IACF,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKc,cAAA,GAAkD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC9D,MAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,YAAA,CAAa,cAAA,EAAe;AAC3D,MAAA,OAAO,EAAE,aAAA,EAAe,CAAA,OAAA,EAAU,WAAW,CAAA,CAAA,EAAG;AAAA,IAClD,CAAA,CAAA;AAAA,EAAA;AAAA,EAEQ,QAAA,CAAS,UAAkB,MAAA,EAA0C;AAC3E,IAAA,MAAM,MAAM,IAAI,GAAA;AAAA,MACd,QAAA,CAAS,WAAW,MAAM,CAAA,GAAI,WAAW,CAAA,EAAG,iBAAiB,GAAG,QAAQ,CAAA;AAAA,KAC1E;AAEA,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC/C,QAAA,IAAI,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,IAAA,EAAM;AACzC,UAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,YAAA,GAAA,CAAI,aAAa,MAAA,CAAO,GAAA,EAAK,KAAA,CAAM,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA,UAC9C,CAAA,MAAA,IAAW,OAAO,KAAA,KAAU,SAAA,EAAW;AACrC,YAAA,GAAA,CAAI,YAAA,CAAa,MAAA,CAAO,GAAA,EAAK,KAAA,GAAQ,SAAS,OAAO,CAAA;AAAA,UACvD,CAAA,MAAO;AACL,YAAA,GAAA,CAAI,YAAA,CAAa,MAAA,CAAO,GAAA,EAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,UAC5C;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,IAAI,QAAA,EAAS;AAAA,EACtB;AAAA,EAEQ,eAAe,MAAA,EAAuE;AAC5F,IAAA,IAAI,CAAC,QAAQ,OAAO,MAAA;AACpB,IAAA,MAAM,SAAkC,EAAC;AACzC,IAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AACjD,MAAA,MAAM,QAAA,GAAW,IAAI,OAAA,CAAQ,QAAA,EAAU,CAAC,CAAA,KAAM,GAAA,GAAM,CAAA,CAAE,WAAA,EAAa,CAAA;AACnE,MAAA,MAAA,CAAO,QAAQ,CAAA,GAAI,KAAA;AAAA,IACrB;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEQ,mBAAmB,IAAA,EAAwB;AACjD,IAAA,IAAI,IAAA,KAAS,IAAA,IAAQ,IAAA,KAAS,MAAA,EAAW,OAAO,IAAA;AAEhD,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,MAAA,OAAO,KAAK,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,kBAAA,CAAmB,IAAI,CAAC,CAAA;AAAA,IACzD;AAEA,IAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,MAAA,MAAM,SAAkC,EAAC;AACzC,MAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,IAA+B,CAAA,EAAG;AAC1E,QAAA,MAAM,WAAW,GAAA,CACd,OAAA,CAAQ,gBAAgB,CAAC,CAAA,EAAG,SAAS,IAAA,CAAK,WAAA,EAAa,CAAA,CACvD,QAAQ,cAAA,EAAgB,CAAC,GAAG,IAAA,KAAS,IAAA,CAAK,aAAa,CAAA;AAC1D,QAAA,MAAA,CAAO,QAAQ,CAAA,GAAI,IAAA,CAAK,kBAAA,CAAmB,KAAK,CAAA;AAAA,MAClD;AACA,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,OAAO,IAAA;AAAA,EACT;AAAA,EAEQ,OAAA,CAAQ,UAAkB,UAAA,EAA4B;AAC5D,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA;AAAA,EAClC;AAAA,EAEQ,kCAAA,CACN,IAAA,EACA,QAAA,EACA,SAAA,EACA,mBACA,mBAAA,EACM;AACN,IAAA,IAAI,IAAA,KAAS,IAAA,IAAQ,IAAA,KAAS,MAAA,EAAW;AAEzC,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,MAAA,KAAA,MAAW,QAAQ,IAAA,EAAM;AACvB,QAAA,IAAA,CAAK,kCAAA;AAAA,UACH,IAAA;AAAA,UACA,QAAA;AAAA,UACA,SAAA;AAAA,UACA,iBAAA;AAAA,UACA;AAAA,SACF;AAAA,MACF;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAE9B,IAAA,MAAMC,OAAAA,GAAS,IAAA;AACf,IAAA,MAAM,QAAA,GACJ,OAAOA,OAAAA,CAAO,QAAA,KAAa,QAAA,GACvBA,OAAAA,CAAO,QAAA,GACP,OAAOA,OAAAA,CAAO,SAAA,KAAc,QAAA,GAC1BA,OAAAA,CAAO,SAAA,GACP,iBAAA;AACR,IAAA,MAAM,YAAA,GACJ,uBACC,OAAOA,OAAAA,CAAO,mBAAmB,QAAA,IAAYA,OAAAA,CAAO,iBAAiB,CAAA,IACrE,OAAOA,QAAO,gBAAA,KAAqB,QAAA,IAAYA,QAAO,gBAAA,GAAmB,CAAA,IAC1EA,QAAO,aAAA,KAAkB,IAAA,IACzBA,QAAO,cAAA,KAAmB,IAAA;AAE5B,IAAA,IAAI,QAAA,KAAa,MAAA,IAAa,QAAA,GAAW,CAAA,EAAG;AAC1C,MAAA,MAAM,OAAA,GAAU,CAAC,KAAA,KAAmB;AAClC,QAAA,IAAI,OAAO,UAAU,QAAA,IAAY,CAAC,OAAO,QAAA,CAAS,KAAK,CAAA,IAAK,KAAA,IAAS,CAAA,EAAG;AACxE,QAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,KAAK,CAAA;AACxC,QAAA,QAAA,CAAS,IAAI,GAAG,CAAA;AAChB,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,SAAA,CAAU,IAAI,GAAG,CAAA;AAAA,QACnB;AAAA,MACF,CAAA;AAEA,MAAA,OAAA,CAAQA,QAAO,UAAU,CAAA;AACzB,MAAA,OAAA,CAAQA,QAAO,YAAY,CAAA;AAE3B,MAAA,MAAM,cAAyB,EAAC;AAChC,MAAA,IAAI,KAAA,CAAM,QAAQA,OAAAA,CAAO,WAAW,GAAG,WAAA,CAAY,IAAA,CAAKA,QAAO,WAAW,CAAA;AAC1E,MAAA,IAAI,KAAA,CAAM,QAAQA,OAAAA,CAAO,aAAa,GAAG,WAAA,CAAY,IAAA,CAAKA,QAAO,aAAa,CAAA;AAC9E,MAAA,IAAI,KAAA,CAAM,QAAQA,OAAAA,CAAO,mBAAmB,GAAG,WAAA,CAAY,IAAA,CAAKA,QAAO,mBAAmB,CAAA;AAC1F,MAAA,IAAI,KAAA,CAAM,QAAQA,OAAAA,CAAO,uBAAuB,GAAG,WAAA,CAAY,IAAA,CAAKA,QAAO,uBAAuB,CAAA;AAElG,MAAA,KAAA,MAAW,cAAc,WAAA,EAAa;AACpC,QAAA,KAAA,MAAW,SAAS,UAAA,EAAyB;AAC3C,UAAA,OAAA,CAAQ,KAAK,CAAA;AAAA,QACf;AAAA,MACF;AAAA,IACF;AAEA,IAAA,KAAA,MAAW,KAAA,IAAS,MAAA,CAAO,MAAA,CAAOA,OAAM,CAAA,EAAG;AACzC,MAAA,IAAA,CAAK,kCAAA,CAAmC,KAAA,EAAO,QAAA,EAAU,SAAA,EAAW,UAAU,YAAY,CAAA;AAAA,IAC5F;AAAA,EACF;AAAA,EAEc,uBAAA,GAAyC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACrD,MAAA,IAAI,IAAA,CAAK,wBAAA,IAA4B,IAAA,CAAK,4BAAA,EAA8B;AACtE,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,QAAA,uBAAe,GAAA,EAAY;AACjC,MAAA,MAAM,SAAA,uBAAgB,GAAA,EAAY;AAClC,MAAA,MAAM,OAAA,GAAU,MAAM,IAAA,CAAK,GAAA,CAAa,oDAAoD,CAAA;AAC5F,MAAA,IAAA,CAAK,kCAAA,CAAmC,OAAA,EAAS,QAAA,EAAU,SAAS,CAAA;AAEpE,MAAA,IAAA,CAAK,wBAAA,GAA2B,QAAA;AAChC,MAAA,IAAA,CAAK,4BAAA,GAA+B,SAAA;AAAA,IACtC,CAAA,CAAA;AAAA,EAAA;AAAA,EAEM,wBAAA,CACJ,UAAA,EACA,QAAA,EACA,UAAA,EACe;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACf,MAAA,IAAI,CAAC,KAAK,sBAAA,EAAwB;AAClC,MAAA,IAAI,CAAC,OAAO,QAAA,CAAS,QAAQ,KAAK,CAAC,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA,EAAG;AAEhE,MAAA,MAAM,KAAK,uBAAA,EAAwB;AACnC,MAAA,MAAM,GAAA,GAAM,IAAA,CAAK,OAAA,CAAQ,QAAA,EAAU,UAAU,CAAA;AAE7C,MAAA,MAAM,YAAA,GACJ,UAAA,KAAe,6BAAA,IACf,IAAA,CAAK,4BAAA,IACL,IAAA,CAAK,4BAAA,CAA6B,IAAA,GAAO,CAAA,GACrC,IAAA,CAAK,4BAAA,GACL,IAAA,CAAK,wBAAA;AAEX,MAAA,IAAI,CAAC,YAAA,IAAgB,YAAA,CAAa,GAAA,CAAI,GAAG,CAAA,EAAG;AAC1C,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,IAAI,YAAA;AAAA,QACR,CAAA,gCAAA,EAAmC,UAAU,CAAA,WAAA,EAAc,QAAQ,mBAAmB,UAAU,CAAA,gCAAA,CAAA;AAAA,QAChG;AAAA,UACE,MAAA,EAAQ,GAAA;AAAA,UACR,UAAA,EAAY,aAAA;AAAA,UACZ,YAAA,EAAc;AAAA,YACZ,KAAA,EAAO,6BAAA;AAAA,YACP,QAAA,EAAU,UAAA;AAAA,YACV,QAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKM,GAAA,CACJ,KACA,OAAA,EACY;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAEZ,MAAA,MAAM,SAAA,GAAY,IAAA,CAAK,cAAA,CAAe,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,MAAM,CAAA;AACrD,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,QAAA,CAAS,GAAA,EAAK,SAAS,CAAA;AAG5C,MAAA,MAAM,IAAA,GAAO,MAAM,IAAA,CAAK,UAAA,CAAW,IAAO,OAAO,CAAA;AAGjD,MAAA,IAAI,IAAA,CAAK,cAAA,KAAkB,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,MAAA,CAAA,EAAQ;AAC1C,QAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,IAAI,CAAA;AAAA,MAClC;AAEA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,eAAA,GAA2B;AACzB,IAAA,OAAO,KAAK,YAAA,CAAa,SAAA,EAAU,IAAK,IAAA,CAAK,aAAa,YAAA,EAAa;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA,EAKA,WAAA,GAAoB;AAClB,IAAA,IAAA,CAAK,aAAa,WAAA,EAAY;AAAA,EAChC;AACF;AC9lBA,IAAM,SAAA,GAAcC,EAAA,CAAA,MAAA,CAASA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC9C,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACxC,UAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,SAAQA,EAAA,CAAA,OAAA,EAAS,CAAC,CAAC,CAAA;AAAA,EACrD,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,sBAAA,EAA0BA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACzD,mBAAA,EAAuBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACtD,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACzC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAChD,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAChD,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC5C,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACvC,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC9C,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC;AACjD,CAAC,CAAC;AACF,IAAM,MAAA,GAAWA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC9B,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC7B,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC3B,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC3B,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,aAAA,EAAiBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC9B,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAChC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACrC,MAAQA,EAAA,CAAA,MAAA;AAAO,GAChB,CAAC,CAAA;AAAA,EACF,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC3B,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC9B,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACjC,CAAC,CAAA;AAAA,EACF,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC7B,QAAA,EAAYA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACzB,SAAWA,EAAA,CAAA,MAAA;AAAO,GACnB,CAAC,CAAA;AAAA,EACF,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,UAAA,EAAcA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC9B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC/B,sBAAwBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAChC,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,yBAA2BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnC,yBAA2BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnC,IAAMA,EAAA,CAAA,MAAA,EAAO;AAAA,EACb,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC3B,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC3B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC5B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC7B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC5B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACnC,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,EACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAClC,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC9B,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC/B,YAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,CAASA,WAAO,EAAKA,EAAA,CAAA,OAAA,EAAS,CAAC,CAAA;AAAA,EACxD,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAChC,CAAC,CAAC;AASF,IAAM,qBAAA,GAA0BA,EAAA,CAAA,MAAA,CAAO,EACtC;AAED,IAAM,kBAAA,GAAuBA,EAAA,CAAA,MAAA,CAAO,EACnC;;;ACtFM,IAAM,aAAN,MAAiB;AAAA,EACtB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,MAAA,GAAqC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACzC,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAuB,kDAAkD,EAAE,MAAA,EAAQ,WAAW,CAAA;AAAA,IACnH,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,GAAA,GAA+B;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACnC,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAoB,+CAA+C,EAAE,MAAA,EAAQ,QAAQ,CAAA;AAAA,IAC1G,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACrB2BC,EAAA,CAAA,MAAA,CAAO;AAAA,EAChC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EAChB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA;AAAA,EACvB,SAAWA,EAAA,CAAA,OAAA;AACb,CAAC;AAID,IAAM,WAAA,GAAgBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACnC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC5B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,SAAWA,EAAA,CAAA,OAAA;AAAQ,GACpB,CAAC,CAAA;AAAA,EACF,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,WAAaA,EAAA,CAAA,MAAA;AACf,CAAC,CAAC;AAQF,IAAM,uBAAA,GAA4BA,EAAA,CAAA,MAAA,CAAO,EACxC;;;AC/BM,IAAM,kBAAN,MAAsB;AAAA,EAC3B,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,GAAA,GAAoC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACxC,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAyB,oDAAoD,EAAE,MAAA,EAAQ,aAAa,CAAA;AAAA,IACzH,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACZA,IAAM,mBAAA,GAAwBC,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC3C,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,OAASA,EAAA,CAAA,MAAA;AACX,CAAC,CAAC;AACF,IAAM,kBAAA,GAAuBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC1C,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,OAASA,EAAA,CAAA,MAAA;AACX,CAAC,CAAC;AACF,IAAM,mBAAA,GAAwBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC3C,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,OAASA,EAAA,CAAA,MAAA;AACX,CAAC,CAAC;AAUF,IAAM,+BAAA,GAAoCA,EAAA,CAAA,MAAA,CAAO,EAChD;AAED,IAAM,8BAAA,GAAmCA,EAAA,CAAA,MAAA,CAAO,EAC/C;AAED,IAAM,+BAAA,GAAoCA,EAAA,CAAA,MAAA,CAAO,EAChD;;;AC5BM,IAAM,mBAAN,MAAuB;AAAA,EAC5B,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,UAAA,GAAmD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACvD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAiC,4DAA4D,EAAE,MAAA,EAAQ,qBAAqB,CAAA;AAAA,IACjJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,SAAA,GAAiD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACrD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAgC,2DAA2D,EAAE,MAAA,EAAQ,oBAAoB,CAAA;AAAA,IAC9I,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,UAAA,GAAmD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACvD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAiC,6DAA6D,EAAE,MAAA,EAAQ,qBAAqB,CAAA;AAAA,IAClJ,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;AC9BA,IAAM,4BAA8BC,EAAA,CAAA,MAAA,CAAO;AAAA,EACzC,WAAA,EAAeA,WAAQ,KAAK,CAAA;AAAA,EAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,MAAQA,EAAA,CAAA,MAAA;AACV,CAAC;AACD,IAAM,iCAAmCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC9C,WAAA,EAAeA,WAAQ,KAAK,CAAA;AAAA,EAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,MAAQA,EAAA,CAAA,MAAA;AACV,CAAC;AACD,IAAM,kCAAoCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/C,WAAA,EAAeA,WAAQ,KAAK,CAAA;AAAA,EAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,MAAQA,EAAA,CAAA,MAAA;AACV,CAAC;AACD,IAAM,4BAA8BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzC,WAAA,EAAeA,WAAQ,KAAK,CAAA;AAAA,EAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,MAAQA,EAAA,CAAA,MAAA;AACV,CAAC;AACD,IAAM,gCAAkCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC7C,WAAA,EAAeA,WAAQ,KAAK,CAAA;AAAA,EAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,MAAQA,EAAA,CAAA,MAAA;AACV,CAAC;AACD,IAAM,gCAAkCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC7C,WAAA,EAAeA,WAAQ,KAAK,CAAA;AAAA,EAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,MAAQA,EAAA,CAAA,MAAA;AACV,CAAC;AAaD,IAAM,qCAAA,GAA0CA,EAAA,CAAA,MAAA,CAAO,EACtD;AAED,IAAM,0CAAA,GAA+CA,EAAA,CAAA,MAAA,CAAO,EAC3D;AAED,IAAM,2CAAA,GAAgDA,EAAA,CAAA,MAAA,CAAO,EAC5D;AAED,IAAM,qCAAA,GAA0CA,EAAA,CAAA,MAAA,CAAO,EACtD;AAED,IAAM,yCAAA,GAA8CA,EAAA,CAAA,MAAA,CAAO,EAC1D;AAED,IAAM,yCAAA,GAA8CA,EAAA,CAAA,MAAA,CAAO,EAC1D;;;AC1DM,IAAM,+BAAN,MAAmC;AAAA,EACxC,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,IAAA,GAAmD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACvD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAuC,qEAAqE,EAAE,MAAA,EAAQ,2BAA2B,CAAA;AAAA,IACtK,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,SAAA,GAA6D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACjE,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA4C,2EAA2E,EAAE,MAAA,EAAQ,gCAAgC,CAAA;AAAA,IACtL,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,UAAA,GAA+D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACnE,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA6C,4EAA4E,EAAE,MAAA,EAAQ,iCAAiC,CAAA;AAAA,IACzL,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,IAAA,GAAmD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACvD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAuC,qEAAqE,EAAE,MAAA,EAAQ,2BAA2B,CAAA;AAAA,IACtK,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAA,GAA2D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC/D,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA2C,0EAA0E,EAAE,MAAA,EAAQ,+BAA+B,CAAA;AAAA,IACnL,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAA,GAA2D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC/D,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA2C,0EAA0E,EAAE,MAAA,EAAQ,+BAA+B,CAAA;AAAA,IACnL,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACzDA,IAAM,yBAA2B,EAAA,CAAA,MAAA,CAAO;AAAA,EACtC,SAAW,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,YAAc,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,QAAA,EAAY,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,IACzB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,mCAAqC,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5C,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,yBAA2B,EAAA,CAAA,MAAA,EAAO;AAAA,IAClC,cAAgB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,SAAW,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,MAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,aAAe,EAAA,CAAA,OAAA,EAAQ;AAAA,MACvB,SAAW,EAAA,CAAA,OAAA,EAAQ;AAAA,MACnB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,iBAAmB,EAAA,CAAA,OAAA,EAAQ;AAAA,MAC3B,eAAiB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,QAAU,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,YAAA,EAAgB,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAChC,YAAc,EAAA,CAAA,OAAA;AAAQ,KACvB,CAAA;AAAA,IACD,eAAiB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,iBAAmB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,mBAAqB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC7B,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,oBAAsB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC9B,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAiB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,aAAe,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,iBAAmB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,oBAAsB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,oBAAsB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,wBAA0B,EAAA,CAAA,MAAA,EAAO;AAAA,IACjC,qBAAuB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC/B,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,wBAA0B,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClC,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,YAAc,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAChC,cAAA,EAAkB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACrC,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,gBAAkB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,0BAA4B,EAAA,CAAA,MAAA,EAAO;AAAA,IACnC,uBAAyB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,0BAA4B,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpC,0BAA4B,EAAA,CAAA,MAAA,EAAO;AAAA,IACnC,qBAAuB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC/B,gBAAkB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,iBAAmB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,sBAAwB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,sBAAwB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,gBAAkB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,mBAAqB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC7B,oBAAA,EAAwB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC3C,4BAA8B,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtC,WAAa,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,yBAA2B,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnC,uBAAyB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,aAAe,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,MAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,QAAU,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAc,EAAA,CAAA,MAAA;AAAO,OACtB;AAAA,KACF,CAAA;AAAA,IACD,OAAS,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,KAClC,CAAA;AAAA,IACD,SAAW,EAAA,CAAA,MAAA,CAAO;AAAA,MAChB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,oBAAsB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC7B,yBAA2B,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,oBAAA,EAAwB,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,eAAA,EAAmB,YAAW,EAAA,CAAA,MAAA,CAAO;AAAA,QACnC,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,QACxB,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,QACrB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAa,EAAA,CAAA,MAAA;AAAO,OACrB,CAAC,CAAA;AAAA,MACF,cAAA,EAAkB,YAAW,EAAA,CAAA,MAAA,CAAO;AAAA,QAClC,aAAA,EAAiB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QACpC,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,QAC5B,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAChC,QAAA,EAAY,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC/B,QAAA,EAAY,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC/B,OAAA,EAAW,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC9B,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAChC,OAAA,EAAW,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC9B,QAAA,EAAY,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC/B,OAAA,EAAW,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC9B,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,OACjC,CAAC,CAAA;AAAA,MACF,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,KAClC,CAAA;AAAA,IACD,YAAc,EAAA,CAAA,MAAA,CAAO;AAAA,MACnB,cAAgB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgB,EAAA,CAAA,MAAA;AAAO,KACxB,CAAA;AAAA,IACD,MAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,OAAA;AAAQ,KACtB,CAAA;AAAA,IACD,MAAA,EAAU,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACvB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,QAAU,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAc,EAAA,CAAA,MAAA;AAAO,OACtB;AAAA,KACF,CAAC,CAAA;AAAA,IACF,YAAA,EAAgB,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACjC,cAAA,EAAkB,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACnC,IAAA,EAAQ,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAA,EAAe,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAClC,iBAAA,EAAqB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,WAAA,EAAe,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAClC,iBAAA,EAAqB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,KACzC,CAAC,CAAA;AAAA,IACF,cAAgB,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,EAAA,EAAM,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACzB,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,KAC3B,CAAA;AAAA,IACD,mBAAqB,EAAA,CAAA,MAAA,CAAO;AAAA,MAC1B,CAAA,EAAK,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxB,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,KAC5B,CAAA;AAAA,IACD,QAAA,EAAY,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACzB,SAAW,EAAA,CAAA,MAAA;AAAO,KACnB,CAAC,CAAA;AAAA,IACF,UAAA,EAAc,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,WAAa,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,iBAAA,EAAqB,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MAClC,kBAAoB,EAAA,CAAA,MAAA;AAAO,KAC5B,CAAC,CAAA;AAAA,IACF,UAAA,EAAc,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,WAAa,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,YAAA,EAAgB,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MAC7B,aAAe,EAAA,CAAA,MAAA;AAAO,KACvB,CAAC,CAAA;AAAA,IACF,SAAW,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,WAAa,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,OAAA,EAAW,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IAC5B,OAAA,EAAW,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IAC5B,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,cAAgB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,WAAa,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,aAAe,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,WAAA,EAAe,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAClC,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACjC,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACjC,YAAA,EAAgB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACnC,WAAA,EAAe,YAAW,EAAA,CAAA,MAAA,CAAO;AAAA,MAC/B,8BAAgC,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,6BAA+B,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sCAAwC,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/C,8BAAgC,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,6BAA+B,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sCAAwC,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/C,gCAAkC,EAAA,CAAA,MAAA,EAAO;AAAA,MACzC,6BAA+B,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sBAAwB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/B,sBAAwB,EAAA,CAAA,OAAA,EAAQ;AAAA,MAChC,8BAAgC,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxC,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,uBAAyB,EAAA,CAAA,MAAA,EAAO;AAAA,MAChC,yBAA2B,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,uBAAyB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACjC,4BAA8B,EAAA,CAAA,MAAA,EAAO;AAAA,MACrC,QAAU,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,yBAA2B,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,cAAgB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,8BAAgC,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,8BAAgC,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,sBAAwB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/B,uBAAyB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACjC,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACjC,eAAA,EAAmB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,MAAA,EAAQ,CAAC;AAAA,GAChD,CAAC,CAAA;AAAA,EACF,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAClC,CAAC;AACD,IAAM,iBAAmB,EAAA,CAAA,MAAA,CAAO;AAAA,EAC9B,YAAc,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,QAAA,EAAY,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,IACzB,mBAAqB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC7B,MAAA,EAAU,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACvB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,QAAU,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAc,EAAA,CAAA,MAAA;AAAO,OACtB;AAAA,KACF,CAAC,CAAA;AAAA,IACF,gBAAkB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACjC,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACjC,YAAA,EAAgB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACnC,cAAA,EAAkB,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACnC,YAAA,EAAgB,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACjC,QAAA,EAAY,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACzB,SAAW,EAAA,CAAA,MAAA;AAAO,KACnB,CAAC,CAAA;AAAA,IACF,IAAA,EAAQ,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,WAAA,EAAe,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAClC,iBAAA,EAAqB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,WAAA,EAAe,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAClC,iBAAA,EAAqB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,WAAa,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,qBAAuB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC/B,0BAA4B,EAAA,CAAA,MAAA,EAAO;AAAA,IACnC,0BAA4B,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpC,mBAAqB,EAAA,CAAA,MAAA,CAAO;AAAA,MAC1B,CAAA,EAAK,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxB,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,KAC5B,CAAA;AAAA,IACD,cAAgB,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,EAAA,EAAM,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACzB,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,KAC3B,CAAA;AAAA,IACD,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,uBAAyB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,uBAAyB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,gBAAkB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,eAAiB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,MAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,aAAe,EAAA,CAAA,OAAA,EAAQ;AAAA,MACvB,SAAW,EAAA,CAAA,OAAA,EAAQ;AAAA,MACnB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,iBAAmB,EAAA,CAAA,OAAA,EAAQ;AAAA,MAC3B,eAAiB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,QAAU,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,YAAA,EAAgB,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAChC,YAAc,EAAA,CAAA,OAAA;AAAQ,KACvB,CAAA;AAAA,IACD,yBAA2B,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnC,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAA,EAAc,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,WAAa,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,MAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,OAAA;AAAQ,KACtB,CAAA;AAAA,IACD,YAAc,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,oBAAsB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC9B,0BAA4B,EAAA,CAAA,MAAA,EAAO;AAAA,IACnC,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,MAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,QAAU,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAc,EAAA,CAAA,MAAA;AAAO,OACtB;AAAA,KACF,CAAA;AAAA,IACD,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,oBAAsB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,oBAAsB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,iBAAA,EAAqB,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MAClC,kBAAoB,EAAA,CAAA,MAAA;AAAO,KAC5B,CAAC,CAAA;AAAA,IACF,aAAe,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,4BAA8B,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtC,qBAAuB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC/B,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,cAAA,EAAkB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACrC,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAChC,mBAAqB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC7B,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,wBAA0B,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClC,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,iBAAmB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,iBAAmB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,eAAiB,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,WAAA,EAAe,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAClC,aAAe,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,YAAA,EAAgB,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MAC7B,aAAe,EAAA,CAAA,MAAA;AAAO,KACvB,CAAC,CAAA;AAAA,IACF,gBAAkB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,iBAAmB,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,WAAa,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,sBAAwB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,sBAAwB,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,OAAS,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACjC,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAa,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,YAAc,EAAA,CAAA,MAAA,CAAO;AAAA,MACnB,cAAgB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,gBAAkB,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgB,EAAA,CAAA,MAAA;AAAO,KACxB,CAAA;AAAA,IACD,UAAA,EAAc,SAAQ,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,WAAa,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,wBAA0B,EAAA,CAAA,MAAA,EAAO;AAAA,IACjC,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,SAAW,EAAA,CAAA,MAAA,CAAO;AAAA,MAChB,UAAY,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,GAAA,EAAO,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,oBAAsB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC7B,yBAA2B,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,oBAAA,EAAwB,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,IAAA,EAAQ,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,cAAA,EAAkB,YAAW,EAAA,CAAA,MAAA,CAAO;AAAA,QAClC,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,QAC5B,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,aAAA,EAAiB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QACpC,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAChC,QAAA,EAAY,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC/B,QAAA,EAAY,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC/B,OAAA,EAAW,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC9B,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAChC,OAAA,EAAW,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC9B,QAAA,EAAY,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC/B,OAAA,EAAW,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAC9B,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA,OACjC,CAAC,CAAA;AAAA,MACF,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACjC,eAAA,EAAmB,YAAW,EAAA,CAAA,MAAA,CAAO;AAAA,QACnC,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,QACxB,OAAS,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,QACrB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAa,EAAA,CAAA,MAAA;AAAO,OACrB,CAAC;AAAA,KACH,CAAA;AAAA,IACD,WAAA,EAAe,YAAW,EAAA,CAAA,MAAA,CAAO;AAAA,MAC/B,8BAAgC,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,6BAA+B,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sCAAwC,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/C,8BAAgC,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,6BAA+B,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sCAAwC,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/C,gCAAkC,EAAA,CAAA,MAAA,EAAO;AAAA,MACzC,6BAA+B,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sBAAwB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/B,sBAAwB,EAAA,CAAA,OAAA,EAAQ;AAAA,MAChC,8BAAgC,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxC,SAAW,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAU,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,YAAc,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgB,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,uBAAyB,EAAA,CAAA,MAAA,EAAO;AAAA,MAChC,yBAA2B,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,uBAAyB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACjC,4BAA8B,EAAA,CAAA,MAAA,EAAO;AAAA,MACrC,QAAU,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,yBAA2B,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,cAAgB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,8BAAgC,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,kBAAoB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,8BAAgC,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,iBAAmB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,UAAY,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,eAAiB,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,sBAAwB,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/B,uBAAyB,EAAA,CAAA,OAAA,EAAQ;AAAA,MACjC,aAAe,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAa,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAa,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,oBAAA,EAAwB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC3C,UAAA,EAAc,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACjC,eAAA,EAAmB,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,KAAA,CAAQ,EAAA,CAAA,MAAA,EAAQ,CAAC;AAAA,GAChD,CAAC,CAAA;AAAA,EACF,SAAW,EAAA,CAAA,OAAA;AACb,CAAC;AASD,IAAM,qCAAuC,EAAA,CAAA,MAAA,CAAO;AAAA,EAClD,SAAA,EAAa,EAAA,CAAA,QAAA,CAAW,EAAA,CAAA,MAAA,EAAQ;AAAA;AAClC,CAAC;AAED,IAAM,0BAAA,GAA+B,EAAA,CAAA,MAAA,CAAO,EAC3C;;;AC1pBM,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,iBAAiB,MAAA,EAA+E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACpG,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAoC,8DAAA,EAAgE,EAAE,MAAA,EAAQ,MAAA,EAAQ,wBAAwB,CAAA;AAAA,IACnK,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAA,GAA4C;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAChD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA4B,uDAAuD,EAAE,MAAA,EAAQ,gBAAgB,CAAA;AAAA,IAClI,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACrBA,IAAM,2BAA6BC,EAAA,CAAA,MAAA,CAAO;AAAA,EACxC,MAAQA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAChB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,QAAA,EAAYA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACzB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,mCAAqCA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5C,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClC,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACvB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACnB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAC3B,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,YAAA,EAAgBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,MACjC,YAAcA,EAAA,CAAA,OAAA;AAAQ,KACvB,CAAA;AAAA,IACD,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC7B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAClC,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,oBAAsBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC9B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,wBAA0BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjC,qBAAuBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC/B,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,wBAA0BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClC,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACvC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAChC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACrC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,0BAA4BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnC,uBAAyBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,0BAA4BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpC,0BAA4BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnC,qBAAuBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC/B,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC7B,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,4BAA8BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtC,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,yBAA2BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnC,uBAAyBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,OACtB;AAAA,KACF,CAAA;AAAA,IACD,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,SAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,MAChB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,GAAA,EAAOA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC7B,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,oBAAA,EAAwBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,eAAA,EAAmBA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,QACnC,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACxB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,QACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,OACrB,CAAC,CAAA;AAAA,MACF,cAAA,EAAkBA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,QAClC,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACxB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,QAC5B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,QACpB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,QACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,OACrB,CAAC,CAAA;AAAA,MACF,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KAClC,CAAA;AAAA,IACD,YAAcA,EAAA,CAAA,MAAA,CAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgBA,EAAA,CAAA,MAAA;AAAO,KACxB,CAAA;AAAA,IACD,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,OAAA;AAAQ,KACtB,CAAA;AAAA,IACD,MAAA,EAAUA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACvB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,OACtB;AAAA,KACF,CAAC,CAAA;AAAA,IACF,YAAA,EAAgBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACjC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAClC,IAAA,EAAQA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAClC,iBAAA,EAAqBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KACzC,CAAC,CAAA;AAAA,IACF,cAAgBA,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,GAAA,EAAOA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAOA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAOA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,GAAA,EAAOA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KAC3B,CAAA;AAAA,IACD,mBAAqBA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC1B,CAAA,EAAKA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxB,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KAC5B,CAAA;AAAA,IACD,QAAA,EAAYA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACzB,SAAWA,EAAA,CAAA,MAAA;AAAO,KACnB,CAAC,CAAA;AAAA,IACF,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,iBAAA,EAAqBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAClC,kBAAoBA,EAAA,CAAA,MAAA;AAAO,KAC5B,CAAC,CAAA;AAAA,IACF,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,YAAA,EAAgBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC7B,aAAeA,EAAA,CAAA,MAAA;AAAO,KACvB,CAAC,CAAA;AAAA,IACF,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjB,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjB,OAAA,EAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IAC5B,OAAA,EAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,OAASA,EAAA,CAAA,MAAA;AAAO,GACjB,CAAC,CAAA;AAAA,EACF,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAClC,CAAC;AACD,IAAM,kBAAoBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/B,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC5B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC5B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,oBAAsBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC9B,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC7B,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,OACtB,CAAA;AAAA,MACD,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAChC,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KAChC,CAAA;AAAA,IACD,GAAA,EAAOA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,GAC3B,CAAC,CAAA;AAAA,EACF,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,UAAYA,EAAA,CAAA,MAAA;AACd,CAAC;AACD,IAAM,YAAcA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC3B,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC1B,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,IACd,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACjC,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA,GACjC,CAAA;AAAA,EACD,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,IACd,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACjC,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA,GAClC,CAAA;AAAA,EACD,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC5B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC5B,IAAA,EAAQA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,QACrB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,SAAWA,EAAA,CAAA,MAAA;AAAO,OACnB,CAAC;AAAA,KACH,CAAC,CAAA;AAAA,IACF,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS;AAAA,GACpC,CAAA;AAAA,EACD,kBAAA,EAAsBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,EACvC,eAAA,EAAmBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,EACpC,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,MAAA,EAAUA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACvB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjB,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjB,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC5B,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAChC,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,GAChC,CAAC;AACJ,CAAC;AACD,IAAM,yBAA2BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACtC,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,aAAA,EAAiBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC9B,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,eAAiBA,EAAA,CAAA,OAAA;AAAQ,GAC1B,CAAC,CAAA;AAAA,EACF,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA;AACd,CAAC;AACD,IAAM,gBAAA,GAAqBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACxC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACjB,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACjB,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC5B,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC1B,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAChC,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AACjC,CAAC,CAAC;AACF,IAAM,eAAiBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,UAAYA,EAAA,CAAA,MAAA;AAAO,GACpB,CAAA;AAAA,EACD,SAAWA,EAAA,CAAA,MAAA;AACb,CAAC;AACD,IAAM,gBAAkBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC7B,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,OAAA,EAAWA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACxB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClC,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,SAAWA,EAAA,CAAA,MAAA;AAAO,KACnB,CAAC,CAAA;AAAA,IACF,sBAAA,EAA0BA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACvC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,QAC5B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,SAAWA,EAAA,CAAA,MAAA;AAAO,OACnB,CAAC;AAAA,KACH,CAAC,CAAA;AAAA,IACF,oBAAA,EAAwBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACrC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,QAC5B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,SAAWA,EAAA,CAAA,MAAA;AAAO,OACnB,CAAC;AAAA,KACH,CAAC,CAAA;AAAA,IACF,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,kBAAoBA,EAAA,CAAA,MAAA;AAAO,GAC5B,CAAC,CAAA;AAAA,EACF,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA;AACd,CAAC;AACD,IAAM,wBAA0BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACrC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,eAAA,EAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAChC,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,UACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,UAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,UACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,UACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,UACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,UACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,SACtB;AAAA,OACF,CAAA;AAAA,MACD,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAChC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACrC,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,qBAAuBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC9B,qBAAuBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC9B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,aAAeA,EAAA,CAAA,MAAA;AAAO,KACvB,CAAC,CAAA;AAAA,IACF,aAAA,EAAiBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IAClC,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChC,qBAAuBA,EAAA,CAAA,MAAA;AAAO,GAC/B,CAAA;AAAA,EACD,UAAYA,EAAA,CAAA,MAAA;AACd,CAAC;AACD,IAAM,uBAAyBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACpC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,QAAA,EAAYA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS;AAC/B,CAAC;AAgBD,IAAM,uCAAyCA,EAAA,CAAA,MAAA,CAAO;AAAA,EACpD,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA;AAAA,EAC5B,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAClC,CAAC;AAED,IAAM,8BAAgCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC3C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,GAAA,EAAOA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC1B,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA;AAAA,EACxC,oBAAA,EAAwBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA;AAAA,EAC5C,iBAAA,EAAqBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA;AAAA,EACzC,iBAAA,EAAqBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA;AAAA,EACzC,kBAAA,EAAsBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACzC,kBAAA,EAAsBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACzC,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACjC,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACjC,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC3B,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC9B,CAAC;AAED,IAAM,wBAA0BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACrC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AACzC,CAAC;AAED,IAAM,qCAAuCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAClD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACjC,CAAC;AAED,IAAM,+BAAiCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AACvC,CAAC;AAED,IAAM,2BAA6BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACxC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AACzC,CAAC;AAED,IAAM,4BAA8BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AACjC,CAAC;AAED,IAAM,oCAAsCA,EAAA,CAAA,MAAA,CAAO;AAAA,EACjD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACjC,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC9B,CAAC;AAED,IAAM,mCAAqCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AACrC,CAAC;;;ACjiBM,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,mBAAmB,MAAA,EAAmF;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC1G,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAsC,iEAAA,EAAmE,EAAE,MAAA,EAAQ,MAAA,EAAQ,0BAA0B,CAAA;AAAA,IAC1K,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,UAAU,MAAA,EAAiE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC/E,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA6B,sDAAA,EAAwD,EAAE,MAAA,EAAQ,MAAA,EAAQ,iBAAiB,CAAA;AAAA,IAC7I,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,IAAI,MAAA,EAAqD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC7D,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAuB,gDAAA,EAAkD,EAAE,MAAA,EAAQ,MAAA,EAAQ,WAAW,CAAA;AAAA,IAC3H,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,iBAAiB,MAAA,EAA+E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACpG,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAoC,+DAAA,EAAiE,EAAE,MAAA,EAAQ,MAAA,EAAQ,wBAAwB,CAAA;AAAA,IACpK,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,WAAW,MAAA,EAAmE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAClF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA8B,uDAAA,EAAyD,EAAE,MAAA,EAAQ,MAAA,EAAQ,kBAAkB,CAAA;AAAA,IAChJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,OAAO,MAAA,EAA2D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtE,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA0B,mDAAA,EAAqD,EAAE,MAAA,EAAQ,MAAA,EAAQ,cAAc,CAAA;AAAA,IACpI,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAQ,MAAA,EAA6D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACzE,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA2B,oDAAA,EAAsD,EAAE,MAAA,EAAQ,MAAA,EAAQ,eAAe,CAAA;AAAA,IACvI,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,gBAAgB,MAAA,EAA6E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACjG,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAmC,6DAAA,EAA+D,EAAE,MAAA,EAAQ,MAAA,EAAQ,uBAAuB,CAAA;AAAA,IAChK,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,eAAe,MAAA,EAA2E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC9F,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAkC,4DAAA,EAA8D,EAAE,MAAA,EAAQ,MAAA,EAAQ,sBAAsB,CAAA;AAAA,IAC7J,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACpFA,IAAM,eAAA,GAAoBC,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACvC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,aAAeA,EAAA,CAAA,MAAA;AACjB,CAAC,CAAC;AACF,IAAM,aAAA,GAAkBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACrC,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,IACjB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,GACtB,CAAA;AAAA,EACC,iBAAmBA,EAAA,CAAA,OAAA;AACrB,CAAC,CAAC;AACF,IAAM,eAAiBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5B,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,MAAA,EAAUA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACvB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,IACd,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACrC,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACnC,CAAC;AACJ,CAAC;AACD,IAAM,SAAA,GAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACjC,OAAA,EAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,EAC5B,KAAOA,EAAA,CAAA,MAAA;AACT,CAAC,CAAC;AACF,IAAM,cAAA,GAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACtC,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAClC,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC/B,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACvC,MAAA,EAAUA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,OAASA,EAAA,CAAA,MAAA;AAAO,GACjB,CAAC,CAAA;AAAA,EACF,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AACjC,CAAC,CAAC;AAYF,IAAM,2BAAA,GAAgCA,EAAA,CAAA,MAAA,CAAO,EAC5C;AAED,IAAM,4BAA8BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACjC,CAAC;AAED,IAAM,wBAAA,GAA6BA,EAAA,CAAA,MAAA,CAAO,EACzC;AAED,IAAM,qBAAA,GAA0BA,EAAA,CAAA,MAAA,CAAO,EACtC;AAED,IAAM,0BAAA,GAA+BA,EAAA,CAAA,MAAA,CAAO,EAC3C;;;ACzEM,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,SAAA,GAA8C;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAClD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA6B,wDAAwD,EAAE,MAAA,EAAQ,iBAAiB,CAAA;AAAA,IACrI,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAQ,MAAA,EAA6D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACzE,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA2B,oDAAA,EAAsD,EAAE,MAAA,EAAQ,MAAA,EAAQ,eAAe,CAAA;AAAA,IACvI,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,MAAA,GAAwC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC5C,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA0B,qDAAqD,EAAE,MAAA,EAAQ,cAAc,CAAA;AAAA,IAC5H,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,GAAA,GAAkC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtC,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAuB,kDAAkD,EAAE,MAAA,EAAQ,WAAW,CAAA;AAAA,IACnH,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAA,GAA4C;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAChD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA4B,uDAAuD,EAAE,MAAA,EAAQ,gBAAgB,CAAA;AAAA,IAClI,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;AChDA,IAAM,eAAiBC,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,YAAcA,EAAA,CAAA,MAAA;AAAO,GACtB,CAAA;AAAA,EACD,SAAWA,EAAA,CAAA,MAAA;AACb,CAAC;AACD,IAAM,uBAAyBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACpC,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,YAAcA,EAAA,CAAA,MAAA;AAAO,GACtB,CAAA;AAAA,EACD,SAAWA,EAAA,CAAA,MAAA;AACb,CAAC;AACD,IAAM,kBAAoBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/B,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,IAAA,EAAQA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACrB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,OAASA,EAAA,CAAA,MAAA;AAAO,GACjB,CAAC,CAAA;AAAA,EACF,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,YAAcA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,OAAA,EAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC3B,OAAA,EAAWA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACxB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,IAAMA,EAAA,CAAA,OAAA;AAAQ,GACf,CAAC;AACJ,CAAC;AACD,IAAM,aAAeA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC1B,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC3B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,SAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,IAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA,GACrC,CAAA;AAAA,EACD,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,IACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,GACtB,CAAA;AAAA,EACD,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,UAAYA,EAAA,CAAA,MAAA;AAAO,GACpB,CAAA;AAAA,EACD,UAAYA,EAAA,CAAA,MAAA,CAAO;AAAA,IACjB,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,MAClB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,YAAcA,EAAA,CAAA,MAAA,CAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,UAAYA,EAAA,CAAA,MAAA,CAAO;AAAA,MACjB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,UAAYA,EAAA,CAAA,MAAA,CAAO;AAAA,MACjB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB;AAAA,GACF,CAAA;AAAA,EACD,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC5B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,UAAA,EAAcA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GAC/B,CAAC,CAAA;AAAA,EACF,aAAA,EAAiBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC9B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,UAAA,EAAcA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GAC/B,CAAC,CAAA;AAAA,EACF,kBAAA,EAAsBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACtC,KAAOA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACf,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,YAAA,EAAgBA,EAAA,CAAA,MAAA,CAAO,EAEtB,CAAA;AAAA,EACD,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC5B,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC1B,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC7B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,sBAAwBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAChC,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,WAAaA,EAAA,CAAA,OAAA;AACf,CAAC;AACD,IAAM,0BAAA,GAA+BA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EAClD,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC3B,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC/B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,cAAgBA,EAAA,CAAA,MAAA;AAClB,CAAC,CAAC;AACF,IAAM,gBAAkBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC7B,YAAA,EAAgBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC7B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC/B,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACpC,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAChC,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACpC,CAAC,CAAA;AAAA,EACF,UAAYA,EAAA,CAAA,MAAA,CAAO;AAAA,IACjB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,sBAAwBA,EAAA,CAAA,MAAA;AAAO,GAChC,CAAA;AAAA,EACD,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,CAAO;AAAA,IACnB,IAAMA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACd,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC9B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,QAAA,EAAYA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACzB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,aAAeA,EAAA,CAAA,MAAA;AAAO,GACvB,CAAA;AAAA,EACD,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,cAAA,EAAkBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC/B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,IACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,KAAOA,EAAA,CAAA,MAAA;AAAO,GACf,CAAC,CAAA;AAAA,EACF,YAAA,EAAgBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC7B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC9B,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB;AAAA,GACF,CAAC,CAAA;AAAA,EACF,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC1B,cAAgBA,EAAA,CAAA,MAAA,CAAO;AAAA,IACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,SAAWA,EAAA,CAAA,MAAA;AAAO,GACnB;AACH,CAAC;AAcD,IAAM,2BAA6BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACxC,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC/B,CAAC;AAED,IAAM,mCAAqCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChD,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,SAAWA,EAAA,CAAA,MAAA;AAAO;AACpB,CAAC;AAED,IAAM,8BAAgCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC3C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,WAAaA,EAAA,CAAA,MAAA;AAAO;AACtB,CAAC;AAED,IAAM,wBAA0BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACrC,OAAA,EAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC3B,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AACzC,CAAC;AAED,IAAM,sBAAA,GAA2BA,EAAA,CAAA,MAAA,CAAO,EACvC;AAED,IAAM,sCAAA,GAA2CA,EAAA,CAAA,MAAA,CAAO,EACvD;AAED,IAAM,4BAA8BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzC,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC/B,CAAC;;;ACjXM,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,OAAO,MAAA,EAA2D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtE,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA0B,mDAAA,EAAqD,EAAE,MAAA,EAAQ,MAAA,EAAQ,cAAc,CAAA;AAAA,IACpI,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,eAAe,MAAA,EAA2E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC9F,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAkC,4DAAA,EAA8D,EAAE,MAAA,EAAQ,MAAA,EAAQ,sBAAsB,CAAA;AAAA,IAC7J,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,UAAU,MAAA,EAAiE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC/E,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA6B,uDAAA,EAAyD,EAAE,MAAA,EAAQ,MAAA,EAAQ,iBAAiB,CAAA;AAAA,IAC9I,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,IAAI,MAAA,EAAqD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC7D,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAuB,gDAAA,EAAkD,EAAE,MAAA,EAAQ,MAAA,EAAQ,WAAW,CAAA;AAAA,IAC3H,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,IAAA,GAAoC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACxC,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAwB,mDAAmD,EAAE,MAAA,EAAQ,YAAY,CAAA;AAAA,IACtH,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,oBAAA,GAAoE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACxE,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAwC,oEAAoE,EAAE,MAAA,EAAQ,4BAA4B,CAAA;AAAA,IACvK,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAQ,MAAA,EAA6D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACzE,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA2B,oDAAA,EAAsD,EAAE,MAAA,EAAQ,MAAA,EAAQ,eAAe,CAAA;AAAA,IACvI,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;AClEA,IAAM,aAAeC,EAAA,CAAA,MAAA,CAAO;AAAA,EAC1B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,eAAA,EAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAChC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,UAAYA,EAAA,CAAA,MAAA;AAAO,GACpB,CAAC,CAAA;AAAA,EACF,uBAAA,EAA2BA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC3C,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC5B,OAASA,EAAA,CAAA,MAAA;AAAO,KACjB,CAAC;AAAA,GACH,CAAC,CAAA;AAAA,EACF,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC7B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC7B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC3B,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC3B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC5B,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC/B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC5B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChC,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChC,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC3B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC7B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,cAAA,EAAkBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC/B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,OAAA,EAAWA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACxB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/B,IAAMA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChC,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,OACtB,CAAA;AAAA,MACD,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,QACf,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,QACrB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,QACpB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QACjC,SAAWA,EAAA,CAAA,MAAA;AAAO,OACnB,CAAA;AAAA,MACD,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,QACb,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,QACjB,QAAUA,EAAA,CAAA,MAAA;AAAO,OAClB,CAAA;AAAA,MACD,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACnB,iBAAmBA,EAAA,CAAA,MAAA;AAAO,KAC3B,CAAC;AAAA,GACH,CAAC,CAAA;AAAA,EACF,aAAA,EAAiBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC9B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,sBAAwBA,EAAA,CAAA,MAAA;AAAO,GAChC,CAAC,CAAA;AAAA,EACF,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC3B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,IACd,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,GACrB,CAAA;AAAA,EACD,YAAcA,EAAA,CAAA,MAAA,CAAO;AAAA,IACnB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,cAAgBA,EAAA,CAAA,MAAA;AAAO,GACxB,CAAA;AAAA,EACD,SAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,IAChB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,IACd,+BAAiCA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxC,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA;AAAO,GACrB;AACH,CAAC;AACD,IAAM,kBAAoBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/B,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,aAAeA,EAAA,CAAA,MAAA,CAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB;AAAA,GACF,CAAA;AAAA,EACD,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACtC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACnC;AACH,CAAC;AACD,IAAM,sBAAwBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACnC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,aAAeA,EAAA,CAAA,MAAA,CAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChC,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB;AAAA,GACF,CAAA;AAAA,EACD,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,EACrC,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACnC,CAAA;AAAA,EACD,aAAeA,EAAA,CAAA,MAAA;AACjB,CAAC;AACD,IAAM,iBAAmBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC9B,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,aAAeA,EAAA,CAAA,MAAA,CAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChC,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB;AAAA,GACF,CAAA;AAAA,EACD,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,EACrC,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACnC,CAAA;AAAA,EACD,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,IACf,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IAClC,SAAWA,EAAA,CAAA,MAAA;AAAO,GACnB;AACH,CAAC;AACD,IAAM,sBAAwBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACnC,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,MACvC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS;AAAA,KACpC,CAAA;AAAA,IACD,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACvC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACrC,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACpC,WAAA,EAAeA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC/B,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACjC,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAClC,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC5B,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC9B,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC/B,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KACtC;AAAA,GACF;AACH,CAAC;AACD,IAAM,sBAAwBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACnC,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,MACvC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS;AAAA,KACpC,CAAA;AAAA,IACD,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACvC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACrC,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACtC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACpC,WAAA,EAAeA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC/B,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC/B,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACjC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACpC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,UAAA,EAAcA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC9B,mBAAA,EAAuBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,KACxC;AAAA,GACF;AACH,CAAC;AACD,IAAM,uBAAyBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACpC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAChC,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC5B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,iBAAmBA,EAAA,CAAA,MAAA;AAAO,KAC3B,CAAC,CAAA;AAAA,IACF,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,OAAA;AAAQ,KACtB,CAAA;AAAA,IACD,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,cAAgBA,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,YAAcA,EAAA,CAAA,MAAA;AAAO,GACtB,CAAC;AACJ,CAAC;AAcD,IAAM,yBAA2BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACtC,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACvB,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AACzC,CAAC;AAED,IAAM,8BAAgCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC3C,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACvB,kBAAoBA,EAAA,CAAA,MAAA;AAAO;AAC7B,CAAC;AAED,IAAM,kCAAoCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/C,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACvB,kBAAoBA,EAAA,CAAA,MAAA;AAAO;AAC7B,CAAC;AAED,IAAM,6BAA+BA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC1C,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACvB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EAC3B,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC/B,CAAC;AAED,IAAM,kCAAoCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/C,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACtC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACpC,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACvC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACrC,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACjC,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAClC,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC/B,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACrC,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC5B,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC9B,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAC;AAAA;AAC7C,CAAC;AAED,IAAM,kCAAoCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/C,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACjC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACpC,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACtC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACpC,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACvC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACrC,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC/B,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAClC,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA;AAAA,EACpC,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA;AAAA,EAC1C,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAC;AAAA;AAC7C,CAAC;AAED,IAAM,mCAAqCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAChC,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACpC,CAAC;;;ACngBM,IAAM,iBAAN,MAAqB;AAAA,EAC1B,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,IAAI,MAAA,EAAuD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC/D,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAwB,iDAAA,EAAmD,EAAE,MAAA,EAAQ,MAAA,EAAQ,YAAY,CAAA;AAAA,IAC9H,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,SAAS,MAAA,EAAiE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC9E,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA6B,uDAAA,EAAyD,EAAE,MAAA,EAAQ,MAAA,EAAQ,iBAAiB,CAAA;AAAA,IAC9I,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,aAAa,MAAA,EAAyE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC1F,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAiC,4DAAA,EAA8D,EAAE,MAAA,EAAQ,MAAA,EAAQ,qBAAqB,CAAA;AAAA,IAC3J,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAQ,MAAA,EAA+D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC3E,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA4B,sDAAA,EAAwD,EAAE,MAAA,EAAQ,MAAA,EAAQ,gBAAgB,CAAA;AAAA,IAC3I,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,aAAa,MAAA,EAAyE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC1F,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAiC,2DAAA,EAA6D,EAAE,MAAA,EAAQ,MAAA,EAAQ,qBAAqB,CAAA;AAAA,IAC1J,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,aAAa,MAAA,EAAyE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC1F,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAiC,2DAAA,EAA6D,EAAE,MAAA,EAAQ,MAAA,EAAQ,qBAAqB,CAAA;AAAA,IAC1J,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,cAAc,MAAA,EAA2E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC7F,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAkC,4DAAA,EAA8D,EAAE,MAAA,EAAQ,MAAA,EAAQ,sBAAsB,CAAA;AAAA,IAC7J,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;AClEA,IAAM,aAAeC,EAAA,CAAA,MAAA,CAAO;AAAA,EAC1B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,OAAA,EAAWA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACxB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACpC,CAAC,CAAA;AAAA,EACF,YAAcA,EAAA,CAAA,MAAA;AAChB,CAAC;AACD,IAAM,kBAAoBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/B,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,QAAA,EAAYA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACzB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAChC,YAAcA,EAAA,CAAA,MAAA;AAAO,GACtB,CAAC,CAAA;AAAA,EACF,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,SAAWA,EAAA,CAAA,OAAA;AACb,CAAC;AACD,IAAM,+BAAiCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5C,UAAA,EAAcA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC9B,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,aAAA,EAAiBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AACnC,CAAC;AACD,IAAM,qCAAuCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAClD,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,SAAA,EAAaA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC7B,UAAA,EAAcA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC9B,WAAA,EAAeA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC5B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,WAAaA,EAAA,CAAA,MAAA;AAAO,GACrB,CAAC;AACJ,CAAC;AAWD,IAAM,yBAA2BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACtC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,eAAiBA,EAAA,CAAA,MAAA;AAAO;AAC1B,CAAC;AAED,IAAM,8BAAgCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC3C,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC3B,mBAAA,EAAuBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AAC7C,CAAC;AAED,IAAM,2CAA6CA,EAAA,CAAA,MAAA,CAAO;AAAA,EACxD,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAC;AAAA;AAC5C,CAAC;AAED,IAAM,iDAAmDA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC9D,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA;AAAA,EAC1C,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAC;AAAA;AAC3C,CAAC;;;AC9EM,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,KAAK,MAAA,EAAuD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAChE,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAwB,iDAAA,EAAmD,EAAE,MAAA,EAAQ,MAAA,EAAQ,YAAY,CAAA;AAAA,IAC9H,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,UAAU,MAAA,EAAiE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC/E,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA6B,uDAAA,EAAyD,EAAE,MAAA,EAAQ,MAAA,EAAQ,iBAAiB,CAAA;AAAA,IAC9I,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,uBAAuB,MAAA,EAA2F;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtH,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA0C,oEAAA,EAAsE,EAAE,MAAA,EAAQ,MAAA,EAAQ,8BAA8B,CAAA;AAAA,IACrL,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,6BAA6B,MAAA,EAAuG;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACxI,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAgD,2EAAA,EAA6E,EAAE,MAAA,EAAQ,MAAA,EAAQ,oCAAoC,CAAA;AAAA,IACxM,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACvCA,IAAM,YAAA,GAAiBC,EAAA,CAAA,MAAA,CAASA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,MAAA,CAAO;AAAA,EACjD,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACvC,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC3C,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC;AAC/C,CAAC,CAAC;AACF,IAAM,SAAA,GAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACjC,eAAA,EAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAChC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,iBAAmBA,EAAA,CAAA,MAAA;AAAO,GAC3B,CAAC,CAAA;AAAA,EACF,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,aAAeA,EAAA,CAAA,MAAA,CAAO;AAAA,IACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,eAAiBA,EAAA,CAAA,MAAA;AAAO,GACzB,CAAA;AAAA,EACC,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC/B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AACtC,CAAC,CAAC;AACF,IAAM,oBAAsBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACjC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,IACf,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,iBAAA,EAAqBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAClC,kBAAoBA,EAAA,CAAA,MAAA;AAAO,KAC5B,CAAC,CAAA;AAAA,IACF,eAAA,EAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAChC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,UAAYA,EAAA,CAAA,MAAA;AAAO,KACpB,CAAC,CAAA;AAAA,IACF,OAAA,EAAWA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACxB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACtB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAC5B,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,iBAAA,EAAqBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,QAClC,kBAAoBA,EAAA,CAAA,MAAA;AAAO,OAC5B,CAAC,CAAA;AAAA,MACF,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,QAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,QACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,QACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,QACf,eAAiBA,EAAA,CAAA,MAAA;AAAO,OACzB,CAAC,CAAA;AAAA,MACF,SAAA,EAAaA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,QAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,UACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,UAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,UACpB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,SAClC;AAAA,OACF,CAAC;AAAA,KACH,CAAC;AAAA,GACH,CAAA;AAAA,EACD,UAAYA,EAAA,CAAA,MAAA;AACd,CAAC;AACD,IAAM,aAAA,GAAkBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACrC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClB,oBAAA,EAAwBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC3C,WAAA,EAAeA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC/B,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACxB,QAAA,EAAYA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACzB,SAAWA,EAAA,CAAA,MAAA;AAAO,GACnB,CAAC,CAAA;AAAA,EACF,uBAAyBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACjC,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,qBAAuBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC/B,0BAA4BA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnC,0BAA4BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpC,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACxB,wBAA0BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClC,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC3B,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,yBAA2BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnC,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,0BAA4BA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnC,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC5B,0BAA4BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpC,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC3B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC7B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC7B,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACxB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,iBAAA,EAAqBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClC,kBAAoBA,EAAA,CAAA,MAAA;AAAO,GAC5B,CAAC,CAAA;AAAA,EACF,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACzB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,4BAA8BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtC,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACtC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,2BAA6BA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpC,wBAA0BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClC,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC7B,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC5B,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC3B,qBAAuBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC9B,SAAA,EAAaA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAA,EAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAChC,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAClC,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KACnC,CAAC,CAAA;AAAA,IACF,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,yBAA2BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnC,oBAAsBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC9B,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACrC,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAClC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACpC,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACnC,mBAAA,EAAuBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACpC,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACrB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,MAC5C,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,MACzC,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACvC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACpC,SAAA,EAAaA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KACjC,CAAC,CAAA;AAAA,IACF,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACpC,mBAAA,EAAuBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACvC,YAAA,EAAgBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC7B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,oBAAsBA,EAAA,CAAA,MAAA;AAAO,KAC9B,CAAC,CAAA;AAAA,IACF,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACvC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KAClC,CAAA;AAAA,IACD,YAAcA,EAAA,CAAA,MAAA,CAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACrC,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KAClC,CAAA;AAAA,IACD,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACnC,SAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,MAChB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,MAChC,eAAA,EAAmBA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,QACnC,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,QACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACxB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,QACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,QACtB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,OACrB,CAAC,CAAA;AAAA,MACF,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACnC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC7B,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,oBAAA,EAAwBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACjC,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,cAAA,EAAkBA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,QAClC,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACxB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,QAC5B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,QACpB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,QACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,OACrB,CAAC,CAAA;AAAA,MACF,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACjC,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,GAAA,EAAOA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC1B,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAC3B,iBAAA,EAAqBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,iBAAA,EAAqBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,KACzC,CAAA;AAAA,IACD,aAAeA,EAAA,CAAA,MAAA;AAAO,GACvB,CAAC,CAAA;AAAA,EACF,iBAAA,EAAqBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACxC,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,oBAAsBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC9B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC1B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC3B,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC3B,WAAaA,EAAA,CAAA,MAAA;AAAO,GACrB,CAAC,CAAA;AAAA,EACF,wBAA0BA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjC,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACnC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACrC,WAAA,EAAeA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,IACjC,8BAAgCA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvC,6BAA+BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtC,sCAAwCA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/C,8BAAgCA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvC,6BAA+BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtC,sCAAwCA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/C,gCAAkCA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzC,6BAA+BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtC,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,sBAAwBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAChC,8BAAgCA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxC,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChC,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClC,uBAAyBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,4BAA8BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrC,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,8BAAgCA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvC,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,8BAAgCA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvC,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC/B,uBAAyBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA;AAAO,GACrB,CAAC;AACF,CAAC,CAAC;AACF,IAAM,mBAAqBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChC,OAAA,EAAWA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACxB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,oBAAA,EAAwBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC3C,WAAA,EAAeA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IAC/B,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,QAAA,EAAYA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACzB,SAAWA,EAAA,CAAA,MAAA;AAAO,KACnB,CAAC,CAAA;AAAA,IACF,uBAAyBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjC,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,qBAAuBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC/B,0BAA4BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnC,0BAA4BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpC,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,kBAAoBA,EAAA,CAAA,MAAA,CAAO;AAAA,MACzB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,QACd,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,QACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,QACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,QACpB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,OAClC,CAAA;AAAA,MACD,eAAA,EAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,QAChC,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,QAChB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,QACzB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QAClC,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,QAC1B,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,OACnC,CAAC,CAAA;AAAA,MACF,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACnC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACpC,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACnC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,wBAA0BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClC,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACb,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,UAAYA,EAAA,CAAA,OAAA;AAAQ,KACrB,CAAA;AAAA,IACD,yBAA2BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnC,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,0BAA4BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnC,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACvB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC5B,0BAA4BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpC,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,iBAAA,EAAqBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAClC,kBAAoBA,EAAA,CAAA,MAAA;AAAO,KAC5B,CAAC,CAAA;AAAA,IACF,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,4BAA8BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,2BAA6BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpC,wBAA0BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,mBAAA,EAAuBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC/C,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAA,EAAeA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,KAChC,CAAC,CAAC,CAAA;AAAA,IACH,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClC,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC7B,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC5B,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,qBAAuBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC9B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,oBAAsBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC9B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC3B,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC,CAAA;AAAA,IACF,wBAA0BA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjC,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACnC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACrC,WAAA,EAAeA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC/B,8BAAgCA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,6BAA+BA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sCAAwCA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/C,8BAAgCA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,6BAA+BA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sCAAwCA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/C,gCAAkCA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzC,6BAA+BA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtC,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/B,sBAAwBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAChC,8BAAgCA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxC,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,uBAAyBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChC,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,uBAAyBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACjC,4BAA8BA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrC,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACxB,8BAAgCA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC3B,8BAAgCA,EAAA,CAAA,MAAA,EAAO;AAAA,MACvC,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACxB,sBAAwBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC/B,uBAAyBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACjC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC;AAAA,GACH,CAAC;AACJ,CAAC;AACD,IAAM,uBAAyBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACpC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,SAAA,EAAaA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAA,EAAmBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACpC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,yBAA2BA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnC,cAAgBA,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAC5B,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAC3B,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC7B,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MAC1B,0BAA4BA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACpC,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,kBAAoBA,EAAA,CAAA,MAAA;AAAO,KAC5B,CAAA;AAAA,IACD,aAAA,EAAiBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC9B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACzB,eAAiBA,EAAA,CAAA,OAAA;AAAQ,KAC1B,CAAC,CAAA;AAAA,IACF,oBAAsBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC9B,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,mBAAA,EAAuBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACxC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACnC,mBAAA,EAAuBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MACpC,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,MACrB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,MACzB,YAAA,EAAgBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MAChC,cAAgBA,EAAA,CAAA,OAAA;AAAQ,KACzB,CAAC,CAAA;AAAA,IACF,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,kBAAA,EAAsBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACvC,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,gBAAkBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC1B,gBAAA,EAAoBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACvC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACrB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACjC,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,YAAcA,EAAA,CAAA,MAAA,CAAO;AAAA,MACnB,cAAgBA,EAAA,CAAA,OAAA;AAAQ,KACzB,CAAA;AAAA,IACD,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,SAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,MAChB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,MACd,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC7B,yBAA2BA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClC,oBAAA,EAAwBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,MACxC,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC5B,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,aAAeA,EAAA,CAAA,MAAA;AAAO,GACvB,CAAC;AACJ,CAAC;AACD,IAAM,iBAAA,GAAsBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC3B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,iBAAA,EAAqBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClC,kBAAoBA,EAAA,CAAA,MAAA;AAAO,GAC5B,CAAC,CAAA;AAAA,EACF,eAAA,EAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAChC,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,UAAYA,EAAA,CAAA,MAAA;AAAO,GACpB,CAAC,CAAA;AAAA,EACF,OAAA,EAAWA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACxB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAClB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACzB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACtB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,kBAAoBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IAC5B,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACxB,iBAAA,EAAqBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAClC,kBAAoBA,EAAA,CAAA,MAAA;AAAO,KAC5B,CAAC,CAAA;AAAA,IACF,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,eAAiBA,EAAA,CAAA,MAAA;AAAO,KACzB,CAAC,CAAA;AAAA,IACF,SAAA,EAAaA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,MACtB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,QACd,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,QACjC,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,QAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,OACrB;AAAA,KACF,CAAC;AAAA,GACH,CAAC,CAAA;AAAA,EACF,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AACtC,CAAC,CAAC;AAcF,IAAM,wBAAA,GAA6BA,EAAA,CAAA,MAAA,CAAO,EACzC;AAED,IAAM,qBAAA,GAA0BA,EAAA,CAAA,MAAA,CAAO,EACtC;AAED,IAAM,gCAAkCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC7C,UAAYA,EAAA,CAAA,MAAA;AAAO;AACrB,CAAC;AAED,IAAM,4BAA8BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA;AAAA,EACrC,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACjC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACtC,CAAC;AAED,IAAM,+BAAiCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5C,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA;AAAA,EACrC,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACjC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACtC,CAAC;AAED,IAAM,mCAAqCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChD,UAAYA,EAAA,CAAA,MAAA;AAAO;AACrB,CAAC;AAED,IAAM,6BAAA,GAAkCA,EAAA,CAAA,MAAA,CAAO,EAC9C;;;AC9oBM,IAAM,gBAAN,MAAoB;AAAA,EACzB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,MAAA,GAAwC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC5C,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA0B,qDAAqD,EAAE,MAAA,EAAQ,cAAc,CAAA;AAAA,IAC5H,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,GAAA,GAAkC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtC,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAuB,kDAAkD,EAAE,MAAA,EAAQ,WAAW,CAAA;AAAA,IACnH,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,YAAY,MAAA,EAAqE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACrF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA+B,yDAAA,EAA2D,EAAE,MAAA,EAAQ,MAAA,EAAQ,mBAAmB,CAAA;AAAA,IACpJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,QAAQ,MAAA,EAA6D;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACzE,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA2B,oDAAA,EAAsD,EAAE,MAAA,EAAQ,MAAA,EAAQ,eAAe,CAAA;AAAA,IACvI,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,WAAW,MAAA,EAAmE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAClF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA8B,wDAAA,EAA0D,EAAE,MAAA,EAAQ,MAAA,EAAQ,kBAAkB,CAAA;AAAA,IACjJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,eAAe,MAAA,EAA2E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC9F,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAkC,4DAAA,EAA8D,EAAE,MAAA,EAAQ,MAAA,EAAQ,sBAAsB,CAAA;AAAA,IAC7J,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,WAAA,GAAkD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA+B,2DAA2D,EAAE,MAAA,EAAQ,mBAAmB,CAAA;AAAA,IAC5I,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;AClEA,IAAM,mBAAqBC,EAAA,CAAA,MAAA,CAAO;AAAA,EAChC,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC3B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,SAAWA,EAAA,CAAA,MAAA;AAAO,GACnB,CAAC,CAAA;AAAA,EACF,KAAA,EAASA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACtB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,eAAiBA,EAAA,CAAA,MAAA;AAAO,GACzB,CAAC,CAAA;AAAA,EACF,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,OAASA,EAAA,CAAA,MAAA;AACX,CAAC;AACD,IAAM,oBAAsBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACjC,KAAA,EAASA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,iBAAmBA,EAAA,CAAA,MAAA;AAAO,GAC3B,CAAC,CAAA;AAAA,EACF,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,sBAAwBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACnC,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA;AACd,CAAC;AACD,IAAM,mBAAqBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChC,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,IACd,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAA,EAAeA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC/B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,UAAYA,EAAA,CAAA,MAAA;AAAO,KACpB,CAAC,CAAA;AAAA,IACF,aAAA,EAAiBA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,MACjC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAC;AAAA,GACH,CAAA;AAAA,EACD,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC7B,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,yBAA2BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACtC,KAAA,EAASA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,MAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA;AAAO,KAClB,CAAA;AAAA,IACD,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,cAAgBA,EAAA,CAAA,MAAA,CAAO;AAAA,MACrB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,oBAAsBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC7B,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,MACd,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,WAAaA,EAAA,CAAA,MAAA;AAAO,KACrB,CAAA;AAAA,IACD,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,aAAeA,EAAA,CAAA,MAAA;AAAO,GACvB,CAAC,CAAA;AAAA,EACF,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,qBAAuBA,EAAA,CAAA,MAAA,CAAO;AAAA,EAClC,UAAYA,EAAA,CAAA,MAAA,CAAO;AAAA,IACjB,qBAAuBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC9B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,eAAiBA,EAAA,CAAA,MAAA;AAAO,GACzB,CAAA;AAAA,EACD,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,oBAAsBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACjC,KAAA,EAASA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACtB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,kBAAoBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC3B,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACvB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACxB,gBAAkBA,EAAA,CAAA,MAAA,EAAO;AAAA,IACzB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC5B,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,iBAAmBA,EAAA,CAAA,MAAA;AAAO,GAC3B,CAAC,CAAA;AAAA,EACF,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,6BAA+BA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC1C,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACnC,CAAA;AAAA,EACD,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,mCAAqCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChD,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACvC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS;AAAA,GACpC,CAAA;AAAA,EACD,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,2BAA6BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACxC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,IAC1B,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACnC,CAAA;AAAA,EACD,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,yBAA2BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACtC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACtC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACnC,CAAA;AAAA,EACD,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,uBAAyBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACpC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACtC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACnC,CAAA;AAAA,EACD,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,4BAA8BA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzC,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,WAAaA,EAAA,CAAA,MAAA,CAAO;AAAA,IAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,IACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,IACf,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IACvC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS;AAAA,GACpC,CAAA;AAAA,EACD,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,QAAUA,EAAA,CAAA,MAAA;AACZ,CAAC;AACD,IAAM,oBAAsBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACjC,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACnB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,IAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,SAAA,EAAaA,YAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,MAC7B,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,MACpB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,MACf,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,MAC1B,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,MAAA,EAAQ;AAAA,KACnC,CAAC,CAAA;AAAA,IACF,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,IACjC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA,GACrC;AACH,CAAC;AAqBD,IAAM,+BAAiCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC9B,CAAC;AAED,IAAM,gCAAkCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC7C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC/B,CAAC;AAED,IAAM,kCAAoCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC/C,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,WAAaA,EAAA,CAAA,MAAA;AAAO;AACtB,CAAC;AAED,IAAM,+BAAiCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC7B,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC3B,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC/B,CAAC;AAED,IAAM,qCAAuCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAClD,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC/B,CAAC;AAED,IAAM,iCAAmCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC9C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC/B,CAAC;AAED,IAAM,gCAAkCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC7C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AAC/B,CAAC;AAED,IAAM,yCAA2CA,EAAA,CAAA,MAAA,CAAO;AAAA,EACtD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC/B,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACpC,CAAC;AAED,IAAM,+CAAiDA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC5D,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC/B,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACpC,CAAC;AAED,IAAM,uCAAyCA,EAAA,CAAA,MAAA,CAAO;AAAA,EACpD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACpC,CAAC;AAED,IAAM,qCAAuCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAClD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EAC/B,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACpC,CAAC;AAED,IAAM,mCAAqCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACtB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACjC,CAAC;AAED,IAAM,wCAA0CA,EAAA,CAAA,MAAA,CAAO;AAAA,EACrD,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACrB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACtB,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACjC,CAAC;AAED,IAAM,gCAAkCA,EAAA,CAAA,MAAA,CAAO;AAAA,EAC7C,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EAChB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EAClB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA;AAAA,EACjC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAAA;AACtC,CAAC;;;AC/YM,IAAM,eAAN,MAAmB;AAAA,EACxB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,YAAY,MAAA,EAAmE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACnF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA8B,wDAAA,EAA0D,EAAE,MAAA,EAAQ,MAAA,EAAQ,kBAAkB,CAAA;AAAA,IACjJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,aAAa,MAAA,EAAqE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA+B,yDAAA,EAA2D,EAAE,MAAA,EAAQ,MAAA,EAAQ,mBAAmB,CAAA;AAAA,IACpJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,eAAe,MAAA,EAAyE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC5F,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAiC,2DAAA,EAA6D,EAAE,MAAA,EAAQ,MAAA,EAAQ,qBAAqB,CAAA;AAAA,IAC1J,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,YAAY,MAAA,EAAmE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACnF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA8B,wDAAA,EAA0D,EAAE,MAAA,EAAQ,MAAA,EAAQ,kBAAkB,CAAA;AAAA,IACjJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,kBAAkB,MAAA,EAA+E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACrG,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAoC,+DAAA,EAAiE,EAAE,MAAA,EAAQ,MAAA,EAAQ,wBAAwB,CAAA;AAAA,IACpK,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,cAAc,MAAA,EAAuE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACzF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAgC,0DAAA,EAA4D,EAAE,MAAA,EAAQ,MAAA,EAAQ,oBAAoB,CAAA;AAAA,IACvJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,aAAa,MAAA,EAAqE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA+B,yDAAA,EAA2D,EAAE,MAAA,EAAQ,MAAA,EAAQ,mBAAmB,CAAA;AAAA,IACpJ,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,sBAAsB,MAAA,EAAuF;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACjH,MAAA,MAAM,KAAK,MAAA,CAAO,wBAAA,CAAyB,iCAAiC,MAAA,CAAO,QAAA,EAAU,OAAO,UAAU,CAAA;AAC9G,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAwC,mEAAA,EAAqE,EAAE,MAAA,EAAQ,MAAA,EAAQ,4BAA4B,CAAA;AAAA,IAChL,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,4BAA4B,MAAA,EAAmG;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACnI,MAAA,MAAM,KAAK,MAAA,CAAO,wBAAA,CAAyB,uCAAuC,MAAA,CAAO,QAAA,EAAU,OAAO,UAAU,CAAA;AACpH,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA8C,yEAAA,EAA2E,EAAE,MAAA,EAAQ,MAAA,EAAQ,kCAAkC,CAAA;AAAA,IAClM,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,oBAAoB,MAAA,EAAmF;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC3G,MAAA,MAAM,KAAK,MAAA,CAAO,wBAAA,CAAyB,+BAA+B,MAAA,CAAO,QAAA,EAAU,OAAO,UAAU,CAAA;AAC5G,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAsC,iEAAA,EAAmE,EAAE,MAAA,EAAQ,MAAA,EAAQ,0BAA0B,CAAA;AAAA,IAC1K,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,kBAAkB,MAAA,EAA+E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACrG,MAAA,MAAM,KAAK,MAAA,CAAO,wBAAA,CAAyB,6BAA6B,MAAA,CAAO,QAAA,EAAU,OAAO,UAAU,CAAA;AAC1G,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAoC,+DAAA,EAAiE,EAAE,MAAA,EAAQ,MAAA,EAAQ,wBAAwB,CAAA;AAAA,IACpK,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,gBAAgB,MAAA,EAA2E;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC/F,MAAA,MAAM,KAAK,MAAA,CAAO,wBAAA,CAAyB,2BAA2B,MAAA,CAAO,QAAA,EAAU,OAAO,UAAU,CAAA;AACxG,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAkC,6DAAA,EAA+D,EAAE,MAAA,EAAQ,MAAA,EAAQ,sBAAsB,CAAA;AAAA,IAC9J,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,qBAAqB,MAAA,EAAqF;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC9G,MAAA,MAAM,KAAK,MAAA,CAAO,wBAAA,CAAyB,gCAAgC,MAAA,CAAO,QAAA,EAAU,OAAO,UAAU,CAAA;AAC7G,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAuC,kEAAA,EAAoE,EAAE,MAAA,EAAQ,MAAA,EAAQ,2BAA2B,CAAA;AAAA,IAC7K,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,aAAa,MAAA,EAAqE;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACtF,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA+B,yDAAA,EAA2D,EAAE,MAAA,EAAQ,MAAA,EAAQ,mBAAmB,CAAA;AAAA,IACpJ,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACvIA,IAAM,UAAYC,EAAA,CAAA,MAAA,CAAO;AAAA,EACvB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,EACd,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,QAAUA,EAAA,CAAA,MAAA;AAAO,GAClB,CAAA;AAAA,EACD,OAASA,EAAA,CAAA,MAAA,CAAO;AAAA,IACd,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjB,OAASA,EAAA,CAAA,OAAA;AAAQ,GAClB,CAAA;AAAA,EACD,MAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACb,WAAA,EAAeA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,IAChC,cAAA,EAAkBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS;AAAA,GACpC,CAAA;AAAA,EACD,gBAAA,EAAoBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,EACrC,eAAA,EAAmBA,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS,CAAA;AAAA,EACpC,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,MAAA,EAAUA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IACvB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,QAAUA,EAAA,CAAA,MAAA,CAAO;AAAA,MACf,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,MAClB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,MACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,MACnB,YAAcA,EAAA,CAAA,MAAA;AAAO,KACtB,CAAA;AAAA,IACD,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,IACjB,OAASA,EAAA,CAAA,OAAA;AAAQ,GAClB,CAAC;AACJ,CAAC;AACD,IAAM,cAAA,GAAmBA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EACtC,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACjB,OAASA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACjB,aAAeA,EAAA,CAAA,OAAA;AACjB,CAAC,CAAC;AASF,IAAM,sBAAwBA,EAAA,CAAA,MAAA,CAAO;AAAA,EACnC,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACjB,eAAA,EAAmBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,OAAA,EAAS;AAAA;AACzC,CAAC;AAED,IAAM,0BAAA,GAA+BA,EAAA,CAAA,MAAA,CAAO,EAC3C;;;ACjFM,IAAM,cAAN,MAAkB;AAAA,EACvB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,IAAI,MAAA,EAAiD;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACzD,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAAqB,8CAAA,EAAgD,EAAE,MAAA,EAAQ,MAAA,EAAQ,SAAS,CAAA;AAAA,IACrH,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,UAAA,GAA8C;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAClD,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAA4B,uDAAuD,EAAE,MAAA,EAAQ,gBAAgB,CAAA;AAAA,IAClI,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACrBA,IAAM,6BAAA,GAAkCC,EAAA,CAAA,KAAA,CAAQA,EAAA,CAAA,OAAA,EAAS;AAQzD,IAAM,4CAA8CA,EAAA,CAAA,MAAA,CAAO;AAAA,EACzD,gBAAkBA,EAAA,CAAA,MAAA;AAAO;AAC3B,CAAC;;;ACVM,IAAM,oBAAN,MAAwB;AAAA,EAC7B,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,oBAAoB,MAAA,EAA6F;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACrH,MAAA,OAAO,IAAA,CAAK,OAAO,GAAA,CAA2C,uEAAA,EAAyE,EAAE,MAAA,EAAQ,MAAA,EAAQ,+BAA+B,CAAA;AAAA,IAC1L,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;ACZ+BC,EAAA,CAAA,MAAA,CAAO;AAAA,EACpC,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA;AAAA,EACtB,OAASA,EAAA,CAAA,MAAA;AACX,CAAC;AAID,IAAM,WAAA,GAAgBA,EAAA,CAAA,MAAA,CAASA,EAAA,CAAA,MAAA,EAAO,EAAKA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChD,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC9C,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,mBAAA,EAAuBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACtD,WAAA,EAAeA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC9C,MAAA,EAAUA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACzC,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAChD,aAAA,EAAiBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAChD,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,IAAA,EAAQA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACvC,KAAA,EAASA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACxC,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC/C,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC7C,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC1C,QAAA,EAAYA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAC,CAAA;AAAA,EAC3C,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC7C,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,IACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,IACnB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,IACjB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,IAClB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,IACtB,OAASA,EAAA,CAAA,MAAA;AAAO,GACjB,CAAC,CAAC;AACL,CAAC,CAAC;AACF,IAAM,QAAA,GAAaA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,EAChC,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,wBAA0BA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClC,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC7B,oBAAsBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC9B,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,UAAA,EAAcA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACjC,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,QAAUA,EAAA,CAAA,MAAA,EAAO;AAAA,EACjB,sBAAwBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAChC,UAAYA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACpB,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,YAAcA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACtB,mBAAqBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC7B,cAAgBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACxB,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClB,QAAUA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAClB,iBAAmBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAC3B,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,MAAQA,EAAA,CAAA,MAAA,EAAO;AAAA,EACf,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,iBAAmBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC1B,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,iBAAA,EAAqBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACxC,OAASA,EAAA,CAAA,MAAA,EAAO;AAAA,EAChB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,aAAeA,EAAA,CAAA,MAAA,EAAO;AAAA,EACtB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,eAAiBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACzB,SAAWA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACnB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EAC9B,KAAOA,EAAA,CAAA,MAAA,EAAO;AAAA,EACd,YAAcA,EAAA,CAAA,MAAA,EAAO;AAAA,EACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,aAAeA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACvB,sBAAwBA,EAAA,CAAA,OAAA,EAAQ;AAAA,EAChC,WAAaA,EAAA,CAAA,OAAA,EAAQ;AAAA,EACrB,UAAYA,EAAA,CAAA,MAAA,EAAO;AAAA,EACnB,mBAAqBA,EAAA,CAAA,MAAA,EAAO;AAAA,EAC5B,cAAgBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACvB,SAAWA,EAAA,CAAA,MAAA,EAAO;AAAA,EAClB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,WAAaA,EAAA,CAAA,MAAA,EAAO;AAAA,EACpB,eAAiBA,EAAA,CAAA,MAAA,EAAO;AAAA,EACxB,UAAA,EAAcA,SAAQA,EAAA,CAAA,MAAA,CAAO;AAAA,IAC3B,WAAaA,EAAA,CAAA,MAAA;AAAO,GACrB,CAAC,CAAA;AAAA,EACF,YAAA,EAAgBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACnC,cAAA,EAAkBA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ,CAAA;AAAA,EACrC,OAAA,EAAWA,EAAA,CAAA,QAAA,CAAWA,EAAA,CAAA,MAAA,EAAQ;AAChC,CAAC,CAAC;AASF,IAAM,uBAAA,GAA4BA,EAAA,CAAA,MAAA,CAAO,EACxC;AAED,IAAM,oBAAA,GAAyBA,EAAA,CAAA,MAAA,CAAO,EACrC;;;AC/GM,IAAM,eAAN,MAAmB;AAAA,EACxB,YAAoB,MAAA,EAAuB;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAAA,EAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOtC,MAAA,GAAuC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC3C,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAyB,oDAAoD,EAAE,MAAA,EAAQ,aAAa,CAAA;AAAA,IACzH,CAAA,CAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOM,GAAA,GAAiC;AAAA,IAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACrC,MAAA,OAAO,KAAK,MAAA,CAAO,GAAA,CAAsB,iDAAiD,EAAE,MAAA,EAAQ,UAAU,CAAA;AAAA,IAChH,CAAA,CAAA;AAAA,EAAA;AAEF,CAAA;;;ACiCO,IAAM,oBAAN,MAAwB;AAAA,EAmB7B,YAAY,IAAA,EAA4B;AAlBxC,IAAA,aAAA,CAAA,IAAA,EAAQ,QAAA,CAAA;AAER,IAAA,aAAA,CAAA,IAAA,EAAO,KAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,UAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,WAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,uBAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,QAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,QAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,QAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,QAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,SAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,QAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,QAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,OAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,MAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,YAAA,CAAA;AACP,IAAA,aAAA,CAAA,IAAA,EAAO,OAAA,CAAA;AAGL,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,aAAA,CAAc,IAAI,CAAA;AAEpC,IAAA,IAAA,CAAK,GAAA,GAAM,IAAI,UAAA,CAAW,IAAA,CAAK,MAAM,CAAA;AACrC,IAAA,IAAA,CAAK,QAAA,GAAW,IAAI,eAAA,CAAgB,IAAA,CAAK,MAAM,CAAA;AAC/C,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,gBAAA,CAAiB,IAAA,CAAK,MAAM,CAAA;AACjD,IAAA,IAAA,CAAK,qBAAA,GAAwB,IAAI,4BAAA,CAA6B,IAAA,CAAK,MAAM,CAAA;AACzE,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC3C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC3C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC3C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC3C,IAAA,IAAA,CAAK,OAAA,GAAU,IAAI,cAAA,CAAe,IAAA,CAAK,MAAM,CAAA;AAC7C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC3C,IAAA,IAAA,CAAK,MAAA,GAAS,IAAI,aAAA,CAAc,IAAA,CAAK,MAAM,CAAA;AAC3C,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,YAAA,CAAa,IAAA,CAAK,MAAM,CAAA;AACzC,IAAA,IAAA,CAAK,IAAA,GAAO,IAAI,WAAA,CAAY,IAAA,CAAK,MAAM,CAAA;AACvC,IAAA,IAAA,CAAK,UAAA,GAAa,IAAI,iBAAA,CAAkB,IAAA,CAAK,MAAM,CAAA;AACnD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,YAAA,CAAa,IAAA,CAAK,MAAM,CAAA;AAAA,EAC3C;AACF","file":"index.mjs","sourcesContent":["import * as z from 'zod/mini';\n\n/**\n * Fetch-like function type for HTTP requests.\n * Allows injection of custom fetch implementations for testing.\n */\nexport type FetchLike = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;\n\n/**\n * Zod schema for validating OAuth token responses.\n * Provides runtime validation of iRacing's token endpoint responses.\n */\nexport const TokenResponseSchema = z.object({\n access_token: z.string(),\n token_type: z.literal('Bearer'),\n expires_in: z.number(),\n refresh_token: z.optional(z.string()),\n refresh_token_expires_in: z.optional(z.number()),\n scope: z.optional(z.string()),\n});\n\n/**\n * OAuth token response from iRacing's token endpoint.\n */\nexport type TokenResponse = z.infer<typeof TokenResponseSchema>;\n\n/**\n * Internal token state with computed expiry.\n */\nexport interface TokenState {\n accessToken: string;\n refreshToken: string | null;\n expiresAt: number; // Unix timestamp in seconds\n tokenType: 'Bearer';\n}\n\n/**\n * Callback invoked when tokens are obtained or refreshed.\n * Use this to persist tokens for reuse across sessions.\n */\nexport type OnTokenRefresh = (tokens: TokenResponse) => void | Promise<void>;\n\n/**\n * PKCE code challenge and verifier pair.\n */\nexport interface PKCEPair {\n verifier: string;\n challenge: string;\n}\n\n/**\n * Password Limited OAuth flow configuration.\n *\n * Use for scripts, CLI tools, and backend services running on behalf of\n * the registered client developer only. This is the most common flow for\n * automated data access.\n *\n * @example\n * ```typescript\n * const client = new IRacingDataClient({\n * auth: {\n * type: 'password-limited',\n * clientId: process.env.IRACING_CLIENT_ID,\n * clientSecret: process.env.IRACING_CLIENT_SECRET,\n * username: process.env.IRACING_USERNAME,\n * password: process.env.IRACING_PASSWORD,\n * },\n * });\n * ```\n */\nexport interface PasswordLimitedAuth {\n type: 'password-limited';\n\n /** OAuth client ID issued by iRacing */\n clientId: string;\n\n /** OAuth client secret issued by iRacing */\n clientSecret: string;\n\n /** iRacing account email (must match registered client owner) */\n username: string;\n\n /** iRacing account password */\n password: string;\n\n /**\n * Pre-obtained tokens to skip initial authentication.\n * Useful for reusing tokens across client instances.\n */\n tokens?: {\n accessToken: string;\n refreshToken?: string;\n expiresAt?: number;\n };\n\n /**\n * Called when tokens are obtained or refreshed.\n * Use to persist tokens for reuse across sessions.\n */\n onTokenRefresh?: OnTokenRefresh;\n}\n\n/**\n * Authorization Code OAuth flow configuration.\n *\n * Use for web/desktop applications that need to access iRacing data\n * on behalf of other users. Requires completing the OAuth flow externally\n * before creating the client.\n *\n * @example\n * ```typescript\n * // After completing OAuth flow and obtaining tokens:\n * const client = new IRacingDataClient({\n * auth: {\n * type: 'authorization-code',\n * clientId: process.env.IRACING_CLIENT_ID,\n * clientSecret: process.env.IRACING_CLIENT_SECRET,\n * tokens: {\n * accessToken: savedTokens.access_token,\n * refreshToken: savedTokens.refresh_token,\n * expiresAt: savedTokens.expires_at,\n * },\n * },\n * });\n * ```\n */\nexport interface AuthorizationCodeAuth {\n type: 'authorization-code';\n\n /** OAuth client ID issued by iRacing */\n clientId: string;\n\n /** OAuth client secret issued by iRacing */\n clientSecret: string;\n\n /**\n * Tokens obtained from completing the Authorization Code flow.\n * Required since this flow requires user interaction.\n */\n tokens: {\n accessToken: string;\n refreshToken?: string;\n expiresAt?: number;\n };\n\n /**\n * Called when tokens are refreshed.\n * Use to persist new tokens for the user's session.\n */\n onTokenRefresh?: OnTokenRefresh;\n}\n\n/**\n * Discriminated union of supported authentication strategies.\n */\nexport type AuthConfig = PasswordLimitedAuth | AuthorizationCodeAuth;\n\n/**\n * Type guard for Password Limited authentication.\n */\nexport function isPasswordLimitedAuth(auth: AuthConfig): auth is PasswordLimitedAuth {\n return auth.type === 'password-limited';\n}\n\n/**\n * Type guard for Authorization Code authentication.\n */\nexport function isAuthorizationCodeAuth(auth: AuthConfig): auth is AuthorizationCodeAuth {\n return auth.type === 'authorization-code';\n}\n","/**\n * OAuth error codes returned by iRacing's OAuth server.\n */\nexport type OAuthErrorCode =\n | 'invalid_request'\n | 'invalid_client'\n | 'invalid_grant'\n | 'unauthorized_client'\n | 'unsupported_grant_type'\n | 'invalid_scope'\n | 'rate_limited'\n | 'server_error';\n\n/**\n * Error thrown for OAuth-related failures.\n */\nexport class OAuthError extends Error {\n public override readonly name: string = 'OAuthError';\n\n constructor(\n public readonly code: OAuthErrorCode | string,\n public readonly description?: string,\n public readonly uri?: string\n ) {\n super(description || code);\n }\n\n get isInvalidGrant(): boolean {\n return this.code === 'invalid_grant';\n }\n\n get isInvalidClient(): boolean {\n return this.code === 'invalid_client';\n }\n\n get isRateLimited(): boolean {\n return this.code === 'rate_limited';\n }\n\n get isUnauthorizedClient(): boolean {\n return this.code === 'unauthorized_client';\n }\n}\n\n/**\n * Error thrown when token refresh fails and no recovery is possible.\n */\nexport class TokenRefreshError extends OAuthError {\n public override readonly name: string = 'TokenRefreshError';\n\n constructor(\n code: OAuthErrorCode | string,\n description?: string,\n public readonly cause?: Error\n ) {\n super(code, description);\n }\n}\n","export const OAUTH_ENDPOINTS = {\n authorize: 'https://oauth.iracing.com/oauth2/authorize',\n token: 'https://oauth.iracing.com/oauth2/token',\n} as const;\n\n/** Required scope for iRacing Data API access */\nexport const IRACING_AUTH_SCOPE = 'iracing.auth';\n\nexport const DATA_API_BASE_URL = 'https://members-ng.iracing.com';\n\n/** Buffer time (seconds) before token expiry to trigger refresh */\nexport const TOKEN_REFRESH_BUFFER_SECONDS = 30;\n\n/** Default access token lifetime (10 minutes) */\nexport const DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS = 600;\n\n/** Minimum interval between token requests to avoid rate limiting */\nexport const MIN_TOKEN_REQUEST_INTERVAL_MS = 1000;\n","import type { PKCEPair } from './types';\n\n/**\n * Masks a secret using iRacing's masking algorithm.\n *\n * Both password and client_secret must be masked before transmission.\n * - For password: identifier is the username (email)\n * - For client_secret: identifier is the client_id\n *\n * Algorithm: Base64(SHA256(secret + normalize(identifier)))\n * where normalize = trim + lowercase\n *\n * @param secret - The secret to mask (password or client_secret)\n * @param identifier - The identifier to use (username or client_id)\n * @returns Base64-encoded SHA-256 hash\n *\n * @see https://oauth.iracing.com/oauth2/book/token_endpoint.html\n */\nexport async function maskSecret(secret: string, identifier: string): Promise<string> {\n const normalizedId = identifier.trim().toLowerCase();\n const combined = secret + normalizedId;\n\n const encoder = new TextEncoder();\n const data = encoder.encode(combined);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n\n // Standard Base64 encoding (NOT URL-safe variant)\n return btoa(String.fromCharCode(...hashArray));\n}\n\n/**\n * Masks the password with the username.\n * Convenience wrapper around maskSecret.\n */\nexport async function maskPassword(username: string, password: string): Promise<string> {\n return maskSecret(password, username);\n}\n\n/**\n * Masks the client secret with the client ID.\n * Convenience wrapper around maskSecret.\n */\nexport async function maskClientSecret(clientId: string, clientSecret: string): Promise<string> {\n return maskSecret(clientSecret, clientId);\n}\n\n/**\n * Generates a cryptographically secure random string for PKCE verifier.\n * Uses unreserved URI characters per RFC 7636.\n *\n * @param length - Length of the string (43-128 per RFC 7636, default 64)\n */\nexport function generateRandomString(length: number = 64): string {\n const unreservedChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~';\n const randomValues = new Uint8Array(length);\n crypto.getRandomValues(randomValues);\n return Array.from(randomValues, (byte) => unreservedChars[byte % unreservedChars.length]).join(\n ''\n );\n}\n\n/**\n * Generates a PKCE code verifier and challenge pair.\n * The challenge is the Base64URL-encoded SHA-256 hash of the verifier.\n */\nexport async function generatePKCE(): Promise<PKCEPair> {\n const verifier = generateRandomString(64);\n\n const encoder = new TextEncoder();\n const data = encoder.encode(verifier);\n const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n\n // Base64URL encoding (no padding, URL-safe characters)\n const challenge = btoa(String.fromCharCode(...hashArray))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n\n return { verifier, challenge };\n}\n","import { OAUTH_ENDPOINTS, IRACING_AUTH_SCOPE } from '../constants';\nimport { maskPassword, maskClientSecret } from '../crypto';\nimport { OAuthError } from '../errors';\nimport type { TokenResponse, FetchLike } from '../types';\nimport { TokenResponseSchema } from '../types';\n\nexport interface PasswordLimitedTokenRequest {\n clientId: string;\n clientSecret: string;\n username: string;\n password: string;\n fetchFn: FetchLike;\n}\n\n/**\n * Requests an access token using the Password Limited grant.\n *\n * Both the password and client_secret are masked before transmission:\n * - password: masked with username as identifier\n * - client_secret: masked with client_id as identifier\n */\nexport async function requestPasswordLimitedToken(\n options: PasswordLimitedTokenRequest\n): Promise<TokenResponse> {\n const { clientId, clientSecret, username, password, fetchFn } = options;\n\n // Both password and client_secret must be masked\n const [maskedPassword, maskedClientSecret] = await Promise.all([\n maskPassword(username, password),\n maskClientSecret(clientId, clientSecret),\n ]);\n\n const body = new URLSearchParams({\n grant_type: 'password_limited',\n client_id: clientId,\n client_secret: maskedClientSecret,\n username: username,\n password: maskedPassword,\n scope: IRACING_AUTH_SCOPE,\n });\n\n const response = await fetchFn(OAUTH_ENDPOINTS.token, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: body.toString(),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new OAuthError(data.error, data.error_description, data.error_uri);\n }\n\n // Validate response structure\n return TokenResponseSchema.parse(data);\n}\n","import { OAUTH_ENDPOINTS } from '../constants';\nimport { generatePKCE, maskClientSecret } from '../crypto';\nimport { OAuthError } from '../errors';\nimport type { TokenResponse, PKCEPair, FetchLike } from '../types';\nimport { TokenResponseSchema } from '../types';\n\nexport interface AuthorizationUrlOptions {\n clientId: string;\n redirectUri: string;\n scope?: string;\n state?: string;\n usePKCE?: boolean;\n}\n\nexport interface AuthorizationUrlResult {\n url: string;\n state: string;\n pkce?: PKCEPair;\n}\n\n/**\n * Builds the authorization URL for the Authorization Code flow.\n */\nexport async function buildAuthorizationUrl(\n options: AuthorizationUrlOptions\n): Promise<AuthorizationUrlResult> {\n const { clientId, redirectUri, scope, usePKCE = true } = options;\n const state = options.state ?? crypto.randomUUID();\n\n const params = new URLSearchParams({\n response_type: 'code',\n client_id: clientId,\n redirect_uri: redirectUri,\n state: state,\n });\n\n if (scope) {\n params.set('scope', scope);\n }\n\n let pkce: PKCEPair | undefined;\n if (usePKCE) {\n pkce = await generatePKCE();\n params.set('code_challenge', pkce.challenge);\n params.set('code_challenge_method', 'S256');\n }\n\n return {\n url: `${OAUTH_ENDPOINTS.authorize}?${params.toString()}`,\n state,\n pkce,\n };\n}\n\nexport interface CodeExchangeOptions {\n clientId: string;\n clientSecret: string;\n code: string;\n redirectUri: string;\n codeVerifier?: string;\n fetchFn?: FetchLike;\n}\n\n/**\n * Exchanges an authorization code for tokens.\n * The client_secret is masked with the client_id before transmission.\n */\nexport async function exchangeAuthorizationCode(\n options: CodeExchangeOptions\n): Promise<TokenResponse> {\n const { clientId, clientSecret, code, redirectUri, codeVerifier } = options;\n const fetchFn = options.fetchFn ?? globalThis.fetch;\n\n const maskedSecret = await maskClientSecret(clientId, clientSecret);\n\n const body = new URLSearchParams({\n grant_type: 'authorization_code',\n client_id: clientId,\n client_secret: maskedSecret,\n code: code,\n redirect_uri: redirectUri,\n });\n\n if (codeVerifier) {\n body.set('code_verifier', codeVerifier);\n }\n\n const response = await fetchFn(OAUTH_ENDPOINTS.token, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: body.toString(),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new OAuthError(data.error, data.error_description, data.error_uri);\n }\n\n // Validate response structure\n return TokenResponseSchema.parse(data);\n}\n","import { OAUTH_ENDPOINTS, IRACING_AUTH_SCOPE } from '../constants';\nimport { maskClientSecret } from '../crypto';\nimport { OAuthError } from '../errors';\nimport type { TokenResponse, FetchLike } from '../types';\nimport { TokenResponseSchema } from '../types';\n\nexport interface RefreshTokenRequest {\n clientId: string;\n clientSecret: string;\n refreshToken: string;\n fetchFn: FetchLike;\n}\n\n/**\n * Exchanges a refresh token for new tokens.\n * Note: Refresh tokens are single-use.\n * The client_secret is masked with the client_id before transmission.\n */\nexport async function refreshTokens(options: RefreshTokenRequest): Promise<TokenResponse> {\n const { clientId, clientSecret, refreshToken, fetchFn } = options;\n\n const maskedSecret = await maskClientSecret(clientId, clientSecret);\n\n const body = new URLSearchParams({\n grant_type: 'refresh_token',\n client_id: clientId,\n client_secret: maskedSecret,\n refresh_token: refreshToken,\n scope: IRACING_AUTH_SCOPE,\n });\n\n const response = await fetchFn(OAUTH_ENDPOINTS.token, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: body.toString(),\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw new OAuthError(data.error, data.error_description, data.error_uri);\n }\n\n // Validate response structure\n return TokenResponseSchema.parse(data);\n}\n","import {\n TOKEN_REFRESH_BUFFER_SECONDS,\n DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS,\n MIN_TOKEN_REQUEST_INTERVAL_MS,\n} from './constants';\nimport { OAuthError, TokenRefreshError } from './errors';\nimport { refreshTokens } from './flows/refresh';\nimport type { TokenState, TokenResponse, OnTokenRefresh, FetchLike } from './types';\n\nexport interface TokenManagerOptions {\n clientId: string;\n clientSecret: string;\n fetchFn: FetchLike;\n onTokenRefresh?: OnTokenRefresh;\n}\n\n/**\n * Manages OAuth token lifecycle including storage, validation, and refresh.\n *\n * Features:\n * - Automatic token refresh before expiry\n * - Concurrent refresh request deduplication\n * - Rate limiting protection\n * - Token persistence callbacks\n */\nexport class TokenManager {\n private tokenState: TokenState | null = null;\n private refreshPromise: Promise<TokenState> | null = null;\n private lastTokenRequest: number = 0;\n\n private readonly clientId: string;\n private readonly clientSecret: string;\n private readonly fetchFn: FetchLike;\n private readonly onTokenRefresh?: OnTokenRefresh;\n\n constructor(options: TokenManagerOptions) {\n this.clientId = options.clientId;\n this.clientSecret = options.clientSecret;\n this.fetchFn = options.fetchFn;\n this.onTokenRefresh = options.onTokenRefresh;\n }\n\n /** Sets token state from a token response */\n setTokens(response: TokenResponse): void {\n const now = Math.floor(Date.now() / 1000);\n this.tokenState = {\n accessToken: response.access_token,\n refreshToken: response.refresh_token ?? null,\n expiresAt: now + (response.expires_in || DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS),\n tokenType: response.token_type,\n };\n }\n\n /** Sets token state from pre-obtained tokens */\n setTokenState(state: TokenState): void {\n this.tokenState = state;\n }\n\n /** Returns true if we have tokens (valid or expired) */\n hasTokens(): boolean {\n return this.tokenState !== null;\n }\n\n /** Returns true if the current access token is valid and not expiring soon */\n isTokenValid(): boolean {\n if (!this.tokenState) return false;\n const now = Math.floor(Date.now() / 1000);\n return this.tokenState.expiresAt > now + TOKEN_REFRESH_BUFFER_SECONDS;\n }\n\n /** Returns true if we can refresh tokens */\n canRefresh(): boolean {\n return this.tokenState?.refreshToken !== null;\n }\n\n /**\n * Gets a valid access token, refreshing if necessary.\n * Handles concurrent requests and rate limiting.\n */\n async getAccessToken(): Promise<string> {\n if (this.isTokenValid()) {\n return this.tokenState!.accessToken;\n }\n\n if (!this.tokenState) {\n throw new OAuthError('invalid_grant', 'No tokens available. Please authenticate first.');\n }\n\n if (!this.canRefresh()) {\n throw new TokenRefreshError(\n 'invalid_grant',\n 'Access token expired and no refresh token available.'\n );\n }\n\n // Deduplicate concurrent refresh requests\n if (!this.refreshPromise) {\n this.refreshPromise = this.executeRefresh();\n }\n\n try {\n const newState = await this.refreshPromise;\n return newState.accessToken;\n } finally {\n this.refreshPromise = null;\n }\n }\n\n /** Clears all stored tokens */\n clearTokens(): void {\n this.tokenState = null;\n }\n\n private async executeRefresh(): Promise<TokenState> {\n // Rate limiting\n const now = Date.now();\n const timeSinceLastRequest = now - this.lastTokenRequest;\n if (timeSinceLastRequest < MIN_TOKEN_REQUEST_INTERVAL_MS) {\n await this.sleep(MIN_TOKEN_REQUEST_INTERVAL_MS - timeSinceLastRequest);\n }\n this.lastTokenRequest = Date.now();\n\n try {\n const response = await refreshTokens({\n clientId: this.clientId,\n clientSecret: this.clientSecret,\n refreshToken: this.tokenState!.refreshToken!,\n fetchFn: this.fetchFn,\n });\n\n this.setTokens(response);\n\n if (this.onTokenRefresh) {\n await Promise.resolve(this.onTokenRefresh(response));\n }\n\n return this.tokenState!;\n } catch (error) {\n if (error instanceof OAuthError) {\n throw new TokenRefreshError(error.code, error.description, error);\n }\n throw error;\n }\n }\n\n private sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n}\n","import * as z from 'zod/mini';\nimport { HttpClient, type HttpClientStores, type HttpErrorContext } from '@http-client-toolkit/core';\nimport {\n type AuthConfig,\n type FetchLike,\n isPasswordLimitedAuth,\n isAuthorizationCodeAuth,\n TokenManager,\n requestPasswordLimitedToken,\n OAuthError,\n DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS,\n DATA_API_BASE_URL,\n} from './auth';\n\n/**\n * Configuration options for the iRacing Data Client.\n */\nexport interface IRacingClientOptions {\n /**\n * Authentication configuration.\n * Choose between Password Limited (for scripts) or Authorization Code (for web apps).\n */\n auth: AuthConfig;\n\n /**\n * Custom fetch implementation.\n * Useful for testing or environments without global fetch.\n * @default globalThis.fetch\n */\n fetchFn?: FetchLike;\n\n /**\n * Enable runtime validation of request parameters against Zod schemas.\n * @default true\n */\n validateParams?: boolean;\n\n /**\n * Enable semantic validation for known endpoint parameter combinations.\n * @default true\n */\n validateSemanticParams?: boolean;\n\n /**\n * Optional stores for caching, deduplication, and rate limiting.\n * When omitted, HttpClient operates without stores (same as current behaviour).\n */\n stores?: HttpClientStores;\n}\n\n/**\n * Options for constructing an IRacingError.\n */\nexport interface IRacingErrorOptions {\n status?: number;\n statusText?: string;\n url?: string;\n responseData?: unknown;\n headers?: Headers;\n}\n\n/**\n * Error thrown for iRacing API-level errors.\n */\nexport class IRacingError extends Error {\n public readonly status?: number;\n public readonly statusText?: string;\n public readonly url?: string;\n public readonly responseData?: unknown;\n public readonly headers?: Headers;\n\n constructor(message: string, options: IRacingErrorOptions = {}) {\n super(message);\n this.name = 'IRacingError';\n this.status = options.status;\n this.statusText = options.statusText;\n this.url = options.url;\n this.responseData = options.responseData;\n this.headers = options.headers;\n }\n\n get isMaintenanceMode(): boolean {\n return (\n this.status === 503 &&\n this.responseData != null &&\n typeof this.responseData === 'object' &&\n (this.responseData as Record<string, unknown>).error === 'Site Maintenance'\n );\n }\n\n get isServiceUnavailable(): boolean {\n return this.status === 503 && !this.isMaintenanceMode;\n }\n\n get isRateLimited(): boolean {\n return this.status === 429;\n }\n\n get isUnauthorized(): boolean {\n return this.status === 401;\n }\n}\n\n/**\n * iRacing Data API Client with OAuth2 authentication.\n */\nexport class IRacingClient {\n private readonly userFetchFn: FetchLike;\n private readonly authConfig: AuthConfig;\n private readonly tokenManager: TokenManager;\n private readonly validateParams: boolean;\n private readonly validateSemanticParams: boolean;\n private readonly httpClient: HttpClient;\n\n private validSeasonCarClassPairs: Set<string> | null = null;\n private validTeamSeasonCarClassPairs: Set<string> | null = null;\n\n private authenticationPromise: Promise<void> | null = null;\n\n constructor(options: IRacingClientOptions) {\n this.userFetchFn = options.fetchFn ?? globalThis.fetch.bind(globalThis);\n if (!this.userFetchFn) {\n throw new Error('No fetch available. Pass fetchFn in IRacingClientOptions.');\n }\n\n this.authConfig = options.auth;\n this.validateParams = options.validateParams ?? true;\n this.validateSemanticParams = options.validateSemanticParams ?? true;\n\n // Initialize token manager\n this.tokenManager = new TokenManager({\n clientId: options.auth.clientId,\n clientSecret: options.auth.clientSecret,\n fetchFn: this.userFetchFn,\n onTokenRefresh: options.auth.onTokenRefresh,\n });\n\n // Initialize with pre-obtained tokens if provided\n const tokens = options.auth.tokens;\n\n if (tokens) {\n this.tokenManager.setTokenState({\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken ?? null,\n expiresAt:\n tokens.expiresAt ?? Math.floor(Date.now() / 1000) + DEFAULT_ACCESS_TOKEN_LIFETIME_SECONDS,\n tokenType: 'Bearer',\n });\n }\n\n // Create HttpClient with iRacing-specific hooks\n this.httpClient = new HttpClient(\n options.stores,\n {\n fetchFn: this.createFetchFn(),\n requestInterceptor: this.createRequestInterceptor(),\n responseTransformer: (data) => this.mapResponseFromApi(data),\n errorHandler: (context) => this.classifyHttpError(context),\n },\n );\n }\n\n /**\n * Normalizes a fetch-like response into a proper Response object.\n * This ensures compatibility with mocked fetch implementations that return\n * plain objects instead of real Response instances.\n */\n private async normalizeResponse(response: Response): Promise<Response> {\n if (response instanceof Response) {\n return response;\n }\n\n // Handle mock/non-standard response objects\n const mock = response as unknown as {\n ok?: boolean;\n status?: number;\n statusText?: string;\n headers?: { get?: (name: string) => string | null } | Headers;\n json?: () => Promise<unknown>;\n text?: () => Promise<string>;\n };\n\n let body: string;\n if (mock.json) {\n try {\n const data = await mock.json();\n body = JSON.stringify(data);\n } catch {\n body = mock.text ? await mock.text() : '';\n }\n } else if (mock.text) {\n body = await mock.text();\n } else {\n body = '';\n }\n\n const headers = new Headers();\n if (mock.headers) {\n if (mock.headers instanceof Headers) {\n mock.headers.forEach((value, key) => headers.set(key, value));\n } else if (typeof mock.headers.get === 'function') {\n // Try common header names\n for (const name of ['content-type', 'cache-control', 'authorization']) {\n const val = mock.headers.get(name);\n if (val) headers.set(name, val);\n }\n }\n }\n\n return new Response(body, {\n status: mock.status ?? (mock.ok ? 200 : 500),\n statusText: mock.statusText ?? (mock.ok ? 'OK' : 'Internal Server Error'),\n headers,\n });\n }\n\n /**\n * Creates the fetchFn that handles S3 link resolution and CSV responses.\n */\n private createFetchFn(): (url: string, init?: RequestInit) => Promise<Response> {\n return async (url: string, init?: RequestInit): Promise<Response> => {\n const rawResponse = await this.userFetchFn(url, init);\n const response = await this.normalizeResponse(rawResponse);\n\n if (!response.ok) {\n return response; // toolkit handles error detection + body reading\n }\n\n const contentType = response.headers.get('content-type') || '';\n if (!contentType.includes('application/json')) {\n return response;\n }\n\n // Clone to read body without consuming\n const cloned = response.clone();\n const data = await cloned.json();\n\n // Not an S3 link response — return original\n if (!data.link || !data.expires) {\n return response;\n }\n\n // Follow the S3 pre-signed URL\n const rawS3Response = await this.userFetchFn(data.link);\n const s3Response = await this.normalizeResponse(rawS3Response);\n\n if (!s3Response.ok) {\n throw new Error(`Failed to fetch from S3: ${s3Response.statusText}`);\n }\n\n // Calculate max-age from the S3 link's expires field\n const expiresDate = new Date(data.expires);\n const maxAge = Math.max(0, Math.floor((expiresDate.getTime() - Date.now()) / 1000));\n\n // Check if S3 returned CSV\n const s3ContentType = s3Response.headers.get('content-type') || '';\n if (s3ContentType.includes('text/csv') || s3ContentType.includes('text/plain')) {\n const csvText = await s3Response.text();\n const csvPayload = JSON.stringify({\n ContentType: 'csv',\n RawData: csvText,\n Note: 'This endpoint returns CSV data, not JSON',\n });\n\n return new Response(csvPayload, {\n status: 200,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': `max-age=${maxAge}`,\n },\n });\n }\n\n // JSON S3 response — re-wrap with cache headers\n const s3Body = await s3Response.text();\n return new Response(s3Body, {\n status: 200,\n headers: {\n 'Content-Type': 'application/json',\n 'Cache-Control': `max-age=${maxAge}`,\n },\n });\n };\n }\n\n /**\n * Creates the requestInterceptor that injects auth headers.\n */\n private createRequestInterceptor(): (url: string, init: RequestInit) => Promise<RequestInit> {\n return async (_url: string, init: RequestInit): Promise<RequestInit> => {\n await this.ensureAuthenticated();\n const authHeaders = await this.getAuthHeaders();\n\n return {\n ...init,\n headers: {\n ...Object.fromEntries(new Headers(init.headers).entries()),\n ...authHeaders,\n },\n };\n };\n }\n\n /**\n * Classifies an HTTP error response into a specific IRacingError.\n * Called by the toolkit's errorHandler — only receives HTTP errors, never network failures.\n */\n private classifyHttpError(context: HttpErrorContext): IRacingError {\n const { status, data, headers } = context.response;\n\n if (status === 503) {\n const isMaintenance =\n data != null &&\n typeof data === 'object' &&\n (data as Record<string, unknown>).error === 'Site Maintenance';\n return new IRacingError(\n isMaintenance\n ? 'iRacing is currently in maintenance mode'\n : 'Service unavailable',\n { status: 503, url: context.url, responseData: data, headers },\n );\n }\n if (status === 429) {\n return new IRacingError(\n 'Rate limit exceeded. Please wait before making more requests.',\n { status: 429, url: context.url, responseData: data, headers },\n );\n }\n if (status === 401) {\n return new IRacingError(\n 'Authentication failed. Please check your OAuth credentials and token state.',\n { status: 401, url: context.url, responseData: data, headers },\n );\n }\n\n return new IRacingError(\n context.message,\n { status, url: context.url, responseData: data, headers },\n );\n }\n\n /**\n * Ensures the client is authenticated before making API requests.\n */\n private async ensureAuthenticated(): Promise<void> {\n if (this.tokenManager.hasTokens()) {\n return;\n }\n\n if (isAuthorizationCodeAuth(this.authConfig)) {\n throw new OAuthError(\n 'invalid_grant',\n 'Authorization Code flow requires tokens. Use buildAuthorizationUrl() and ' +\n 'exchangeAuthorizationCode() to obtain tokens first.'\n );\n }\n\n if (isPasswordLimitedAuth(this.authConfig)) {\n if (!this.authenticationPromise) {\n this.authenticationPromise = this.authenticatePasswordLimited();\n }\n\n try {\n await this.authenticationPromise;\n } finally {\n this.authenticationPromise = null;\n }\n }\n }\n\n private async authenticatePasswordLimited(): Promise<void> {\n if (!isPasswordLimitedAuth(this.authConfig)) {\n throw new Error('Invalid auth config');\n }\n\n const tokens = await requestPasswordLimitedToken({\n clientId: this.authConfig.clientId,\n clientSecret: this.authConfig.clientSecret,\n username: this.authConfig.username,\n password: this.authConfig.password,\n fetchFn: this.userFetchFn,\n });\n\n this.tokenManager.setTokens(tokens);\n\n if (this.authConfig.onTokenRefresh) {\n await Promise.resolve(this.authConfig.onTokenRefresh(tokens));\n }\n }\n\n /**\n * Gets authorization headers for API requests.\n */\n private async getAuthHeaders(): Promise<Record<string, string>> {\n const accessToken = await this.tokenManager.getAccessToken();\n return { Authorization: `Bearer ${accessToken}` };\n }\n\n private buildUrl(endpoint: string, params?: Record<string, unknown>): string {\n const url = new URL(\n endpoint.startsWith('http') ? endpoint : `${DATA_API_BASE_URL}${endpoint}`\n );\n\n if (params) {\n Object.entries(params).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n if (Array.isArray(value)) {\n url.searchParams.append(key, value.join(','));\n } else if (typeof value === 'boolean') {\n url.searchParams.append(key, value ? 'true' : 'false');\n } else {\n url.searchParams.append(key, String(value));\n }\n }\n });\n }\n\n return url.toString();\n }\n\n private mapParamsToApi(params?: Record<string, unknown>): Record<string, unknown> | undefined {\n if (!params) return undefined;\n const mapped: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(params)) {\n const snakeKey = key.replace(/[A-Z]/g, (m) => '_' + m.toLowerCase());\n mapped[snakeKey] = value;\n }\n return mapped;\n }\n\n private mapResponseFromApi(data: unknown): unknown {\n if (data === null || data === undefined) return data;\n\n if (Array.isArray(data)) {\n return data.map((item) => this.mapResponseFromApi(item));\n }\n\n if (typeof data === 'object') {\n const mapped: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(data as Record<string, unknown>)) {\n const camelKey = key\n .replace(/_([a-z0-9])/g, (_, char) => char.toUpperCase())\n .replace(/-([a-z0-9])/g, (_, char) => char.toUpperCase());\n mapped[camelKey] = this.mapResponseFromApi(value);\n }\n return mapped;\n }\n\n return data;\n }\n\n private pairKey(seasonId: number, carClassId: number): string {\n return `${seasonId}|${carClassId}`;\n }\n\n private collectSeasonCarClassPairsFromData(\n data: unknown,\n allPairs: Set<string>,\n teamPairs: Set<string>,\n inheritedSeasonId?: number,\n inheritedTeamSeries?: boolean\n ): void {\n if (data === null || data === undefined) return;\n\n if (Array.isArray(data)) {\n for (const item of data) {\n this.collectSeasonCarClassPairsFromData(\n item,\n allPairs,\n teamPairs,\n inheritedSeasonId,\n inheritedTeamSeries\n );\n }\n return;\n }\n\n if (typeof data !== 'object') return;\n\n const record = data as Record<string, unknown>;\n const seasonId =\n typeof record.seasonId === 'number'\n ? record.seasonId\n : typeof record.season_id === 'number'\n ? record.season_id\n : inheritedSeasonId;\n const isTeamSeries =\n inheritedTeamSeries ||\n (typeof record.maxTeamDrivers === 'number' && record.maxTeamDrivers > 1) ||\n (typeof record.max_team_drivers === 'number' && record.max_team_drivers > 1) ||\n record.driverChanges === true ||\n record.driver_changes === true;\n\n if (seasonId !== undefined && seasonId > 0) {\n const addPair = (value: unknown) => {\n if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) return;\n const key = this.pairKey(seasonId, value);\n allPairs.add(key);\n if (isTeamSeries) {\n teamPairs.add(key);\n }\n };\n\n addPair(record.carClassId);\n addPair(record.car_class_id);\n\n const classArrays: unknown[] = [];\n if (Array.isArray(record.carClassIds)) classArrays.push(record.carClassIds);\n if (Array.isArray(record.car_class_ids)) classArrays.push(record.car_class_ids);\n if (Array.isArray(record.raceWeekCarClassIds)) classArrays.push(record.raceWeekCarClassIds);\n if (Array.isArray(record.race_week_car_class_ids)) classArrays.push(record.race_week_car_class_ids);\n\n for (const classArray of classArrays) {\n for (const value of classArray as unknown[]) {\n addPair(value);\n }\n }\n }\n\n for (const value of Object.values(record)) {\n this.collectSeasonCarClassPairsFromData(value, allPairs, teamPairs, seasonId, isTeamSeries);\n }\n }\n\n private async loadSeasonCarClassPairs(): Promise<void> {\n if (this.validSeasonCarClassPairs && this.validTeamSeasonCarClassPairs) {\n return;\n }\n\n const allPairs = new Set<string>();\n const teamPairs = new Set<string>();\n const seasons = await this.get<unknown>('https://members-ng.iracing.com/data/series/seasons');\n this.collectSeasonCarClassPairsFromData(seasons, allPairs, teamPairs);\n\n this.validSeasonCarClassPairs = allPairs;\n this.validTeamSeasonCarClassPairs = teamPairs;\n }\n\n async ensureSeasonCarClassPair(\n endpointId: string,\n seasonId: number,\n carClassId: number\n ): Promise<void> {\n if (!this.validateSemanticParams) return;\n if (!Number.isFinite(seasonId) || !Number.isFinite(carClassId)) return;\n\n await this.loadSeasonCarClassPairs();\n const key = this.pairKey(seasonId, carClassId);\n\n const preferredSet =\n endpointId === 'stats.season_team_standings' &&\n this.validTeamSeasonCarClassPairs &&\n this.validTeamSeasonCarClassPairs.size > 0\n ? this.validTeamSeasonCarClassPairs\n : this.validSeasonCarClassPairs;\n\n if (!preferredSet || preferredSet.has(key)) {\n return;\n }\n\n throw new IRacingError(\n `Parameter validation failed for ${endpointId}: seasonId=${seasonId} and carClassId=${carClassId} do not form a known valid pair.`,\n {\n status: 400,\n statusText: 'Bad Request',\n responseData: {\n error: 'InvalidParameterCombination',\n endpoint: endpointId,\n seasonId,\n carClassId,\n },\n },\n );\n }\n\n /**\n * Makes a GET request to the iRacing Data API.\n */\n async get<T = unknown>(\n url: string,\n options?: { params?: Record<string, unknown>; schema?: z.ZodMiniType<T> }\n ): Promise<T> {\n // Convert camelCase params to snake_case for the API\n const apiParams = this.mapParamsToApi(options?.params);\n const fullUrl = this.buildUrl(url, apiParams);\n\n // Delegate to HttpClient (handles auth, S3 resolution, caching, case mapping, errors)\n const data = await this.httpClient.get<T>(fullUrl);\n\n // Per-request Zod validation (not an HttpClient concern)\n if (this.validateParams && options?.schema) {\n return options.schema.parse(data);\n }\n\n return data;\n }\n\n /**\n * Returns true if the client has valid tokens.\n */\n isAuthenticated(): boolean {\n return this.tokenManager.hasTokens() && this.tokenManager.isTokenValid();\n }\n\n /**\n * Clears stored tokens, requiring re-authentication on next request.\n */\n clearTokens(): void {\n this.tokenManager.clearTokens();\n }\n}\n","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst CarAssets = z.record(z.string(), z.object({\n carId: z.optional(z.nullable(z.number())),\n carRules: z.optional(z.nullable(z.array(z.unknown()))),\n detailCopy: z.optional(z.nullable(z.string())),\n detailScreenShotImages: z.optional(z.nullable(z.string())),\n detailTechspecsCopy: z.optional(z.nullable(z.string())),\n folder: z.optional(z.nullable(z.string())),\n galleryImages: z.optional(z.nullable(z.string())),\n galleryPrefix: z.optional(z.nullable(z.string())),\n groupImage: z.optional(z.nullable(z.string())),\n groupName: z.optional(z.nullable(z.string())),\n largeImage: z.optional(z.nullable(z.string())),\n logo: z.optional(z.nullable(z.string())),\n smallImage: z.optional(z.nullable(z.string())),\n sponsorLogo: z.optional(z.nullable(z.string())),\n templatePath: z.optional(z.nullable(z.string()))\n}));\nconst CarGet = z.array(z.object({\n aiEnabled: z.boolean(),\n allowNumberColors: z.boolean(),\n allowNumberFont: z.boolean(),\n allowSponsor1: z.boolean(),\n allowSponsor2: z.boolean(),\n allowWheelColor: z.boolean(),\n awardExempt: z.boolean(),\n carConfigDefs: z.array(z.object({\n carcfg: z.number(),\n cfgSubdir: z.nullable(z.string()),\n customPaintExt: z.nullable(z.string()),\n name: z.string()\n })),\n carConfigs: z.array(z.object({\n carcfg: z.number(),\n trackId: z.optional(z.number()),\n trackType: z.optional(z.number())\n })),\n carDirpath: z.string(),\n carId: z.number(),\n carName: z.string(),\n carNameAbbreviated: z.string(),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n carWeight: z.number(),\n categories: z.array(z.string()),\n created: z.string(),\n firstSale: z.string(),\n folder: z.string(),\n forumUrl: z.optional(z.string()),\n freeWithSubscription: z.boolean(),\n hasHeadlights: z.boolean(),\n hasMultipleDryTireTypes: z.boolean(),\n hasRainCapableTireTypes: z.boolean(),\n hp: z.number(),\n isPsPurchasable: z.boolean(),\n logo: z.nullable(z.string()),\n maxPowerAdjustPct: z.number(),\n maxWeightPenaltyKg: z.number(),\n minPowerAdjustPct: z.number(),\n packageId: z.number(),\n patterns: z.number(),\n price: z.number(),\n priceDisplay: z.optional(z.string()),\n rainEnabled: z.boolean(),\n retired: z.boolean(),\n searchFilters: z.string(),\n sku: z.number(),\n smallImage: z.string(),\n sponsorLogo: z.nullable(z.string()),\n carMake: z.optional(z.string()),\n carModel: z.optional(z.string()),\n paintRules: z.optional(z.record(z.string(), z.unknown())),\n siteUrl: z.optional(z.string())\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type CarAssetsResponse = z.infer<typeof CarAssets>;\nexport type CarGetResponse = z.infer<typeof CarGet>;\n\n// ---- Parameter Schemas ----\n\nconst CarAssetsParamsSchema = z.object({\n});\n\nconst CarGetParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type CarAssetsParams = z.infer<typeof CarAssetsParamsSchema>;\nexport type CarGetParams = z.infer<typeof CarGetParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n CarAssetsParamsSchema,\n CarGetParamsSchema,\n CarAssets,\n CarGet,\n};","import type { IRacingClient } from \"../client\";\nimport type { CarAssetsResponse, CarGetResponse } from \"./types\";\nimport { CarAssets, CarGet } from \"./types\";\n\nexport class CarService {\n constructor(private client: IRacingClient) {}\n\n /**\n * assets\n * @see https://members-ng.iracing.com/data/car/assets\n * @sample car.assets.json\n */\n async assets(): Promise<CarAssetsResponse> {\n return this.client.get<CarAssetsResponse>(\"https://members-ng.iracing.com/data/car/assets\", { schema: CarAssets });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/car/get\n * @sample car.get.json\n */\n async get(): Promise<CarGetResponse> {\n return this.client.get<CarGetResponse>(\"https://members-ng.iracing.com/data/car/get\", { schema: CarGet });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Common Schemas ----\n\nconst CarInClassSchema = z.object({\n carDirpath: z.string(), // maps from: car_dirpath\n carId: z.number(), // maps from: car_id\n rainEnabled: z.boolean(), // maps from: rain_enabled\n retired: z.boolean()\n});\n\n// ---- Response Schemas ----\n\nconst CarclassGet = z.array(z.object({\n carClassId: z.number(),\n carsInClass: z.array(z.object({\n carDirpath: z.string(),\n carId: z.number(),\n rainEnabled: z.boolean(),\n retired: z.boolean()\n })),\n custId: z.number(),\n name: z.string(),\n rainEnabled: z.boolean(),\n relativeSpeed: z.number(),\n shortName: z.string()\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type CarclassGetResponse = z.infer<typeof CarclassGet>;\n\n// ---- Parameter Schemas ----\n\nconst CarclassGetParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type CarclassGetParams = z.infer<typeof CarclassGetParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n CarclassGetParamsSchema,\n CarclassGet,\n};","import type { IRacingClient } from \"../client\";\nimport type { CarclassGetResponse } from \"./types\";\nimport { CarclassGet } from \"./types\";\n\nexport class CarclassService {\n constructor(private client: IRacingClient) {}\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/carclass/get\n * @sample carclass.get.json\n */\n async get(): Promise<CarclassGetResponse> {\n return this.client.get<CarclassGetResponse>(\"https://members-ng.iracing.com/data/carclass/get\", { schema: CarclassGet });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst ConstantsCategories = z.array(z.object({\n label: z.string(),\n value: z.number()\n}));\nconst ConstantsDivisions = z.array(z.object({\n label: z.string(),\n value: z.number()\n}));\nconst ConstantsEventTypes = z.array(z.object({\n label: z.string(),\n value: z.number()\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type ConstantsCategoriesResponse = z.infer<typeof ConstantsCategories>;\nexport type ConstantsDivisionsResponse = z.infer<typeof ConstantsDivisions>;\nexport type ConstantsEventTypesResponse = z.infer<typeof ConstantsEventTypes>;\n\n// ---- Parameter Schemas ----\n\nconst ConstantsCategoriesParamsSchema = z.object({\n});\n\nconst ConstantsDivisionsParamsSchema = z.object({\n});\n\nconst ConstantsEventTypesParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type ConstantsCategoriesParams = z.infer<typeof ConstantsCategoriesParamsSchema>;\nexport type ConstantsDivisionsParams = z.infer<typeof ConstantsDivisionsParamsSchema>;\nexport type ConstantsEventTypesParams = z.infer<typeof ConstantsEventTypesParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n ConstantsCategoriesParamsSchema,\n ConstantsDivisionsParamsSchema,\n ConstantsEventTypesParamsSchema,\n ConstantsCategories,\n ConstantsDivisions,\n ConstantsEventTypes,\n};","import type { IRacingClient } from \"../client\";\nimport type { ConstantsCategoriesResponse, ConstantsDivisionsResponse, ConstantsEventTypesResponse } from \"./types\";\nimport { ConstantsCategories, ConstantsDivisions, ConstantsEventTypes } from \"./types\";\n\nexport class ConstantsService {\n constructor(private client: IRacingClient) {}\n\n /**\n * categories\n * @see https://members-ng.iracing.com/data/constants/categories\n * @sample constants.categories.json\n */\n async categories(): Promise<ConstantsCategoriesResponse> {\n return this.client.get<ConstantsCategoriesResponse>(\"https://members-ng.iracing.com/data/constants/categories\", { schema: ConstantsCategories });\n }\n\n /**\n * divisions\n * @see https://members-ng.iracing.com/data/constants/divisions\n * @sample constants.divisions.json\n */\n async divisions(): Promise<ConstantsDivisionsResponse> {\n return this.client.get<ConstantsDivisionsResponse>(\"https://members-ng.iracing.com/data/constants/divisions\", { schema: ConstantsDivisions });\n }\n\n /**\n * event_types\n * @see https://members-ng.iracing.com/data/constants/event_types\n * @sample constants.event_types.json\n */\n async eventTypes(): Promise<ConstantsEventTypesResponse> {\n return this.client.get<ConstantsEventTypesResponse>(\"https://members-ng.iracing.com/data/constants/event_types\", { schema: ConstantsEventTypes });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst DriverStatsByCategoryOval = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategorySportsCar = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategoryFormulaCar = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategoryRoad = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategoryDirtOval = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\nconst DriverStatsByCategoryDirtRoad = z.object({\n ContentType: z.literal(\"csv\"),\n RawData: z.string(),\n Note: z.string()\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type DriverStatsByCategoryOvalResponse = z.infer<typeof DriverStatsByCategoryOval>;\nexport type DriverStatsByCategorySportsCarResponse = z.infer<typeof DriverStatsByCategorySportsCar>;\nexport type DriverStatsByCategoryFormulaCarResponse = z.infer<typeof DriverStatsByCategoryFormulaCar>;\nexport type DriverStatsByCategoryRoadResponse = z.infer<typeof DriverStatsByCategoryRoad>;\nexport type DriverStatsByCategoryDirtOvalResponse = z.infer<typeof DriverStatsByCategoryDirtOval>;\nexport type DriverStatsByCategoryDirtRoadResponse = z.infer<typeof DriverStatsByCategoryDirtRoad>;\n\n// ---- Parameter Schemas ----\n\nconst DriverStatsByCategoryOvalParamsSchema = z.object({\n});\n\nconst DriverStatsByCategorySportsCarParamsSchema = z.object({\n});\n\nconst DriverStatsByCategoryFormulaCarParamsSchema = z.object({\n});\n\nconst DriverStatsByCategoryRoadParamsSchema = z.object({\n});\n\nconst DriverStatsByCategoryDirtOvalParamsSchema = z.object({\n});\n\nconst DriverStatsByCategoryDirtRoadParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type DriverStatsByCategoryOvalParams = z.infer<typeof DriverStatsByCategoryOvalParamsSchema>;\nexport type DriverStatsByCategorySportsCarParams = z.infer<typeof DriverStatsByCategorySportsCarParamsSchema>;\nexport type DriverStatsByCategoryFormulaCarParams = z.infer<typeof DriverStatsByCategoryFormulaCarParamsSchema>;\nexport type DriverStatsByCategoryRoadParams = z.infer<typeof DriverStatsByCategoryRoadParamsSchema>;\nexport type DriverStatsByCategoryDirtOvalParams = z.infer<typeof DriverStatsByCategoryDirtOvalParamsSchema>;\nexport type DriverStatsByCategoryDirtRoadParams = z.infer<typeof DriverStatsByCategoryDirtRoadParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n DriverStatsByCategoryOvalParamsSchema,\n DriverStatsByCategorySportsCarParamsSchema,\n DriverStatsByCategoryFormulaCarParamsSchema,\n DriverStatsByCategoryRoadParamsSchema,\n DriverStatsByCategoryDirtOvalParamsSchema,\n DriverStatsByCategoryDirtRoadParamsSchema,\n DriverStatsByCategoryOval,\n DriverStatsByCategorySportsCar,\n DriverStatsByCategoryFormulaCar,\n DriverStatsByCategoryRoad,\n DriverStatsByCategoryDirtOval,\n DriverStatsByCategoryDirtRoad,\n};","import type { IRacingClient } from \"../client\";\nimport type { DriverStatsByCategoryOvalResponse, DriverStatsByCategorySportsCarResponse, DriverStatsByCategoryFormulaCarResponse, DriverStatsByCategoryRoadResponse, DriverStatsByCategoryDirtOvalResponse, DriverStatsByCategoryDirtRoadResponse } from \"./types\";\nimport { DriverStatsByCategoryOval, DriverStatsByCategorySportsCar, DriverStatsByCategoryFormulaCar, DriverStatsByCategoryRoad, DriverStatsByCategoryDirtOval, DriverStatsByCategoryDirtRoad } from \"./types\";\n\nexport class DriverStatsByCategoryService {\n constructor(private client: IRacingClient) {}\n\n /**\n * oval\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/oval\n * @sample driver_stats_by_category.oval.json\n */\n async oval(): Promise<DriverStatsByCategoryOvalResponse> {\n return this.client.get<DriverStatsByCategoryOvalResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/oval\", { schema: DriverStatsByCategoryOval });\n }\n\n /**\n * sports_car\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/sports_car\n * @sample driver_stats_by_category.sports_car.json\n */\n async sportsCar(): Promise<DriverStatsByCategorySportsCarResponse> {\n return this.client.get<DriverStatsByCategorySportsCarResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/sports_car\", { schema: DriverStatsByCategorySportsCar });\n }\n\n /**\n * formula_car\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/formula_car\n * @sample driver_stats_by_category.formula_car.json\n */\n async formulaCar(): Promise<DriverStatsByCategoryFormulaCarResponse> {\n return this.client.get<DriverStatsByCategoryFormulaCarResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/formula_car\", { schema: DriverStatsByCategoryFormulaCar });\n }\n\n /**\n * road\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/road\n * @sample driver_stats_by_category.road.json\n */\n async road(): Promise<DriverStatsByCategoryRoadResponse> {\n return this.client.get<DriverStatsByCategoryRoadResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/road\", { schema: DriverStatsByCategoryRoad });\n }\n\n /**\n * dirt_oval\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/dirt_oval\n * @sample driver_stats_by_category.dirt_oval.json\n */\n async dirtOval(): Promise<DriverStatsByCategoryDirtOvalResponse> {\n return this.client.get<DriverStatsByCategoryDirtOvalResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/dirt_oval\", { schema: DriverStatsByCategoryDirtOval });\n }\n\n /**\n * dirt_road\n * @see https://members-ng.iracing.com/data/driver_stats_by_category/dirt_road\n * @sample driver_stats_by_category.dirt_road.json\n */\n async dirtRoad(): Promise<DriverStatsByCategoryDirtRoadResponse> {\n return this.client.get<DriverStatsByCategoryDirtRoadResponse>(\"https://members-ng.iracing.com/data/driver_stats_by_category/dirt_road\", { schema: DriverStatsByCategoryDirtRoad });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst HostedCombinedSessions = z.object({\n success: z.boolean(),\n subscribed: z.boolean(),\n sequence: z.number(),\n sessions: z.array(z.object({\n numDrivers: z.number(),\n numSpotters: z.number(),\n numSpectators: z.number(),\n numBroadcasters: z.number(),\n availableReservedBroadcasterSlots: z.number(),\n numSpectatorSlots: z.number(),\n availableSpectatorSlots: z.number(),\n canBroadcast: z.boolean(),\n canWatch: z.boolean(),\n canSpot: z.boolean(),\n elig: z.object({\n sessionFull: z.boolean(),\n canSpot: z.boolean(),\n canWatch: z.boolean(),\n canDrive: z.boolean(),\n hasSessPassword: z.boolean(),\n needsPurchase: z.boolean(),\n ownCar: z.boolean(),\n ownTrack: z.boolean(),\n purchaseSkus: z.array(z.number()),\n registered: z.boolean()\n }),\n driverChanges: z.boolean(),\n restrictViewing: z.boolean(),\n maxUsers: z.number(),\n privateSessionId: z.number(),\n sessionId: z.number(),\n subsessionId: z.number(),\n passwordProtected: z.boolean(),\n sessionName: z.string(),\n openRegExpires: z.string(),\n launchAt: z.string(),\n fullCourseCautions: z.boolean(),\n numFastTows: z.number(),\n rollingStarts: z.boolean(),\n restarts: z.number(),\n multiclassType: z.number(),\n pitsInUse: z.number(),\n carsLeft: z.number(),\n maxDrivers: z.number(),\n hardcoreLevel: z.number(),\n practiceLength: z.number(),\n loneQualify: z.boolean(),\n qualifyLaps: z.number(),\n qualifyLength: z.number(),\n warmupLength: z.number(),\n raceLaps: z.number(),\n raceLength: z.number(),\n timeLimit: z.number(),\n restrictResults: z.boolean(),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n unsportConductRuleMode: z.number(),\n connectionBlackFlag: z.boolean(),\n luckyDog: z.boolean(),\n minTeamDrivers: z.number(),\n maxTeamDrivers: z.number(),\n qualifierMustStartRace: z.boolean(),\n driverChangeRule: z.number(),\n fixedSetup: z.boolean(),\n entryCount: z.number(),\n leagueId: z.number(),\n leagueSeasonId: z.number(),\n sessionType: z.number(),\n orderId: z.number(),\n minLicenseLevel: z.number(),\n maxLicenseLevel: z.number(),\n status: z.number(),\n paceCarId: z.nullable(z.number()),\n paceCarClassId: z.nullable(z.number()),\n numOptLaps: z.number(),\n damageModel: z.number(),\n doNotPaintCars: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n doNotCountCautionLaps: z.boolean(),\n consecCautionsSingleFile: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n noLapperWaveArounds: z.boolean(),\n shortParadeLap: z.boolean(),\n startOnQualTire: z.boolean(),\n telemetryRestriction: z.number(),\n telemetryForceToDisk: z.number(),\n maxAiDrivers: z.number(),\n aiAvoidPlayers: z.boolean(),\n adaptiveAiEnabled: z.boolean(),\n adaptiveAiDifficulty: z.optional(z.number()),\n mustUseDiffTireTypesInRace: z.boolean(),\n startZone: z.boolean(),\n enablePitlaneCollisions: z.boolean(),\n disallowVirtualMirror: z.boolean(),\n maxVisorTearoffs: z.number(),\n categoryId: z.number(),\n category: z.string(),\n sessionFull: z.boolean(),\n host: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n }),\n track: z.object({\n categoryId: z.number(),\n trackId: z.number(),\n trackName: z.string(),\n configName: z.optional(z.string())\n }),\n weather: z.object({\n allowFog: z.boolean(),\n fog: z.optional(z.number()),\n precipOption: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.number(),\n type: z.optional(z.number()),\n version: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number(),\n forecastOptions: z.optional(z.object({\n forecastType: z.number(),\n precipitation: z.number(),\n skies: z.number(),\n stopPrecip: z.number(),\n temperature: z.number(),\n weatherSeed: z.number(),\n windDir: z.number(),\n windSpeed: z.number()\n })),\n weatherSummary: z.optional(z.object({\n maxPrecipRate: z.optional(z.number()),\n maxPrecipRateDesc: z.string(),\n precipChance: z.number(),\n skiesHigh: z.optional(z.number()),\n skiesLow: z.optional(z.number()),\n tempHigh: z.optional(z.number()),\n tempLow: z.optional(z.number()),\n tempUnits: z.optional(z.number()),\n windDir: z.optional(z.number()),\n windHigh: z.optional(z.number()),\n windLow: z.optional(z.number()),\n windUnits: z.optional(z.number())\n })),\n weatherUrl: z.optional(z.string())\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.number(),\n qualifyRubber: z.number(),\n raceRubber: z.number(),\n warmupRubber: z.number()\n }),\n farm: z.object({\n farmId: z.number(),\n displayName: z.string(),\n imagePath: z.string(),\n displayed: z.boolean()\n }),\n admins: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n })),\n allowedTeams: z.array(z.unknown()),\n allowedLeagues: z.array(z.unknown()),\n cars: z.array(z.object({\n carId: z.number(),\n carName: z.string(),\n carClassId: z.number(),\n carClassName: z.string(),\n maxPctFuelFill: z.number(),\n weightPenaltyKg: z.number(),\n powerAdjustPct: z.number(),\n maxDryTireSets: z.number(),\n packageId: z.number(),\n qualSetupId: z.optional(z.number()),\n qualSetupFilename: z.optional(z.string()),\n raceSetupId: z.optional(z.number()),\n raceSetupFilename: z.optional(z.string())\n })),\n countByCarId: z.object({\n 73: z.optional(z.number()),\n 112: z.optional(z.number()),\n 119: z.optional(z.number()),\n 127: z.optional(z.number()),\n 128: z.optional(z.number()),\n 132: z.optional(z.number()),\n 133: z.optional(z.number()),\n 139: z.optional(z.number()),\n 140: z.optional(z.number()),\n 141: z.optional(z.number()),\n 143: z.optional(z.number()),\n 144: z.optional(z.number()),\n 146: z.optional(z.number()),\n 147: z.optional(z.number()),\n 150: z.optional(z.number()),\n 153: z.optional(z.number()),\n 156: z.optional(z.number()),\n 157: z.optional(z.number()),\n 159: z.optional(z.number()),\n 160: z.optional(z.number()),\n 168: z.optional(z.number()),\n 169: z.optional(z.number()),\n 170: z.optional(z.number()),\n 171: z.optional(z.number()),\n 172: z.optional(z.number()),\n 173: z.optional(z.number()),\n 174: z.optional(z.number()),\n 176: z.optional(z.number()),\n 178: z.optional(z.number()),\n 184: z.optional(z.number()),\n 185: z.optional(z.number()),\n 188: z.optional(z.number()),\n 189: z.optional(z.number()),\n 190: z.optional(z.number()),\n 192: z.optional(z.number()),\n 194: z.optional(z.number()),\n 196: z.optional(z.number()),\n 203: z.optional(z.number()),\n 204: z.optional(z.number()),\n 205: z.optional(z.number()),\n 206: z.optional(z.number()),\n 207: z.optional(z.number())\n }),\n countByCarClassId: z.object({\n 0: z.optional(z.number()),\n 2523: z.optional(z.number()),\n 2708: z.optional(z.number()),\n 4011: z.optional(z.number()),\n 4029: z.optional(z.number()),\n 4033: z.optional(z.number()),\n 4091: z.optional(z.number())\n }),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n eventTypes: z.array(z.object({\n eventType: z.number()\n })),\n sessionTypes: z.array(z.object({\n sessionType: z.number()\n })),\n canJoin: z.boolean(),\n sessAdmin: z.boolean(),\n friends: z.array(z.unknown()),\n watched: z.array(z.unknown()),\n endTime: z.string(),\n teamEntryCount: z.number(),\n isHeatRacing: z.boolean(),\n populated: z.boolean(),\n broadcaster: z.boolean(),\n minIr: z.number(),\n maxIr: z.number(),\n sessionDesc: z.optional(z.string()),\n aiMinSkill: z.optional(z.number()),\n aiMaxSkill: z.optional(z.number()),\n aiRosterName: z.optional(z.string()),\n heatSesInfo: z.optional(z.object({\n consolationDeltaMaxFieldSize: z.number(),\n consolationDeltaSessionLaps: z.number(),\n consolationDeltaSessionLengthMinutes: z.number(),\n consolationFirstMaxFieldSize: z.number(),\n consolationFirstSessionLaps: z.number(),\n consolationFirstSessionLengthMinutes: z.number(),\n consolationNumPositionToInvert: z.number(),\n consolationNumToConsolation: z.number(),\n consolationNumToMain: z.number(),\n consolationRunAlways: z.boolean(),\n consolationScoresChampPoints: z.boolean(),\n created: z.string(),\n custId: z.number(),\n heatCautionType: z.number(),\n heatInfoId: z.number(),\n heatInfoName: z.string(),\n heatLaps: z.number(),\n heatLengthMinutes: z.number(),\n heatMaxFieldSize: z.number(),\n heatNumFromEachToMain: z.number(),\n heatNumPositionToInvert: z.number(),\n heatScoresChampPoints: z.boolean(),\n heatSessionMinutesEstimate: z.number(),\n hidden: z.boolean(),\n mainLaps: z.number(),\n mainLengthMinutes: z.number(),\n mainMaxFieldSize: z.number(),\n mainNumPositionToInvert: z.number(),\n maxEntrants: z.number(),\n openPractice: z.boolean(),\n preMainPracticeLengthMinutes: z.number(),\n preQualNumToMain: z.number(),\n preQualPracticeLengthMinutes: z.number(),\n qualCautionType: z.number(),\n qualLaps: z.number(),\n qualLengthMinutes: z.number(),\n qualNumToMain: z.number(),\n qualOpenDelaySeconds: z.number(),\n qualScoresChampPoints: z.boolean(),\n qualScoring: z.number(),\n qualStyle: z.number(),\n raceStyle: z.number()\n })),\n altAssetId: z.optional(z.number()),\n registeredTeams: z.optional(z.array(z.number()))\n })),\n packageId: z.optional(z.number())\n});\nconst HostedSessions = z.object({\n subscribed: z.boolean(),\n sessions: z.array(z.object({\n adaptiveAiEnabled: z.boolean(),\n admins: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n })),\n aiAvoidPlayers: z.boolean(),\n aiMaxSkill: z.optional(z.number()),\n aiMinSkill: z.optional(z.number()),\n aiRosterName: z.optional(z.string()),\n allowedLeagues: z.array(z.unknown()),\n allowedTeams: z.array(z.unknown()),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n cars: z.array(z.object({\n carId: z.number(),\n carName: z.string(),\n carClassId: z.number(),\n carClassName: z.string(),\n maxPctFuelFill: z.number(),\n weightPenaltyKg: z.number(),\n powerAdjustPct: z.number(),\n maxDryTireSets: z.number(),\n qualSetupId: z.optional(z.number()),\n qualSetupFilename: z.optional(z.string()),\n raceSetupId: z.optional(z.number()),\n raceSetupFilename: z.optional(z.string()),\n packageId: z.number()\n })),\n carsLeft: z.number(),\n category: z.string(),\n categoryId: z.number(),\n connectionBlackFlag: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n consecCautionsSingleFile: z.boolean(),\n countByCarClassId: z.object({\n 0: z.optional(z.number()),\n 2523: z.optional(z.number()),\n 2708: z.optional(z.number()),\n 4011: z.optional(z.number()),\n 4029: z.optional(z.number()),\n 4033: z.optional(z.number()),\n 4091: z.optional(z.number())\n }),\n countByCarId: z.object({\n 73: z.optional(z.number()),\n 112: z.optional(z.number()),\n 119: z.optional(z.number()),\n 127: z.optional(z.number()),\n 128: z.optional(z.number()),\n 132: z.optional(z.number()),\n 133: z.optional(z.number()),\n 139: z.optional(z.number()),\n 140: z.optional(z.number()),\n 141: z.optional(z.number()),\n 143: z.optional(z.number()),\n 144: z.optional(z.number()),\n 146: z.optional(z.number()),\n 147: z.optional(z.number()),\n 150: z.optional(z.number()),\n 153: z.optional(z.number()),\n 156: z.optional(z.number()),\n 157: z.optional(z.number()),\n 159: z.optional(z.number()),\n 160: z.optional(z.number()),\n 168: z.optional(z.number()),\n 169: z.optional(z.number()),\n 170: z.optional(z.number()),\n 171: z.optional(z.number()),\n 172: z.optional(z.number()),\n 173: z.optional(z.number()),\n 174: z.optional(z.number()),\n 176: z.optional(z.number()),\n 178: z.optional(z.number()),\n 184: z.optional(z.number()),\n 185: z.optional(z.number()),\n 188: z.optional(z.number()),\n 189: z.optional(z.number()),\n 190: z.optional(z.number()),\n 192: z.optional(z.number()),\n 194: z.optional(z.number()),\n 196: z.optional(z.number()),\n 203: z.optional(z.number()),\n 204: z.optional(z.number()),\n 205: z.optional(z.number()),\n 206: z.optional(z.number()),\n 207: z.optional(z.number())\n }),\n damageModel: z.number(),\n disallowVirtualMirror: z.boolean(),\n doNotCountCautionLaps: z.boolean(),\n doNotPaintCars: z.boolean(),\n driverChangeRule: z.number(),\n driverChanges: z.boolean(),\n elig: z.object({\n sessionFull: z.boolean(),\n canSpot: z.boolean(),\n canWatch: z.boolean(),\n canDrive: z.boolean(),\n hasSessPassword: z.boolean(),\n needsPurchase: z.boolean(),\n ownCar: z.boolean(),\n ownTrack: z.boolean(),\n purchaseSkus: z.array(z.number()),\n registered: z.boolean()\n }),\n enablePitlaneCollisions: z.boolean(),\n entryCount: z.number(),\n eventTypes: z.array(z.object({\n eventType: z.number()\n })),\n farm: z.object({\n farmId: z.number(),\n displayName: z.string(),\n imagePath: z.string(),\n displayed: z.boolean()\n }),\n fixedSetup: z.boolean(),\n fullCourseCautions: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n hardcoreLevel: z.number(),\n host: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n }),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n launchAt: z.string(),\n leagueId: z.number(),\n leagueSeasonId: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n loneQualify: z.boolean(),\n luckyDog: z.boolean(),\n maxAiDrivers: z.number(),\n maxDrivers: z.number(),\n maxIr: z.number(),\n maxLicenseLevel: z.number(),\n maxTeamDrivers: z.number(),\n maxVisorTearoffs: z.number(),\n minIr: z.number(),\n minLicenseLevel: z.number(),\n minTeamDrivers: z.number(),\n multiclassType: z.number(),\n mustUseDiffTireTypesInRace: z.boolean(),\n noLapperWaveArounds: z.boolean(),\n numFastTows: z.number(),\n numOptLaps: z.number(),\n openRegExpires: z.string(),\n orderId: z.number(),\n paceCarClassId: z.nullable(z.number()),\n paceCarId: z.nullable(z.number()),\n passwordProtected: z.boolean(),\n pitsInUse: z.number(),\n practiceLength: z.number(),\n privateSessionId: z.number(),\n qualifierMustStartRace: z.boolean(),\n qualifyLaps: z.number(),\n qualifyLength: z.number(),\n raceLaps: z.number(),\n raceLength: z.number(),\n restarts: z.number(),\n restrictResults: z.boolean(),\n restrictViewing: z.boolean(),\n rollingStarts: z.boolean(),\n sessionDesc: z.optional(z.string()),\n sessionFull: z.boolean(),\n sessionId: z.number(),\n sessionName: z.string(),\n sessionType: z.number(),\n sessionTypes: z.array(z.object({\n sessionType: z.number()\n })),\n shortParadeLap: z.boolean(),\n startOnQualTire: z.boolean(),\n startZone: z.boolean(),\n status: z.number(),\n subsessionId: z.number(),\n teamEntryCount: z.number(),\n telemetryForceToDisk: z.number(),\n telemetryRestriction: z.number(),\n timeLimit: z.number(),\n track: z.object({\n categoryId: z.number(),\n configName: z.optional(z.string()),\n trackId: z.number(),\n trackName: z.string()\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.number(),\n qualifyRubber: z.number(),\n raceRubber: z.number(),\n warmupRubber: z.number()\n }),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n unsportConductRuleMode: z.number(),\n warmupLength: z.number(),\n weather: z.object({\n allowFog: z.boolean(),\n fog: z.optional(z.number()),\n precipOption: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.number(),\n type: z.optional(z.number()),\n version: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number(),\n weatherSummary: z.optional(z.object({\n maxPrecipRateDesc: z.string(),\n precipChance: z.number(),\n maxPrecipRate: z.optional(z.number()),\n skiesHigh: z.optional(z.number()),\n skiesLow: z.optional(z.number()),\n tempHigh: z.optional(z.number()),\n tempLow: z.optional(z.number()),\n tempUnits: z.optional(z.number()),\n windDir: z.optional(z.number()),\n windHigh: z.optional(z.number()),\n windLow: z.optional(z.number()),\n windUnits: z.optional(z.number())\n })),\n weatherUrl: z.optional(z.string()),\n forecastOptions: z.optional(z.object({\n forecastType: z.number(),\n precipitation: z.number(),\n skies: z.number(),\n stopPrecip: z.number(),\n temperature: z.number(),\n weatherSeed: z.number(),\n windDir: z.number(),\n windSpeed: z.number()\n }))\n }),\n heatSesInfo: z.optional(z.object({\n consolationDeltaMaxFieldSize: z.number(),\n consolationDeltaSessionLaps: z.number(),\n consolationDeltaSessionLengthMinutes: z.number(),\n consolationFirstMaxFieldSize: z.number(),\n consolationFirstSessionLaps: z.number(),\n consolationFirstSessionLengthMinutes: z.number(),\n consolationNumPositionToInvert: z.number(),\n consolationNumToConsolation: z.number(),\n consolationNumToMain: z.number(),\n consolationRunAlways: z.boolean(),\n consolationScoresChampPoints: z.boolean(),\n created: z.string(),\n custId: z.number(),\n heatCautionType: z.number(),\n heatInfoId: z.number(),\n heatInfoName: z.string(),\n heatLaps: z.number(),\n heatLengthMinutes: z.number(),\n heatMaxFieldSize: z.number(),\n heatNumFromEachToMain: z.number(),\n heatNumPositionToInvert: z.number(),\n heatScoresChampPoints: z.boolean(),\n heatSessionMinutesEstimate: z.number(),\n hidden: z.boolean(),\n mainLaps: z.number(),\n mainLengthMinutes: z.number(),\n mainMaxFieldSize: z.number(),\n mainNumPositionToInvert: z.number(),\n maxEntrants: z.number(),\n openPractice: z.boolean(),\n preMainPracticeLengthMinutes: z.number(),\n preQualNumToMain: z.number(),\n preQualPracticeLengthMinutes: z.number(),\n qualCautionType: z.number(),\n qualLaps: z.number(),\n qualLengthMinutes: z.number(),\n qualNumToMain: z.number(),\n qualOpenDelaySeconds: z.number(),\n qualScoresChampPoints: z.boolean(),\n qualScoring: z.number(),\n qualStyle: z.number(),\n raceStyle: z.number()\n })),\n adaptiveAiDifficulty: z.optional(z.number()),\n altAssetId: z.optional(z.number()),\n registeredTeams: z.optional(z.array(z.number()))\n })),\n success: z.boolean()\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type HostedCombinedSessionsResponse = z.infer<typeof HostedCombinedSessions>;\nexport type HostedSessionsResponse = z.infer<typeof HostedSessions>;\n\n// ---- Parameter Schemas ----\n\nconst HostedCombinedSessionsParamsSchema = z.object({\n packageId: z.optional(z.number()), // If set, return only sessions using this car or track package ID. // maps to: package_id\n});\n\nconst HostedSessionsParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type HostedCombinedSessionsParams = z.infer<typeof HostedCombinedSessionsParamsSchema>;\nexport type HostedSessionsParams = z.infer<typeof HostedSessionsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n HostedCombinedSessionsParamsSchema,\n HostedSessionsParamsSchema,\n HostedCombinedSessions,\n HostedSessions,\n};","import type { IRacingClient } from \"../client\";\nimport type { HostedCombinedSessionsParams, HostedCombinedSessionsResponse, HostedSessionsResponse } from \"./types\";\nimport { HostedCombinedSessions, HostedSessions } from \"./types\";\n\nexport class HostedService {\n constructor(private client: IRacingClient) {}\n\n /**\n * combined_sessions\n * @see https://members-ng.iracing.com/data/hosted/combined_sessions\n * @sample hosted.combined_sessions.json\n */\n async combinedSessions(params: HostedCombinedSessionsParams): Promise<HostedCombinedSessionsResponse> {\n return this.client.get<HostedCombinedSessionsResponse>(\"https://members-ng.iracing.com/data/hosted/combined_sessions\", { params, schema: HostedCombinedSessions });\n }\n\n /**\n * sessions\n * @see https://members-ng.iracing.com/data/hosted/sessions\n * @sample hosted.sessions.json\n */\n async sessions(): Promise<HostedSessionsResponse> {\n return this.client.get<HostedSessionsResponse>(\"https://members-ng.iracing.com/data/hosted/sessions\", { schema: HostedSessions });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst LeagueCustLeagueSessions = z.object({\n mine: z.boolean(),\n subscribed: z.boolean(),\n sequence: z.number(),\n sessions: z.array(z.object({\n numDrivers: z.number(),\n numSpotters: z.number(),\n numSpectators: z.number(),\n numBroadcasters: z.number(),\n availableReservedBroadcasterSlots: z.number(),\n numSpectatorSlots: z.number(),\n availableSpectatorSlots: z.number(),\n canBroadcast: z.boolean(),\n canWatch: z.boolean(),\n canSpot: z.boolean(),\n elig: z.object({\n sessionFull: z.boolean(),\n canSpot: z.boolean(),\n canWatch: z.boolean(),\n canDrive: z.boolean(),\n hasSessPassword: z.boolean(),\n needsPurchase: z.boolean(),\n ownCar: z.boolean(),\n ownTrack: z.boolean(),\n purchaseSkus: z.array(z.unknown()),\n registered: z.boolean()\n }),\n driverChanges: z.boolean(),\n restrictViewing: z.boolean(),\n maxUsers: z.number(),\n privateSessionId: z.number(),\n sessionId: z.number(),\n subsessionId: z.number(),\n passwordProtected: z.boolean(),\n sessionName: z.string(),\n sessionDesc: z.optional(z.string()),\n openRegExpires: z.string(),\n launchAt: z.string(),\n fullCourseCautions: z.boolean(),\n numFastTows: z.number(),\n rollingStarts: z.boolean(),\n restarts: z.number(),\n multiclassType: z.number(),\n pitsInUse: z.number(),\n carsLeft: z.number(),\n maxDrivers: z.number(),\n hardcoreLevel: z.number(),\n practiceLength: z.number(),\n loneQualify: z.boolean(),\n qualifyLaps: z.number(),\n qualifyLength: z.number(),\n warmupLength: z.number(),\n raceLaps: z.number(),\n raceLength: z.number(),\n timeLimit: z.number(),\n restrictResults: z.boolean(),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n unsportConductRuleMode: z.number(),\n connectionBlackFlag: z.boolean(),\n luckyDog: z.boolean(),\n minTeamDrivers: z.number(),\n maxTeamDrivers: z.number(),\n qualifierMustStartRace: z.boolean(),\n driverChangeRule: z.number(),\n fixedSetup: z.boolean(),\n entryCount: z.number(),\n leagueId: z.number(),\n leagueName: z.string(),\n leagueSeasonId: z.number(),\n leagueSeasonName: z.optional(z.string()),\n sessionType: z.number(),\n orderId: z.number(),\n minLicenseLevel: z.number(),\n maxLicenseLevel: z.number(),\n status: z.number(),\n paceCarId: z.nullable(z.number()),\n paceCarClassId: z.nullable(z.number()),\n numOptLaps: z.number(),\n damageModel: z.number(),\n doNotPaintCars: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n doNotCountCautionLaps: z.boolean(),\n consecCautionsSingleFile: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n noLapperWaveArounds: z.boolean(),\n shortParadeLap: z.boolean(),\n startOnQualTire: z.boolean(),\n telemetryRestriction: z.number(),\n telemetryForceToDisk: z.number(),\n maxAiDrivers: z.number(),\n aiAvoidPlayers: z.boolean(),\n adaptiveAiEnabled: z.boolean(),\n adaptiveAiDifficulty: z.number(),\n mustUseDiffTireTypesInRace: z.boolean(),\n startZone: z.boolean(),\n enablePitlaneCollisions: z.boolean(),\n disallowVirtualMirror: z.boolean(),\n maxVisorTearoffs: z.number(),\n categoryId: z.number(),\n category: z.string(),\n sessionFull: z.boolean(),\n host: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n }),\n track: z.object({\n categoryId: z.number(),\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n }),\n weather: z.object({\n allowFog: z.boolean(),\n fog: z.optional(z.number()),\n precipOption: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.number(),\n type: z.optional(z.number()),\n version: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number(),\n forecastOptions: z.optional(z.object({\n forecastType: z.number(),\n precipitation: z.number(),\n skies: z.number(),\n stopPrecip: z.number(),\n temperature: z.number(),\n weatherSeed: z.number(),\n windDir: z.number(),\n windSpeed: z.number()\n })),\n weatherSummary: z.optional(z.object({\n maxPrecipRate: z.number(),\n maxPrecipRateDesc: z.string(),\n precipChance: z.number(),\n skiesHigh: z.number(),\n skiesLow: z.number(),\n tempHigh: z.number(),\n tempLow: z.number(),\n tempUnits: z.number(),\n windDir: z.number(),\n windHigh: z.number(),\n windLow: z.number(),\n windUnits: z.number()\n })),\n weatherUrl: z.optional(z.string())\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.number(),\n qualifyRubber: z.number(),\n raceRubber: z.number(),\n warmupRubber: z.number()\n }),\n farm: z.object({\n farmId: z.number(),\n displayName: z.string(),\n imagePath: z.string(),\n displayed: z.boolean()\n }),\n admins: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n })),\n allowedTeams: z.array(z.unknown()),\n allowedLeagues: z.array(z.number()),\n cars: z.array(z.object({\n carId: z.number(),\n carName: z.string(),\n carClassId: z.number(),\n carClassName: z.string(),\n maxPctFuelFill: z.number(),\n weightPenaltyKg: z.number(),\n powerAdjustPct: z.number(),\n maxDryTireSets: z.number(),\n packageId: z.number(),\n raceSetupId: z.optional(z.number()),\n raceSetupFilename: z.optional(z.string())\n })),\n countByCarId: z.object({\n 148: z.optional(z.number()),\n 190: z.optional(z.number()),\n 192: z.optional(z.number()),\n 208: z.optional(z.number())\n }),\n countByCarClassId: z.object({\n 0: z.optional(z.number()),\n 3188: z.optional(z.number())\n }),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n eventTypes: z.array(z.object({\n eventType: z.number()\n })),\n sessionTypes: z.array(z.object({\n sessionType: z.number()\n })),\n canJoin: z.boolean(),\n image: z.object({\n smallLogo: z.string(),\n largeLogo: z.string()\n }),\n owner: z.boolean(),\n admin: z.boolean(),\n friends: z.array(z.unknown()),\n watched: z.array(z.unknown()),\n endTime: z.string(),\n teamEntryCount: z.number(),\n isHeatRacing: z.boolean(),\n populated: z.boolean(),\n broadcaster: z.boolean(),\n minIr: z.number(),\n maxIr: z.number()\n })),\n success: z.boolean(),\n packageId: z.optional(z.number())\n});\nconst LeagueDirectory = z.object({\n resultsPage: z.array(z.object({\n leagueId: z.number(),\n ownerId: z.number(),\n leagueName: z.string(),\n created: z.string(),\n about: z.optional(z.string()),\n rosterCount: z.number(),\n recruiting: z.boolean(),\n isAdmin: z.boolean(),\n isMember: z.boolean(),\n pendingApplication: z.boolean(),\n pendingInvitation: z.boolean(),\n owner: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n carNumber: z.nullable(z.string()),\n nickName: z.nullable(z.string())\n }),\n url: z.optional(z.string())\n })),\n success: z.boolean(),\n lowerbound: z.number(),\n upperbound: z.number(),\n rowCount: z.number()\n});\nconst LeagueGet = z.object({\n leagueId: z.number(),\n ownerId: z.number(),\n leagueName: z.string(),\n created: z.string(),\n hidden: z.boolean(),\n message: z.string(),\n about: z.string(),\n recruiting: z.boolean(),\n privateWall: z.boolean(),\n privateRoster: z.boolean(),\n privateSchedule: z.boolean(),\n privateResults: z.boolean(),\n isOwner: z.boolean(),\n isAdmin: z.boolean(),\n rosterCount: z.number(),\n owner: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n carNumber: z.nullable(z.unknown()),\n nickName: z.nullable(z.unknown())\n }),\n image: z.object({\n smallLogo: z.nullable(z.unknown()),\n largeLogo: z.nullable(z.unknown())\n }),\n tags: z.object({\n categorized: z.array(z.object({\n categoryId: z.number(),\n name: z.string(),\n limit: z.nullable(z.number()),\n tags: z.array(z.object({\n tagId: z.number(),\n tagName: z.string()\n }))\n })),\n notCategorized: z.array(z.unknown())\n }),\n leagueApplications: z.array(z.unknown()),\n pendingRequests: z.array(z.unknown()),\n isMember: z.boolean(),\n isApplicant: z.boolean(),\n isInvite: z.boolean(),\n isIgnored: z.boolean(),\n roster: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n owner: z.boolean(),\n admin: z.boolean(),\n leagueMailOptOut: z.boolean(),\n leaguePmOptOut: z.boolean(),\n leagueMemberSince: z.string(),\n carNumber: z.nullable(z.string()),\n nickName: z.nullable(z.string())\n }))\n});\nconst LeagueGetPointsSystems = z.object({\n subscribed: z.boolean(),\n success: z.boolean(),\n pointsSystems: z.array(z.object({\n pointsSystemId: z.number(),\n name: z.string(),\n description: z.string(),\n leagueId: z.number(),\n retired: z.boolean(),\n iracingSystem: z.boolean()\n })),\n seasonId: z.number(),\n leagueId: z.number()\n});\nconst LeagueMembership = z.array(z.object({\n leagueId: z.number(),\n leagueName: z.string(),\n owner: z.boolean(),\n admin: z.boolean(),\n leagueMailOptOut: z.boolean(),\n leaguePmOptOut: z.boolean(),\n carNumber: z.nullable(z.string()),\n nickName: z.nullable(z.string())\n}));\nconst LeagueRoster = z.object({\n type: z.string(),\n data: z.object({\n subscribed: z.boolean(),\n success: z.boolean(),\n rosterCount: z.number(),\n leagueId: z.number()\n }),\n dataUrl: z.string()\n});\nconst LeagueSeasons = z.object({\n subscribed: z.boolean(),\n seasons: z.array(z.object({\n leagueId: z.number(),\n seasonId: z.number(),\n pointsSystemId: z.number(),\n seasonName: z.string(),\n active: z.boolean(),\n hidden: z.boolean(),\n numDrops: z.number(),\n noDropsOnOrAfterRaceNum: z.number(),\n pointsCars: z.array(z.object({\n carId: z.number(),\n carName: z.string()\n })),\n driverPointsCarClasses: z.array(z.object({\n carClassId: z.number(),\n name: z.string(),\n carsInClass: z.array(z.object({\n carId: z.number(),\n carName: z.string()\n }))\n })),\n teamPointsCarClasses: z.array(z.object({\n carClassId: z.number(),\n name: z.string(),\n carsInClass: z.array(z.object({\n carId: z.number(),\n carName: z.string()\n }))\n })),\n pointsSystemName: z.string(),\n pointsSystemDesc: z.string()\n })),\n success: z.boolean(),\n retired: z.boolean(),\n leagueId: z.number()\n});\nconst LeagueSeasonStandings = z.object({\n carClassId: z.number(),\n success: z.boolean(),\n seasonId: z.number(),\n carId: z.number(),\n standings: z.object({\n driverStandings: z.array(z.object({\n rownum: z.number(),\n position: z.number(),\n driver: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n })\n }),\n carNumber: z.nullable(z.string()),\n driverNickname: z.nullable(z.string()),\n wins: z.number(),\n averageStart: z.number(),\n averageFinish: z.number(),\n basePoints: z.number(),\n negativeAdjustments: z.number(),\n positiveAdjustments: z.number(),\n totalAdjustments: z.number(),\n totalPoints: z.number()\n })),\n teamStandings: z.array(z.unknown()),\n driverStandingsCsvUrl: z.string(),\n teamStandingsCsvUrl: z.string()\n }),\n leagueId: z.number()\n});\nconst LeagueSeasonSessions = z.object({\n success: z.boolean(),\n subscribed: z.boolean(),\n leagueId: z.number(),\n seasonId: z.number(),\n sessions: z.array(z.unknown())\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type LeagueCustLeagueSessionsResponse = z.infer<typeof LeagueCustLeagueSessions>;\nexport type LeagueDirectoryResponse = z.infer<typeof LeagueDirectory>;\nexport type LeagueGetResponse = z.infer<typeof LeagueGet>;\nexport type LeagueGetPointsSystemsResponse = z.infer<typeof LeagueGetPointsSystems>;\nexport type LeagueMembershipResponse = z.infer<typeof LeagueMembership>;\nexport type LeagueRosterResponse = z.infer<typeof LeagueRoster>;\nexport type LeagueSeasonsResponse = z.infer<typeof LeagueSeasons>;\nexport type LeagueSeasonStandingsResponse = z.infer<typeof LeagueSeasonStandings>;\nexport type LeagueSeasonSessionsResponse = z.infer<typeof LeagueSeasonSessions>;\n\n// ---- Parameter Schemas ----\n\nconst LeagueCustLeagueSessionsParamsSchema = z.object({\n mine: z.optional(z.boolean()), // If true, return only sessions created by this user.\n packageId: z.optional(z.number()), // If set, return only sessions using this car or track package ID. // maps to: package_id\n});\n\nconst LeagueDirectoryParamsSchema = z.object({\n search: z.optional(z.string()), // Will search against league name, description, owner, and league ID.\n tag: z.optional(z.string()), // One or more tags, comma-separated.\n restrictToMember: z.optional(z.boolean()), // If true include only leagues for which customer is a member. // maps to: restrict_to_member\n restrictToRecruiting: z.optional(z.boolean()), // If true include only leagues which are recruiting. // maps to: restrict_to_recruiting\n restrictToFriends: z.optional(z.boolean()), // If true include only leagues owned by a friend. // maps to: restrict_to_friends\n restrictToWatched: z.optional(z.boolean()), // If true include only leagues owned by a watched member. // maps to: restrict_to_watched\n minimumRosterCount: z.optional(z.number()), // If set include leagues with at least this number of members. // maps to: minimum_roster_count\n maximumRosterCount: z.optional(z.number()), // If set include leagues with no more than this number of members. // maps to: maximum_roster_count\n lowerbound: z.optional(z.number()), // First row of results to return. Defaults to 1.\n upperbound: z.optional(z.number()), // Last row of results to return. Defaults to lowerbound + 39.\n sort: z.optional(z.string()), // One of relevance, leaguename, displayname, rostercount. displayname is owners's name. Defaults to relevance.\n order: z.optional(z.string()), // One of asc or desc. Defaults to asc.\n});\n\nconst LeagueGetParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n includeLicenses: z.optional(z.boolean()), // For faster responses, only request when necessary. // maps to: include_licenses\n});\n\nconst LeagueGetPointsSystemsParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n seasonId: z.optional(z.number()), // If included and the season is using custom points (points_system_id:2) then the custom points option is included in the returned list. Otherwise the custom points option is not returned. // maps to: season_id\n});\n\nconst LeagueMembershipParamsSchema = z.object({\n custId: z.optional(z.number()), // If different from the authenticated member, the following restrictions apply: - Caller cannot be on requested customer's block list or an empty list will result; - Requested customer cannot have their online activity preference set to hidden or an empty list will result; - Only leagues for which the requested customer is an admin and the league roster is not private are returned. // maps to: cust_id\n includeLeague: z.optional(z.boolean()), // maps to: include_league\n});\n\nconst LeagueRosterParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n includeLicenses: z.optional(z.boolean()), // For faster responses, only request when necessary. // maps to: include_licenses\n});\n\nconst LeagueSeasonsParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n retired: z.optional(z.boolean()), // If true include seasons which are no longer active.\n});\n\nconst LeagueSeasonStandingsParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n seasonId: z.number(), // maps to: season_id\n carClassId: z.optional(z.number()), // maps to: car_class_id\n carId: z.optional(z.number()), // If car_class_id is included then the standings are for the car in that car class, otherwise they are for the car across car classes. // maps to: car_id\n});\n\nconst LeagueSeasonSessionsParamsSchema = z.object({\n leagueId: z.number(), // maps to: league_id\n seasonId: z.number(), // maps to: season_id\n resultsOnly: z.optional(z.boolean()), // If true include only sessions for which results are available. // maps to: results_only\n});\n\n// ---- Exported Parameter Types ----\n\nexport type LeagueCustLeagueSessionsParams = z.infer<typeof LeagueCustLeagueSessionsParamsSchema>;\nexport type LeagueDirectoryParams = z.infer<typeof LeagueDirectoryParamsSchema>;\nexport type LeagueGetParams = z.infer<typeof LeagueGetParamsSchema>;\nexport type LeagueGetPointsSystemsParams = z.infer<typeof LeagueGetPointsSystemsParamsSchema>;\nexport type LeagueMembershipParams = z.infer<typeof LeagueMembershipParamsSchema>;\nexport type LeagueRosterParams = z.infer<typeof LeagueRosterParamsSchema>;\nexport type LeagueSeasonsParams = z.infer<typeof LeagueSeasonsParamsSchema>;\nexport type LeagueSeasonStandingsParams = z.infer<typeof LeagueSeasonStandingsParamsSchema>;\nexport type LeagueSeasonSessionsParams = z.infer<typeof LeagueSeasonSessionsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n LeagueCustLeagueSessionsParamsSchema,\n LeagueDirectoryParamsSchema,\n LeagueGetParamsSchema,\n LeagueGetPointsSystemsParamsSchema,\n LeagueMembershipParamsSchema,\n LeagueRosterParamsSchema,\n LeagueSeasonsParamsSchema,\n LeagueSeasonStandingsParamsSchema,\n LeagueSeasonSessionsParamsSchema,\n LeagueCustLeagueSessions,\n LeagueDirectory,\n LeagueGet,\n LeagueGetPointsSystems,\n LeagueMembership,\n LeagueRoster,\n LeagueSeasons,\n LeagueSeasonStandings,\n LeagueSeasonSessions,\n};","import type { IRacingClient } from \"../client\";\nimport type { LeagueCustLeagueSessionsParams, LeagueDirectoryParams, LeagueGetParams, LeagueGetPointsSystemsParams, LeagueMembershipParams, LeagueRosterParams, LeagueSeasonsParams, LeagueSeasonStandingsParams, LeagueSeasonSessionsParams, LeagueCustLeagueSessionsResponse, LeagueDirectoryResponse, LeagueGetResponse, LeagueGetPointsSystemsResponse, LeagueMembershipResponse, LeagueRosterResponse, LeagueSeasonsResponse, LeagueSeasonStandingsResponse, LeagueSeasonSessionsResponse } from \"./types\";\nimport { LeagueCustLeagueSessions, LeagueDirectory, LeagueGet, LeagueGetPointsSystems, LeagueMembership, LeagueRoster, LeagueSeasons, LeagueSeasonStandings, LeagueSeasonSessions } from \"./types\";\n\nexport class LeagueService {\n constructor(private client: IRacingClient) {}\n\n /**\n * cust_league_sessions\n * @see https://members-ng.iracing.com/data/league/cust_league_sessions\n * @sample league.cust_league_sessions.json\n */\n async custLeagueSessions(params: LeagueCustLeagueSessionsParams): Promise<LeagueCustLeagueSessionsResponse> {\n return this.client.get<LeagueCustLeagueSessionsResponse>(\"https://members-ng.iracing.com/data/league/cust_league_sessions\", { params, schema: LeagueCustLeagueSessions });\n }\n\n /**\n * directory\n * @see https://members-ng.iracing.com/data/league/directory\n * @sample league.directory.json\n */\n async directory(params: LeagueDirectoryParams): Promise<LeagueDirectoryResponse> {\n return this.client.get<LeagueDirectoryResponse>(\"https://members-ng.iracing.com/data/league/directory\", { params, schema: LeagueDirectory });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/league/get\n * @sample league.get.json\n */\n async get(params: LeagueGetParams): Promise<LeagueGetResponse> {\n return this.client.get<LeagueGetResponse>(\"https://members-ng.iracing.com/data/league/get\", { params, schema: LeagueGet });\n }\n\n /**\n * get_points_systems\n * @see https://members-ng.iracing.com/data/league/get_points_systems\n * @sample league.get_points_systems.json\n */\n async getPointsSystems(params: LeagueGetPointsSystemsParams): Promise<LeagueGetPointsSystemsResponse> {\n return this.client.get<LeagueGetPointsSystemsResponse>(\"https://members-ng.iracing.com/data/league/get_points_systems\", { params, schema: LeagueGetPointsSystems });\n }\n\n /**\n * membership\n * @see https://members-ng.iracing.com/data/league/membership\n * @sample league.membership.json\n */\n async membership(params: LeagueMembershipParams): Promise<LeagueMembershipResponse> {\n return this.client.get<LeagueMembershipResponse>(\"https://members-ng.iracing.com/data/league/membership\", { params, schema: LeagueMembership });\n }\n\n /**\n * roster\n * @see https://members-ng.iracing.com/data/league/roster\n * @sample league.roster.json\n */\n async roster(params: LeagueRosterParams): Promise<LeagueRosterResponse> {\n return this.client.get<LeagueRosterResponse>(\"https://members-ng.iracing.com/data/league/roster\", { params, schema: LeagueRoster });\n }\n\n /**\n * seasons\n * @see https://members-ng.iracing.com/data/league/seasons\n * @sample league.seasons.json\n */\n async seasons(params: LeagueSeasonsParams): Promise<LeagueSeasonsResponse> {\n return this.client.get<LeagueSeasonsResponse>(\"https://members-ng.iracing.com/data/league/seasons\", { params, schema: LeagueSeasons });\n }\n\n /**\n * season_standings\n * @see https://members-ng.iracing.com/data/league/season_standings\n * @sample league.season_standings.json\n */\n async seasonStandings(params: LeagueSeasonStandingsParams): Promise<LeagueSeasonStandingsResponse> {\n return this.client.get<LeagueSeasonStandingsResponse>(\"https://members-ng.iracing.com/data/league/season_standings\", { params, schema: LeagueSeasonStandings });\n }\n\n /**\n * season_sessions\n * @see https://members-ng.iracing.com/data/league/season_sessions\n * @sample league.season_sessions.json\n */\n async seasonSessions(params: LeagueSeasonSessionsParams): Promise<LeagueSeasonSessionsResponse> {\n return this.client.get<LeagueSeasonSessionsResponse>(\"https://members-ng.iracing.com/data/league/season_sessions\", { params, schema: LeagueSeasonSessions });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst LookupCountries = z.array(z.object({\n countryName: z.string(),\n countryCode: z.string()\n}));\nconst LookupDrivers = z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n}),\n profileDisabled: z.boolean()\n}));\nconst LookupFlairs = z.object({\n success: z.boolean(),\n flairs: z.array(z.object({\n flairId: z.number(),\n flairName: z.string(),\n seq: z.number(),\n flairShortname: z.optional(z.string()),\n countryCode: z.optional(z.string())\n }))\n});\nconst LookupGet = z.array(z.object({\n lookups: z.array(z.unknown()),\n tag: z.string()\n}));\nconst LookupLicenses = z.array(z.object({\n licenseGroup: z.number(),\n groupName: z.string(),\n minNumRaces: z.nullable(z.number()),\n participationCredits: z.number(),\n minSrToFastTrack: z.nullable(z.number()),\n levels: z.array(z.object({\n licenseId: z.number(),\n licenseGroup: z.number(),\n license: z.string(),\n shortName: z.string(),\n licenseLetter: z.string(),\n color: z.string()\n })),\n minNumTt: z.nullable(z.number())\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type LookupCountriesResponse = z.infer<typeof LookupCountries>;\nexport type LookupDriversResponse = z.infer<typeof LookupDrivers>;\nexport type LookupFlairsResponse = z.infer<typeof LookupFlairs>;\nexport type LookupGetResponse = z.infer<typeof LookupGet>;\nexport type LookupLicensesResponse = z.infer<typeof LookupLicenses>;\n\n// ---- Parameter Schemas ----\n\nconst LookupCountriesParamsSchema = z.object({\n});\n\nconst LookupDriversParamsSchema = z.object({\n searchTerm: z.string(), // A cust_id or partial name for which to search. // maps to: search_term\n leagueId: z.optional(z.number()), // Narrow the search to the roster of the given league. // maps to: league_id\n});\n\nconst LookupFlairsParamsSchema = z.object({\n});\n\nconst LookupGetParamsSchema = z.object({\n});\n\nconst LookupLicensesParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type LookupCountriesParams = z.infer<typeof LookupCountriesParamsSchema>;\nexport type LookupDriversParams = z.infer<typeof LookupDriversParamsSchema>;\nexport type LookupFlairsParams = z.infer<typeof LookupFlairsParamsSchema>;\nexport type LookupGetParams = z.infer<typeof LookupGetParamsSchema>;\nexport type LookupLicensesParams = z.infer<typeof LookupLicensesParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n LookupCountriesParamsSchema,\n LookupDriversParamsSchema,\n LookupFlairsParamsSchema,\n LookupGetParamsSchema,\n LookupLicensesParamsSchema,\n LookupCountries,\n LookupDrivers,\n LookupFlairs,\n LookupGet,\n LookupLicenses,\n};","import type { IRacingClient } from \"../client\";\nimport type { LookupDriversParams, LookupCountriesResponse, LookupDriversResponse, LookupFlairsResponse, LookupGetResponse, LookupLicensesResponse } from \"./types\";\nimport { LookupCountries, LookupDrivers, LookupFlairs, LookupGet, LookupLicenses } from \"./types\";\n\nexport class LookupService {\n constructor(private client: IRacingClient) {}\n\n /**\n * countries\n * @see https://members-ng.iracing.com/data/lookup/countries\n * @sample lookup.countries.json\n */\n async countries(): Promise<LookupCountriesResponse> {\n return this.client.get<LookupCountriesResponse>(\"https://members-ng.iracing.com/data/lookup/countries\", { schema: LookupCountries });\n }\n\n /**\n * drivers\n * @see https://members-ng.iracing.com/data/lookup/drivers\n * @sample lookup.drivers.json\n */\n async drivers(params: LookupDriversParams): Promise<LookupDriversResponse> {\n return this.client.get<LookupDriversResponse>(\"https://members-ng.iracing.com/data/lookup/drivers\", { params, schema: LookupDrivers });\n }\n\n /**\n * flairs\n * @see https://members-ng.iracing.com/data/lookup/flairs\n * @sample lookup.flairs.json\n */\n async flairs(): Promise<LookupFlairsResponse> {\n return this.client.get<LookupFlairsResponse>(\"https://members-ng.iracing.com/data/lookup/flairs\", { schema: LookupFlairs });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/lookup/get\n * @sample lookup.get.json\n */\n async get(): Promise<LookupGetResponse> {\n return this.client.get<LookupGetResponse>(\"https://members-ng.iracing.com/data/lookup/get\", { schema: LookupGet });\n }\n\n /**\n * licenses\n * @see https://members-ng.iracing.com/data/lookup/licenses\n * @sample lookup.licenses.json\n */\n async licenses(): Promise<LookupLicensesResponse> {\n return this.client.get<LookupLicensesResponse>(\"https://members-ng.iracing.com/data/lookup/licenses\", { schema: LookupLicenses });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst MemberAwards = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n custId: z.number(),\n awardCount: z.number()\n }),\n dataUrl: z.string()\n});\nconst MemberAwardInstances = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n custId: z.number(),\n awardId: z.number(),\n awardCount: z.number()\n }),\n dataUrl: z.string()\n});\nconst MemberChartData = z.object({\n blackout: z.boolean(),\n categoryId: z.number(),\n chartType: z.number(),\n data: z.array(z.object({\n when: z.string(),\n value: z.number()\n })),\n success: z.boolean(),\n custId: z.number()\n});\nconst MemberGet = z.object({\n success: z.boolean(),\n custIds: z.array(z.number()),\n members: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n lastLogin: z.string(),\n memberSince: z.string(),\n flairId: z.number(),\n flairName: z.string(),\n flairShortname: z.string(),\n ai: z.boolean()\n }))\n});\nconst MemberInfo = z.object({\n custId: z.number(),\n displayName: z.string(),\n firstName: z.string(),\n lastName: z.string(),\n onCarName: z.string(),\n memberSince: z.string(),\n flairId: z.number(),\n flairName: z.string(),\n flairShortname: z.string(),\n flairCountryCode: z.string(),\n lastLogin: z.string(),\n readTc: z.string(),\n readPp: z.string(),\n readCompRules: z.string(),\n flags: z.number(),\n connectionType: z.string(),\n downloadServer: z.string(),\n account: z.object({\n irDollars: z.number(),\n irCredits: z.number(),\n status: z.string(),\n countryRules: z.nullable(z.unknown())\n }),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n suit: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n bodyType: z.number()\n }),\n licenses: z.object({\n oval: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n }),\n sportsCar: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n }),\n formulaCar: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n }),\n dirtOval: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n }),\n dirtRoad: z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n })\n }),\n carPackages: z.array(z.object({\n packageId: z.number(),\n contentIds: z.array(z.number())\n })),\n trackPackages: z.array(z.object({\n packageId: z.number(),\n contentIds: z.array(z.number())\n })),\n otherOwnedPackages: z.array(z.number()),\n dev: z.boolean(),\n alphaTester: z.boolean(),\n rainTester: z.boolean(),\n broadcaster: z.boolean(),\n restrictions: z.object({\n\n }),\n hasReadCompRules: z.boolean(),\n hasReadNda: z.boolean(),\n flagsHex: z.string(),\n hundredPctClub: z.boolean(),\n twentyPctDiscount: z.boolean(),\n lastSeason: z.number(),\n hasAdditionalContent: z.boolean(),\n hasReadTc: z.boolean(),\n hasReadPp: z.boolean()\n});\nconst MemberParticipationCredits = z.array(z.object({\n custId: z.number(),\n seasonId: z.number(),\n seriesId: z.number(),\n seriesName: z.string(),\n licenseGroup: z.number(),\n licenseGroupName: z.string(),\n participationCredits: z.number(),\n minWeeks: z.number(),\n weeks: z.number(),\n earnedCredits: z.number(),\n totalCredits: z.number()\n}));\nconst MemberProfile = z.object({\n recentAwards: z.array(z.object({\n memberAwardId: z.number(),\n awardId: z.number(),\n achievement: z.boolean(),\n awardCount: z.number(),\n awardDate: z.string(),\n awardOrder: z.number(),\n awardedDescription: z.string(),\n custId: z.number(),\n description: z.string(),\n groupName: z.string(),\n hasPdf: z.boolean(),\n iconUrlLarge: z.string(),\n iconUrlSmall: z.string(),\n iconUrlUnawarded: z.string(),\n name: z.string(),\n progress: z.optional(z.number()),\n progressLabel: z.optional(z.string()),\n threshold: z.optional(z.number()),\n viewed: z.boolean(),\n weight: z.number(),\n subsessionId: z.optional(z.number())\n })),\n activity: z.object({\n recent30daysCount: z.number(),\n prev30daysCount: z.number(),\n consecutiveWeeks: z.number(),\n mostConsecutiveWeeks: z.number()\n }),\n success: z.boolean(),\n imageUrl: z.string(),\n memberInfo: z.object({\n ai: z.boolean(),\n country: z.nullable(z.string()),\n countryCode: z.string(),\n custId: z.number(),\n displayName: z.string(),\n flairId: z.number(),\n flairName: z.string(),\n flairShortname: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n lastLogin: z.string(),\n licenses: z.array(z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n mprNumRaces: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n proPromotable: z.boolean(),\n seq: z.number(),\n mprNumTts: z.number()\n })),\n memberSince: z.string()\n }),\n disabled: z.boolean(),\n licenseHistory: z.array(z.object({\n categoryId: z.number(),\n category: z.string(),\n categoryName: z.string(),\n licenseLevel: z.number(),\n safetyRating: z.number(),\n cpi: z.number(),\n irating: z.number(),\n ttRating: z.number(),\n color: z.string(),\n groupName: z.string(),\n groupId: z.number(),\n seq: z.number()\n })),\n recentEvents: z.array(z.object({\n eventType: z.string(),\n subsessionId: z.number(),\n startTime: z.string(),\n eventId: z.number(),\n eventName: z.string(),\n simsessionType: z.number(),\n startingPosition: z.number(),\n finishPosition: z.number(),\n bestLapTime: z.number(),\n percentRank: z.number(),\n carId: z.number(),\n carName: z.string(),\n logoUrl: z.nullable(z.string()),\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n })\n })),\n custId: z.number(),\n isGenericImage: z.boolean(),\n followCounts: z.object({\n followers: z.number(),\n follows: z.number()\n })\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type MemberAwardsResponse = z.infer<typeof MemberAwards>;\nexport type MemberAwardInstancesResponse = z.infer<typeof MemberAwardInstances>;\nexport type MemberChartDataResponse = z.infer<typeof MemberChartData>;\nexport type MemberGetResponse = z.infer<typeof MemberGet>;\nexport type MemberInfoResponse = z.infer<typeof MemberInfo>;\nexport type MemberParticipationCreditsResponse = z.infer<typeof MemberParticipationCredits>;\nexport type MemberProfileResponse = z.infer<typeof MemberProfile>;\n\n// ---- Parameter Schemas ----\n\nconst MemberAwardsParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst MemberAwardInstancesParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n awardId: z.number(), // maps to: award_id\n});\n\nconst MemberChartDataParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n categoryId: z.number(), // 1 - Oval; 2 - Road; 3 - Dirt oval; 4 - Dirt road // maps to: category_id\n chartType: z.number(), // 1 - iRating; 2 - TT Rating; 3 - License/SR // maps to: chart_type\n});\n\nconst MemberGetParamsSchema = z.object({\n custIds: z.array(z.number()), // ?cust_ids=2,3,4 // maps to: cust_ids\n includeLicenses: z.optional(z.boolean()), // maps to: include_licenses\n});\n\nconst MemberInfoParamsSchema = z.object({\n});\n\nconst MemberParticipationCreditsParamsSchema = z.object({\n});\n\nconst MemberProfileParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\n// ---- Exported Parameter Types ----\n\nexport type MemberAwardsParams = z.infer<typeof MemberAwardsParamsSchema>;\nexport type MemberAwardInstancesParams = z.infer<typeof MemberAwardInstancesParamsSchema>;\nexport type MemberChartDataParams = z.infer<typeof MemberChartDataParamsSchema>;\nexport type MemberGetParams = z.infer<typeof MemberGetParamsSchema>;\nexport type MemberInfoParams = z.infer<typeof MemberInfoParamsSchema>;\nexport type MemberParticipationCreditsParams = z.infer<typeof MemberParticipationCreditsParamsSchema>;\nexport type MemberProfileParams = z.infer<typeof MemberProfileParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n MemberAwardsParamsSchema,\n MemberAwardInstancesParamsSchema,\n MemberChartDataParamsSchema,\n MemberGetParamsSchema,\n MemberInfoParamsSchema,\n MemberParticipationCreditsParamsSchema,\n MemberProfileParamsSchema,\n MemberAwards,\n MemberAwardInstances,\n MemberChartData,\n MemberGet,\n MemberInfo,\n MemberParticipationCredits,\n MemberProfile,\n};","import type { IRacingClient } from \"../client\";\nimport type { MemberAwardsParams, MemberAwardInstancesParams, MemberChartDataParams, MemberGetParams, MemberProfileParams, MemberAwardsResponse, MemberAwardInstancesResponse, MemberChartDataResponse, MemberGetResponse, MemberInfoResponse, MemberParticipationCreditsResponse, MemberProfileResponse } from \"./types\";\nimport { MemberAwards, MemberAwardInstances, MemberChartData, MemberGet, MemberInfo, MemberParticipationCredits, MemberProfile } from \"./types\";\n\nexport class MemberService {\n constructor(private client: IRacingClient) {}\n\n /**\n * awards\n * @see https://members-ng.iracing.com/data/member/awards\n * @sample member.awards.json\n */\n async awards(params: MemberAwardsParams): Promise<MemberAwardsResponse> {\n return this.client.get<MemberAwardsResponse>(\"https://members-ng.iracing.com/data/member/awards\", { params, schema: MemberAwards });\n }\n\n /**\n * award_instances\n * @see https://members-ng.iracing.com/data/member/award_instances\n * @sample member.award_instances.json\n */\n async awardInstances(params: MemberAwardInstancesParams): Promise<MemberAwardInstancesResponse> {\n return this.client.get<MemberAwardInstancesResponse>(\"https://members-ng.iracing.com/data/member/award_instances\", { params, schema: MemberAwardInstances });\n }\n\n /**\n * chart_data\n * @see https://members-ng.iracing.com/data/member/chart_data\n * @sample member.chart_data.json\n */\n async chartData(params: MemberChartDataParams): Promise<MemberChartDataResponse> {\n return this.client.get<MemberChartDataResponse>(\"https://members-ng.iracing.com/data/member/chart_data\", { params, schema: MemberChartData });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/member/get\n * @sample member.get.json\n */\n async get(params: MemberGetParams): Promise<MemberGetResponse> {\n return this.client.get<MemberGetResponse>(\"https://members-ng.iracing.com/data/member/get\", { params, schema: MemberGet });\n }\n\n /**\n * info\n * @see https://members-ng.iracing.com/data/member/info\n * @sample member.info.json\n */\n async info(): Promise<MemberInfoResponse> {\n return this.client.get<MemberInfoResponse>(\"https://members-ng.iracing.com/data/member/info\", { schema: MemberInfo });\n }\n\n /**\n * participation_credits\n * @see https://members-ng.iracing.com/data/member/participation_credits\n * @sample member.participation_credits.json\n */\n async participationCredits(): Promise<MemberParticipationCreditsResponse> {\n return this.client.get<MemberParticipationCreditsResponse>(\"https://members-ng.iracing.com/data/member/participation_credits\", { schema: MemberParticipationCredits });\n }\n\n /**\n * profile\n * @see https://members-ng.iracing.com/data/member/profile\n * @sample member.profile.json\n */\n async profile(params: MemberProfileParams): Promise<MemberProfileResponse> {\n return this.client.get<MemberProfileResponse>(\"https://members-ng.iracing.com/data/member/profile\", { params, schema: MemberProfile });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst ResultsGet = z.object({\n subsessionId: z.number(),\n allowedLicenses: z.array(z.object({\n groupName: z.string(),\n licenseGroup: z.number(),\n maxLicenseLevel: z.number(),\n minLicenseLevel: z.number(),\n parentId: z.number()\n })),\n associatedSubsessionIds: z.array(z.number()),\n canProtest: z.boolean(),\n carClasses: z.array(z.object({\n carClassId: z.number(),\n shortName: z.string(),\n name: z.string(),\n strengthOfField: z.number(),\n numEntries: z.number(),\n carsInClass: z.array(z.object({\n carId: z.number()\n }))\n })),\n cautionType: z.number(),\n cooldownMinutes: z.number(),\n cornersPerLap: z.number(),\n damageModel: z.number(),\n driverChangeParam1: z.number(),\n driverChangeParam2: z.number(),\n driverChangeRule: z.number(),\n driverChanges: z.boolean(),\n endTime: z.string(),\n eventAverageLap: z.number(),\n eventBestLapTime: z.number(),\n eventLapsComplete: z.number(),\n eventStrengthOfField: z.number(),\n eventType: z.number(),\n eventTypeName: z.string(),\n heatInfoId: z.number(),\n licenseCategory: z.string(),\n licenseCategoryId: z.number(),\n limitMinutes: z.number(),\n maxTeamDrivers: z.number(),\n maxWeeks: z.number(),\n minTeamDrivers: z.number(),\n numCautionLaps: z.number(),\n numCautions: z.number(),\n numDrivers: z.number(),\n numLapsForQualAverage: z.number(),\n numLapsForSoloAverage: z.number(),\n numLeadChanges: z.number(),\n officialSession: z.boolean(),\n pointsType: z.string(),\n privateSessionId: z.number(),\n raceWeekNum: z.number(),\n resultsRestricted: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonQuarter: z.number(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n seriesId: z.number(),\n seriesLogo: z.string(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n sessionId: z.number(),\n sessionResults: z.array(z.object({\n simsessionNumber: z.number(),\n simsessionName: z.string(),\n simsessionType: z.number(),\n simsessionTypeName: z.string(),\n simsessionSubtype: z.number(),\n results: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n aggregateChampPoints: z.number(),\n ai: z.boolean(),\n averageLap: z.number(),\n bestLapNum: z.number(),\n bestLapTime: z.number(),\n bestNlapsNum: z.number(),\n bestNlapsTime: z.number(),\n bestQualLapAt: z.string(),\n bestQualLapNum: z.number(),\n bestQualLapTime: z.number(),\n carClassId: z.number(),\n carClassName: z.string(),\n carClassShortName: z.string(),\n carId: z.number(),\n carName: z.string(),\n carcfg: z.number(),\n champPoints: z.number(),\n classInterval: z.number(),\n countryCode: z.string(),\n division: z.number(),\n divisionName: z.string(),\n dropRace: z.boolean(),\n finishPosition: z.number(),\n finishPositionInClass: z.number(),\n flairId: z.number(),\n flairName: z.string(),\n flairShortname: z.string(),\n friend: z.boolean(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n incidents: z.number(),\n interval: z.number(),\n lapsComplete: z.number(),\n lapsLead: z.number(),\n leagueAggPoints: z.number(),\n leaguePoints: z.number(),\n licenseChangeOval: z.number(),\n licenseChangeRoad: z.number(),\n livery: z.object({\n carId: z.number(),\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n numberFont: z.number(),\n numberColor1: z.string(),\n numberColor2: z.string(),\n numberColor3: z.string(),\n numberSlant: z.number(),\n sponsor1: z.number(),\n sponsor2: z.number(),\n carNumber: z.string(),\n wheelColor: z.nullable(z.string()),\n rimType: z.number()\n }),\n maxPctFuelFill: z.number(),\n newCpi: z.number(),\n newLicenseLevel: z.number(),\n newSubLevel: z.number(),\n newTtrating: z.number(),\n newiRating: z.number(),\n oldCpi: z.number(),\n oldLicenseLevel: z.number(),\n oldSubLevel: z.number(),\n oldTtrating: z.number(),\n oldiRating: z.number(),\n optLapsComplete: z.number(),\n position: z.number(),\n qualLapTime: z.number(),\n reasonOut: z.string(),\n reasonOutId: z.number(),\n startingPosition: z.number(),\n startingPositionInClass: z.number(),\n suit: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string()\n }),\n watched: z.boolean(),\n weightPenaltyKg: z.number()\n }))\n })),\n sessionSplits: z.array(z.object({\n subsessionId: z.number(),\n eventStrengthOfField: z.number()\n })),\n specialEventType: z.number(),\n startTime: z.string(),\n track: z.object({\n category: z.string(),\n categoryId: z.number(),\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.number(),\n qualifyRubber: z.number(),\n raceRubber: z.number(),\n warmupRubber: z.number()\n }),\n weather: z.object({\n allowFog: z.boolean(),\n fog: z.number(),\n precipMm2hrBeforeFinalSession: z.number(),\n precipMmFinalSession: z.number(),\n precipOption: z.number(),\n precipTimePct: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.number(),\n type: z.number(),\n version: z.number(),\n weatherVarInitial: z.number(),\n weatherVarOngoing: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number()\n })\n});\nconst ResultsEventLog = z.object({\n success: z.boolean(),\n sessionInfo: z.object({\n subsessionId: z.number(),\n sessionId: z.number(),\n simsessionNumber: z.number(),\n simsessionType: z.number(),\n simsessionName: z.string(),\n eventType: z.number(),\n eventTypeName: z.string(),\n privateSessionId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n startTime: z.string(),\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n })\n }),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.string()),\n chunkFileNames: z.array(z.string())\n })\n});\nconst ResultsLapChartData = z.object({\n success: z.boolean(),\n sessionInfo: z.object({\n subsessionId: z.number(),\n sessionId: z.number(),\n simsessionNumber: z.number(),\n simsessionType: z.number(),\n simsessionName: z.string(),\n numLapsForQualAverage: z.number(),\n numLapsForSoloAverage: z.number(),\n eventType: z.number(),\n eventTypeName: z.string(),\n privateSessionId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n startTime: z.string(),\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n })\n }),\n bestLapNum: z.number(),\n bestLapTime: z.number(),\n bestNlapsNum: z.number(),\n bestNlapsTime: z.number(),\n bestQualLapNum: z.number(),\n bestQualLapTime: z.number(),\n bestQualLapAt: z.nullable(z.unknown()),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string()\n});\nconst ResultsLapData = z.object({\n success: z.boolean(),\n sessionInfo: z.object({\n subsessionId: z.number(),\n sessionId: z.number(),\n simsessionNumber: z.number(),\n simsessionType: z.number(),\n simsessionName: z.string(),\n numLapsForQualAverage: z.number(),\n numLapsForSoloAverage: z.number(),\n eventType: z.number(),\n eventTypeName: z.string(),\n privateSessionId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n startTime: z.string(),\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n })\n }),\n bestLapNum: z.number(),\n bestLapTime: z.number(),\n bestNlapsNum: z.number(),\n bestNlapsTime: z.number(),\n bestQualLapNum: z.number(),\n bestQualLapTime: z.number(),\n bestQualLapAt: z.nullable(z.unknown()),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n groupId: z.number(),\n custId: z.number(),\n name: z.string(),\n carId: z.number(),\n licenseLevel: z.number(),\n livery: z.object({\n carId: z.number(),\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n numberFont: z.number(),\n numberColor1: z.string(),\n numberColor2: z.string(),\n numberColor3: z.string(),\n numberSlant: z.number(),\n sponsor1: z.number(),\n sponsor2: z.number(),\n carNumber: z.string(),\n wheelColor: z.nullable(z.unknown()),\n rimType: z.number()\n })\n});\nconst ResultsSearchHosted = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.unknown()),\n chunkFileNames: z.array(z.unknown())\n }),\n params: z.object({\n custId: z.number(),\n teamId: z.number(),\n finishRangeBegin: z.optional(z.string()),\n finishRangeEnd: z.optional(z.string()),\n startRangeBegin: z.string(),\n startRangeEnd: z.optional(z.string()),\n categoryIds: z.array(z.number()),\n hostCustId: z.optional(z.number()),\n sessionName: z.optional(z.string()),\n carId: z.optional(z.number()),\n trackId: z.optional(z.number()),\n leagueId: z.optional(z.number()),\n leagueSeasonId: z.optional(z.number())\n })\n })\n});\nconst ResultsSearchSeries = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.unknown()),\n chunkFileNames: z.array(z.unknown())\n }),\n params: z.object({\n custId: z.number(),\n teamId: z.number(),\n finishRangeBegin: z.optional(z.string()),\n finishRangeEnd: z.optional(z.string()),\n startRangeBegin: z.optional(z.string()),\n startRangeEnd: z.optional(z.string()),\n categoryIds: z.array(z.number()),\n seriesId: z.optional(z.number()),\n seasonYear: z.optional(z.number()),\n seasonQuarter: z.optional(z.number()),\n raceWeekNum: z.number(),\n officialOnly: z.boolean(),\n eventTypes: z.array(z.number()),\n seasonLicenseGroups: z.array(z.number())\n })\n })\n});\nconst ResultsSeasonResults = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n raceWeekNum: z.number(),\n eventType: z.nullable(z.number()),\n resultsList: z.array(z.object({\n sessionId: z.number(),\n subsessionId: z.number(),\n raceWeekNum: z.number(),\n carClasses: z.array(z.object({\n carClassId: z.number(),\n shortName: z.string(),\n name: z.string(),\n numEntries: z.number(),\n strengthOfField: z.number()\n })),\n driverChanges: z.boolean(),\n eventBestLapTime: z.number(),\n eventStrengthOfField: z.number(),\n eventType: z.number(),\n eventTypeName: z.string(),\n farm: z.object({\n farmId: z.number(),\n displayName: z.string(),\n imagePath: z.string(),\n displayed: z.boolean()\n }),\n numCautionLaps: z.number(),\n numCautions: z.number(),\n numDrivers: z.number(),\n numLeadChanges: z.number(),\n officialSession: z.boolean(),\n startTime: z.string(),\n track: z.object({\n trackId: z.number(),\n trackName: z.string()\n }),\n winnerHelmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n winnerId: z.number(),\n winnerLicenseLevel: z.number(),\n winnerName: z.string()\n }))\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type ResultsGetResponse = z.infer<typeof ResultsGet>;\nexport type ResultsEventLogResponse = z.infer<typeof ResultsEventLog>;\nexport type ResultsLapChartDataResponse = z.infer<typeof ResultsLapChartData>;\nexport type ResultsLapDataResponse = z.infer<typeof ResultsLapData>;\nexport type ResultsSearchHostedResponse = z.infer<typeof ResultsSearchHosted>;\nexport type ResultsSearchSeriesResponse = z.infer<typeof ResultsSearchSeries>;\nexport type ResultsSeasonResultsResponse = z.infer<typeof ResultsSeasonResults>;\n\n// ---- Parameter Schemas ----\n\nconst ResultsGetParamsSchema = z.object({\n subsessionId: z.number(), // maps to: subsession_id\n includeLicenses: z.optional(z.boolean()), // maps to: include_licenses\n});\n\nconst ResultsEventLogParamsSchema = z.object({\n subsessionId: z.number(), // maps to: subsession_id\n simsessionNumber: z.number(), // The main event is 0; the preceding event is -1, and so on. // maps to: simsession_number\n});\n\nconst ResultsLapChartDataParamsSchema = z.object({\n subsessionId: z.number(), // maps to: subsession_id\n simsessionNumber: z.number(), // The main event is 0; the preceding event is -1, and so on. // maps to: simsession_number\n});\n\nconst ResultsLapDataParamsSchema = z.object({\n subsessionId: z.number(), // maps to: subsession_id\n simsessionNumber: z.number(), // The main event is 0; the preceding event is -1, and so on. // maps to: simsession_number\n custId: z.optional(z.number()), // Required if the subsession was a single-driver event. Optional for team events. If omitted for a team event then the laps driven by all the team's drivers will be included. // maps to: cust_id\n teamId: z.optional(z.number()), // Required if the subsession was a team event. // maps to: team_id\n});\n\nconst ResultsSearchHostedParamsSchema = z.object({\n startRangeBegin: z.optional(z.string()), // Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". // maps to: start_range_begin\n startRangeEnd: z.optional(z.string()), // ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. // maps to: start_range_end\n finishRangeBegin: z.optional(z.string()), // Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". // maps to: finish_range_begin\n finishRangeEnd: z.optional(z.string()), // ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. // maps to: finish_range_end\n custId: z.optional(z.number()), // The participant's customer ID. Ignored if team_id is supplied. // maps to: cust_id\n teamId: z.optional(z.number()), // The team ID to search for. Takes priority over cust_id if both are supplied. // maps to: team_id\n hostCustId: z.optional(z.number()), // The host's customer ID. // maps to: host_cust_id\n sessionName: z.optional(z.string()), // Part or all of the session's name. // maps to: session_name\n leagueId: z.optional(z.number()), // Include only results for the league with this ID. // maps to: league_id\n leagueSeasonId: z.optional(z.number()), // Include only results for the league season with this ID. // maps to: league_season_id\n carId: z.optional(z.number()), // One of the cars used by the session. // maps to: car_id\n trackId: z.optional(z.number()), // The ID of the track used by the session. // maps to: track_id\n categoryIds: z.optional(z.array(z.number())), // Track categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 // maps to: category_ids\n});\n\nconst ResultsSearchSeriesParamsSchema = z.object({\n seasonYear: z.optional(z.number()), // Required when using season_quarter. // maps to: season_year\n seasonQuarter: z.optional(z.number()), // Required when using season_year. // maps to: season_quarter\n startRangeBegin: z.optional(z.string()), // Session start times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". // maps to: start_range_begin\n startRangeEnd: z.optional(z.string()), // ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if start_range_begin is less than 90 days in the past. // maps to: start_range_end\n finishRangeBegin: z.optional(z.string()), // Session finish times. ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". // maps to: finish_range_begin\n finishRangeEnd: z.optional(z.string()), // ISO-8601 UTC time zero offset: \"2022-04-01T15:45Z\". Exclusive. May be omitted if finish_range_begin is less than 90 days in the past. // maps to: finish_range_end\n custId: z.optional(z.number()), // Include only sessions in which this customer participated. Ignored if team_id is supplied. // maps to: cust_id\n teamId: z.optional(z.number()), // Include only sessions in which this team participated. Takes priority over cust_id if both are supplied. // maps to: team_id\n seriesId: z.optional(z.number()), // Include only sessions for series with this ID. // maps to: series_id\n raceWeekNum: z.optional(z.number()), // Include only sessions with this race week number. // maps to: race_week_num\n officialOnly: z.optional(z.boolean()), // If true, include only sessions earning championship points. Defaults to all. // maps to: official_only\n eventTypes: z.optional(z.array(z.number())), // Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 // maps to: event_types\n categoryIds: z.optional(z.array(z.number())), // License categories to include in the search. Defaults to all. ?category_ids=1,2,3,4 // maps to: category_ids\n});\n\nconst ResultsSeasonResultsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n eventType: z.optional(z.number()), // Retrict to one event type: 2 - Practice; 3 - Qualify; 4 - Time Trial; 5 - Race // maps to: event_type\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\n// ---- Exported Parameter Types ----\n\nexport type ResultsGetParams = z.infer<typeof ResultsGetParamsSchema>;\nexport type ResultsEventLogParams = z.infer<typeof ResultsEventLogParamsSchema>;\nexport type ResultsLapChartDataParams = z.infer<typeof ResultsLapChartDataParamsSchema>;\nexport type ResultsLapDataParams = z.infer<typeof ResultsLapDataParamsSchema>;\nexport type ResultsSearchHostedParams = z.infer<typeof ResultsSearchHostedParamsSchema>;\nexport type ResultsSearchSeriesParams = z.infer<typeof ResultsSearchSeriesParamsSchema>;\nexport type ResultsSeasonResultsParams = z.infer<typeof ResultsSeasonResultsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n ResultsGetParamsSchema,\n ResultsEventLogParamsSchema,\n ResultsLapChartDataParamsSchema,\n ResultsLapDataParamsSchema,\n ResultsSearchHostedParamsSchema,\n ResultsSearchSeriesParamsSchema,\n ResultsSeasonResultsParamsSchema,\n ResultsGet,\n ResultsEventLog,\n ResultsLapChartData,\n ResultsLapData,\n ResultsSearchHosted,\n ResultsSearchSeries,\n ResultsSeasonResults,\n};","import type { IRacingClient } from \"../client\";\nimport type { ResultsGetParams, ResultsEventLogParams, ResultsLapChartDataParams, ResultsLapDataParams, ResultsSearchHostedParams, ResultsSearchSeriesParams, ResultsSeasonResultsParams, ResultsGetResponse, ResultsEventLogResponse, ResultsLapChartDataResponse, ResultsLapDataResponse, ResultsSearchHostedResponse, ResultsSearchSeriesResponse, ResultsSeasonResultsResponse } from \"./types\";\nimport { ResultsGet, ResultsEventLog, ResultsLapChartData, ResultsLapData, ResultsSearchHosted, ResultsSearchSeries, ResultsSeasonResults } from \"./types\";\n\nexport class ResultsService {\n constructor(private client: IRacingClient) {}\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/results/get\n * @sample results.get.json\n */\n async get(params: ResultsGetParams): Promise<ResultsGetResponse> {\n return this.client.get<ResultsGetResponse>(\"https://members-ng.iracing.com/data/results/get\", { params, schema: ResultsGet });\n }\n\n /**\n * event_log\n * @see https://members-ng.iracing.com/data/results/event_log\n * @sample results.event_log.json\n */\n async eventLog(params: ResultsEventLogParams): Promise<ResultsEventLogResponse> {\n return this.client.get<ResultsEventLogResponse>(\"https://members-ng.iracing.com/data/results/event_log\", { params, schema: ResultsEventLog });\n }\n\n /**\n * lap_chart_data\n * @see https://members-ng.iracing.com/data/results/lap_chart_data\n * @sample results.lap_chart_data.json\n */\n async lapChartData(params: ResultsLapChartDataParams): Promise<ResultsLapChartDataResponse> {\n return this.client.get<ResultsLapChartDataResponse>(\"https://members-ng.iracing.com/data/results/lap_chart_data\", { params, schema: ResultsLapChartData });\n }\n\n /**\n * lap_data\n * @see https://members-ng.iracing.com/data/results/lap_data\n * @sample results.lap_data_var3.json\n */\n async lapData(params: ResultsLapDataParams): Promise<ResultsLapDataResponse> {\n return this.client.get<ResultsLapDataResponse>(\"https://members-ng.iracing.com/data/results/lap_data\", { params, schema: ResultsLapData });\n }\n\n /**\n * search_hosted\n * @see https://members-ng.iracing.com/data/results/search_hosted\n * @sample results.search_hosted.json\n */\n async searchHosted(params: ResultsSearchHostedParams): Promise<ResultsSearchHostedResponse> {\n return this.client.get<ResultsSearchHostedResponse>(\"https://members-ng.iracing.com/data/results/search_hosted\", { params, schema: ResultsSearchHosted });\n }\n\n /**\n * search_series\n * @see https://members-ng.iracing.com/data/results/search_series\n * @sample results.search_series.json\n */\n async searchSeries(params: ResultsSearchSeriesParams): Promise<ResultsSearchSeriesResponse> {\n return this.client.get<ResultsSearchSeriesResponse>(\"https://members-ng.iracing.com/data/results/search_series\", { params, schema: ResultsSearchSeries });\n }\n\n /**\n * season_results\n * @see https://members-ng.iracing.com/data/results/season_results\n * @sample results.season_results.json\n */\n async seasonResults(params: ResultsSeasonResultsParams): Promise<ResultsSeasonResultsResponse> {\n return this.client.get<ResultsSeasonResultsResponse>(\"https://members-ng.iracing.com/data/results/season_results\", { params, schema: ResultsSeasonResults });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst SeasonList = z.object({\n seasonQuarter: z.number(),\n seasons: z.array(z.object({\n seasonId: z.number(),\n seriesId: z.number(),\n seasonName: z.string(),\n seriesName: z.string(),\n official: z.boolean(),\n seasonYear: z.number(),\n seasonQuarter: z.number(),\n licenseGroup: z.number(),\n fixedSetup: z.boolean(),\n driverChanges: z.boolean(),\n rookieSeason: z.optional(z.string())\n })),\n seasonYear: z.number()\n});\nconst SeasonRaceGuide = z.object({\n subscribed: z.boolean(),\n sessions: z.array(z.object({\n seasonId: z.number(),\n startTime: z.string(),\n superSession: z.boolean(),\n seriesId: z.number(),\n raceWeekNum: z.number(),\n endTime: z.string(),\n sessionId: z.optional(z.number()),\n entryCount: z.number()\n })),\n blockBeginTime: z.string(),\n blockEndTime: z.string(),\n success: z.boolean()\n});\nconst SeasonSpectatorSubsessionids = z.object({\n eventTypes: z.array(z.number()),\n success: z.boolean(),\n subsessionIds: z.array(z.number())\n});\nconst SeasonSpectatorSubsessionidsDetail = z.object({\n success: z.boolean(),\n seasonIds: z.array(z.number()),\n eventTypes: z.array(z.number()),\n subsessions: z.array(z.object({\n subsessionId: z.number(),\n sessionId: z.number(),\n seasonId: z.number(),\n startTime: z.string(),\n raceWeekNum: z.number(),\n eventType: z.number()\n }))\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type SeasonListResponse = z.infer<typeof SeasonList>;\nexport type SeasonRaceGuideResponse = z.infer<typeof SeasonRaceGuide>;\nexport type SeasonSpectatorSubsessionidsResponse = z.infer<typeof SeasonSpectatorSubsessionids>;\nexport type SeasonSpectatorSubsessionidsDetailResponse = z.infer<typeof SeasonSpectatorSubsessionidsDetail>;\n\n// ---- Parameter Schemas ----\n\nconst SeasonListParamsSchema = z.object({\n seasonYear: z.number(), // maps to: season_year\n seasonQuarter: z.number(), // maps to: season_quarter\n});\n\nconst SeasonRaceGuideParamsSchema = z.object({\n from: z.optional(z.string()), // ISO-8601 offset format. Defaults to the current time. Include sessions with start times up to 3 hours after this time. Times in the past will be rewritten to the current time.\n includeEndAfterFrom: z.optional(z.boolean()), // Include sessions which start before 'from' but end after. // maps to: include_end_after_from\n});\n\nconst SeasonSpectatorSubsessionidsParamsSchema = z.object({\n eventTypes: z.optional(z.array(z.number())), // Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 // maps to: event_types\n});\n\nconst SeasonSpectatorSubsessionidsDetailParamsSchema = z.object({\n eventTypes: z.optional(z.array(z.number())), // Types of events to include in the search. Defaults to all. ?event_types=2,3,4,5 // maps to: event_types\n seasonIds: z.optional(z.array(z.number())), // Seasons to include in the search. Defaults to all. ?season_ids=513,937 // maps to: season_ids\n});\n\n// ---- Exported Parameter Types ----\n\nexport type SeasonListParams = z.infer<typeof SeasonListParamsSchema>;\nexport type SeasonRaceGuideParams = z.infer<typeof SeasonRaceGuideParamsSchema>;\nexport type SeasonSpectatorSubsessionidsParams = z.infer<typeof SeasonSpectatorSubsessionidsParamsSchema>;\nexport type SeasonSpectatorSubsessionidsDetailParams = z.infer<typeof SeasonSpectatorSubsessionidsDetailParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n SeasonListParamsSchema,\n SeasonRaceGuideParamsSchema,\n SeasonSpectatorSubsessionidsParamsSchema,\n SeasonSpectatorSubsessionidsDetailParamsSchema,\n SeasonList,\n SeasonRaceGuide,\n SeasonSpectatorSubsessionids,\n SeasonSpectatorSubsessionidsDetail,\n};","import type { IRacingClient } from \"../client\";\nimport type { SeasonListParams, SeasonRaceGuideParams, SeasonSpectatorSubsessionidsParams, SeasonSpectatorSubsessionidsDetailParams, SeasonListResponse, SeasonRaceGuideResponse, SeasonSpectatorSubsessionidsResponse, SeasonSpectatorSubsessionidsDetailResponse } from \"./types\";\nimport { SeasonList, SeasonRaceGuide, SeasonSpectatorSubsessionids, SeasonSpectatorSubsessionidsDetail } from \"./types\";\n\nexport class SeasonService {\n constructor(private client: IRacingClient) {}\n\n /**\n * list\n * @see https://members-ng.iracing.com/data/season/list\n * @sample season.list.json\n */\n async list(params: SeasonListParams): Promise<SeasonListResponse> {\n return this.client.get<SeasonListResponse>(\"https://members-ng.iracing.com/data/season/list\", { params, schema: SeasonList });\n }\n\n /**\n * race_guide\n * @see https://members-ng.iracing.com/data/season/race_guide\n * @sample season.race_guide.json\n */\n async raceGuide(params: SeasonRaceGuideParams): Promise<SeasonRaceGuideResponse> {\n return this.client.get<SeasonRaceGuideResponse>(\"https://members-ng.iracing.com/data/season/race_guide\", { params, schema: SeasonRaceGuide });\n }\n\n /**\n * spectator_subsessionids\n * @see https://members-ng.iracing.com/data/season/spectator_subsessionids\n * @sample season.spectator_subsessionids.json\n */\n async spectatorSubsessionids(params: SeasonSpectatorSubsessionidsParams): Promise<SeasonSpectatorSubsessionidsResponse> {\n return this.client.get<SeasonSpectatorSubsessionidsResponse>(\"https://members-ng.iracing.com/data/season/spectator_subsessionids\", { params, schema: SeasonSpectatorSubsessionids });\n }\n\n /**\n * spectator_subsessionids_detail\n * @see https://members-ng.iracing.com/data/season/spectator_subsessionids_detail\n * @sample season.spectator_subsessionids_detail.json\n */\n async spectatorSubsessionidsDetail(params: SeasonSpectatorSubsessionidsDetailParams): Promise<SeasonSpectatorSubsessionidsDetailResponse> {\n return this.client.get<SeasonSpectatorSubsessionidsDetailResponse>(\"https://members-ng.iracing.com/data/season/spectator_subsessionids_detail\", { params, schema: SeasonSpectatorSubsessionidsDetail });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst SeriesAssets = z.record(z.string(), z.object({\n largeImage: z.optional(z.nullable(z.string())),\n logo: z.optional(z.nullable(z.string())),\n seriesCopy: z.optional(z.nullable(z.string())),\n seriesId: z.optional(z.nullable(z.number())),\n smallImage: z.optional(z.nullable(z.string()))\n}));\nconst SeriesGet = z.array(z.object({\n allowedLicenses: z.array(z.object({\n groupName: z.string(),\n licenseGroup: z.number(),\n maxLicenseLevel: z.number(),\n minLicenseLevel: z.number()\n })),\n category: z.string(),\n categoryId: z.number(),\n eligible: z.boolean(),\n firstSeason: z.object({\n seasonYear: z.number(),\n seasonQuarter: z.number()\n}),\n forumUrl: z.optional(z.string()),\n maxStarters: z.number(),\n minStarters: z.number(),\n ovalCautionType: z.number(),\n roadCautionType: z.number(),\n seriesId: z.number(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n searchFilters: z.optional(z.string())\n}));\nconst SeriesPastSeasons = z.object({\n success: z.boolean(),\n series: z.object({\n seriesId: z.number(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n categoryId: z.number(),\n category: z.string(),\n active: z.boolean(),\n official: z.boolean(),\n fixedSetup: z.boolean(),\n searchFilters: z.string(),\n logo: z.string(),\n licenseGroup: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n allowedLicenses: z.array(z.object({\n groupName: z.string(),\n licenseGroup: z.number(),\n maxLicenseLevel: z.number(),\n minLicenseLevel: z.number(),\n parentId: z.number()\n })),\n seasons: z.array(z.object({\n seasonId: z.number(),\n seriesId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n seasonQuarter: z.number(),\n active: z.boolean(),\n official: z.boolean(),\n driverChanges: z.boolean(),\n fixedSetup: z.boolean(),\n licenseGroup: z.number(),\n hasSupersessions: z.boolean(),\n carSwitching: z.boolean(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n carClasses: z.array(z.object({\n carClassId: z.number(),\n shortName: z.string(),\n name: z.string(),\n relativeSpeed: z.number()\n })),\n raceWeeks: z.array(z.object({\n seasonId: z.number(),\n raceWeekNum: z.number(),\n track: z.object({\n trackId: z.number(),\n trackName: z.string(),\n configName: z.optional(z.string())\n })\n }))\n }))\n }),\n seriesId: z.number()\n});\nconst SeriesSeasons = z.array(z.object({\n seasonId: z.number(),\n seasonName: z.string(),\n active: z.boolean(),\n allowedSeasonMembers: z.nullable(z.string()),\n carClassIds: z.array(z.number()),\n carSwitching: z.boolean(),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n cautionLapsDoNotCount: z.boolean(),\n complete: z.boolean(),\n connectionBlackFlag: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n consecCautionsSingleFile: z.boolean(),\n crossLicense: z.boolean(),\n distributedMatchmaking: z.boolean(),\n driverChangeRule: z.number(),\n driverChanges: z.boolean(),\n drops: z.number(),\n enablePitlaneCollisions: z.boolean(),\n fixedSetup: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n gridByClass: z.boolean(),\n hardcoreLevel: z.number(),\n hasSupersessions: z.boolean(),\n ignoreLicenseForPractice: z.boolean(),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n isHeatRacing: z.boolean(),\n licenseGroup: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n luckyDog: z.boolean(),\n maxTeamDrivers: z.number(),\n maxWeeks: z.number(),\n minTeamDrivers: z.number(),\n multiclass: z.boolean(),\n mustUseDiffTireTypesInRace: z.boolean(),\n nextRaceSession: z.nullable(z.string()),\n numFastTows: z.number(),\n numOptLaps: z.number(),\n official: z.boolean(),\n opDuration: z.number(),\n openPracticeSessionTypeId: z.number(),\n qualifierMustStartRace: z.boolean(),\n raceWeek: z.number(),\n raceWeekToMakeDivisions: z.number(),\n regUserCount: z.number(),\n regionCompetition: z.boolean(),\n restrictByMember: z.boolean(),\n restrictToCar: z.boolean(),\n restrictViewing: z.boolean(),\n scheduleDescription: z.string(),\n schedules: z.array(z.object({\n seasonId: z.number(),\n raceWeekNum: z.number(),\n carRestrictions: z.array(z.object({\n carId: z.number(),\n maxDryTireSets: z.number(),\n maxPctFuelFill: z.number(),\n powerAdjustPct: z.number(),\n raceSetupId: z.optional(z.number()),\n weightPenaltyKg: z.number(),\n qualSetupId: z.optional(z.number())\n })),\n category: z.string(),\n categoryId: z.number(),\n enablePitlaneCollisions: z.boolean(),\n fullCourseCautions: z.boolean(),\n practiceLength: z.optional(z.number()),\n qualAttached: z.boolean(),\n qualifyLaps: z.optional(z.number()),\n qualifyLength: z.optional(z.number()),\n raceLapLimit: z.nullable(z.number()),\n raceTimeDescriptors: z.array(z.object({\n repeating: z.boolean(),\n sessionMinutes: z.number(),\n sessionTimes: z.optional(z.array(z.string())),\n superSession: z.boolean(),\n dayOffset: z.optional(z.array(z.number())),\n firstSessionTime: z.optional(z.string()),\n repeatMinutes: z.optional(z.number()),\n startDate: z.optional(z.string())\n })),\n raceTimeLimit: z.nullable(z.number()),\n raceWeekCarClassIds: z.array(z.number()),\n raceWeekCars: z.array(z.object({\n carId: z.number(),\n carName: z.string(),\n carNameAbbreviated: z.string()\n })),\n restartType: z.string(),\n scheduleName: z.string(),\n seasonName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n shortParadeLap: z.boolean(),\n specialEventType: z.nullable(z.string()),\n startDate: z.string(),\n startType: z.string(),\n startZone: z.boolean(),\n track: z.object({\n category: z.string(),\n categoryId: z.number(),\n trackId: z.number(),\n trackName: z.string(),\n configName: z.optional(z.string())\n }),\n trackState: z.object({\n leaveMarbles: z.boolean(),\n practiceRubber: z.optional(z.number()),\n raceRubber: z.optional(z.number())\n }),\n warmupLength: z.optional(z.number()),\n weather: z.object({\n allowFog: z.optional(z.boolean()),\n forecastOptions: z.optional(z.object({\n allowFog: z.boolean(),\n forecastType: z.number(),\n precipitation: z.number(),\n skies: z.number(),\n stopPrecip: z.number(),\n temperature: z.number(),\n weatherSeed: z.number(),\n windDir: z.number(),\n windSpeed: z.number()\n })),\n precipOption: z.optional(z.number()),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n trackWater: z.optional(z.number()),\n version: z.number(),\n weatherSummary: z.optional(z.object({\n maxPrecipRate: z.number(),\n maxPrecipRateDesc: z.string(),\n precipChance: z.number(),\n skiesHigh: z.number(),\n skiesLow: z.number(),\n tempHigh: z.number(),\n tempLow: z.number(),\n tempUnits: z.number(),\n windDir: z.number(),\n windHigh: z.number(),\n windLow: z.number(),\n windUnits: z.number()\n })),\n weatherUrl: z.optional(z.string()),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number(),\n fog: z.optional(z.number()),\n type: z.optional(z.number()),\n weatherVarInitial: z.optional(z.number()),\n weatherVarOngoing: z.optional(z.number())\n }),\n weekEndTime: z.string()\n })),\n scoreAsCarclassid: z.optional(z.number()),\n seasonQuarter: z.number(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n sendToOpenPractice: z.boolean(),\n seriesId: z.number(),\n shortParadeLap: z.boolean(),\n startDate: z.string(),\n startOnQualTire: z.boolean(),\n startZone: z.boolean(),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n unsportConductRuleMode: z.number(),\n rookieSeason: z.optional(z.string()),\n regOpenMinutes: z.optional(z.number()),\n heatSesInfo: z.optional(z.object({\n consolationDeltaMaxFieldSize: z.number(),\n consolationDeltaSessionLaps: z.number(),\n consolationDeltaSessionLengthMinutes: z.number(),\n consolationFirstMaxFieldSize: z.number(),\n consolationFirstSessionLaps: z.number(),\n consolationFirstSessionLengthMinutes: z.number(),\n consolationNumPositionToInvert: z.number(),\n consolationNumToConsolation: z.number(),\n consolationNumToMain: z.number(),\n consolationRunAlways: z.boolean(),\n consolationScoresChampPoints: z.boolean(),\n created: z.string(),\n custId: z.number(),\n description: z.string(),\n heatCautionType: z.number(),\n heatInfoId: z.number(),\n heatInfoName: z.string(),\n heatLaps: z.number(),\n heatLengthMinutes: z.number(),\n heatMaxFieldSize: z.number(),\n heatNumFromEachToMain: z.number(),\n heatNumPositionToInvert: z.number(),\n heatScoresChampPoints: z.boolean(),\n heatSessionMinutesEstimate: z.number(),\n hidden: z.boolean(),\n mainLaps: z.number(),\n mainLengthMinutes: z.number(),\n mainMaxFieldSize: z.number(),\n mainNumPositionToInvert: z.number(),\n maxEntrants: z.number(),\n openPractice: z.boolean(),\n preMainPracticeLengthMinutes: z.number(),\n preQualNumToMain: z.number(),\n preQualPracticeLengthMinutes: z.number(),\n qualCautionType: z.number(),\n qualLaps: z.number(),\n qualLengthMinutes: z.number(),\n qualNumToMain: z.number(),\n qualOpenDelaySeconds: z.number(),\n qualScoresChampPoints: z.boolean(),\n qualScoring: z.number(),\n qualStyle: z.number(),\n raceStyle: z.number()\n}))\n}));\nconst SeriesSeasonList = z.object({\n seasons: z.array(z.object({\n seasonId: z.number(),\n seasonName: z.string(),\n active: z.boolean(),\n allowedSeasonMembers: z.nullable(z.string()),\n carClassIds: z.array(z.number()),\n carSwitching: z.boolean(),\n carTypes: z.array(z.object({\n carType: z.string()\n })),\n cautionLapsDoNotCount: z.boolean(),\n complete: z.boolean(),\n connectionBlackFlag: z.boolean(),\n consecCautionWithinNlaps: z.number(),\n consecCautionsSingleFile: z.boolean(),\n crossLicense: z.boolean(),\n currentWeekSched: z.object({\n raceWeekNum: z.number(),\n track: z.object({\n category: z.string(),\n categoryId: z.number(),\n trackId: z.number(),\n trackName: z.string(),\n configName: z.optional(z.string())\n }),\n carRestrictions: z.array(z.object({\n carId: z.number(),\n maxDryTireSets: z.number(),\n maxPctFuelFill: z.number(),\n powerAdjustPct: z.number(),\n raceSetupId: z.optional(z.number()),\n weightPenaltyKg: z.number(),\n qualSetupId: z.optional(z.number())\n })),\n raceLapLimit: z.nullable(z.number()),\n raceTimeLimit: z.nullable(z.number()),\n precipChance: z.optional(z.number()),\n startType: z.string(),\n categoryId: z.number()\n }),\n distributedMatchmaking: z.boolean(),\n driverChangeRule: z.number(),\n driverChanges: z.boolean(),\n drops: z.number(),\n elig: z.object({\n ownCar: z.boolean(),\n ownTrack: z.boolean()\n }),\n enablePitlaneCollisions: z.boolean(),\n fixedSetup: z.boolean(),\n greenWhiteCheckeredLimit: z.number(),\n gridByClass: z.boolean(),\n hardcoreLevel: z.number(),\n hasMpr: z.boolean(),\n hasSupersessions: z.boolean(),\n ignoreLicenseForPractice: z.boolean(),\n incidentLimit: z.number(),\n incidentWarnMode: z.number(),\n incidentWarnParam1: z.number(),\n incidentWarnParam2: z.number(),\n isHeatRacing: z.boolean(),\n licenseGroup: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n luckyDog: z.boolean(),\n maxTeamDrivers: z.number(),\n maxWeeks: z.number(),\n minTeamDrivers: z.number(),\n multiclass: z.boolean(),\n mustUseDiffTireTypesInRace: z.boolean(),\n numFastTows: z.number(),\n numOptLaps: z.number(),\n official: z.boolean(),\n opDuration: z.number(),\n openPracticeSessionTypeId: z.number(),\n qualifierMustStartRace: z.boolean(),\n raceWeek: z.number(),\n raceWeekCarClassIds: z.optional(z.array(z.object({\n raceWeekNum: z.number(),\n carClassIds: z.array(z.number())\n }))),\n raceWeekToMakeDivisions: z.number(),\n regUserCount: z.number(),\n regionCompetition: z.boolean(),\n restrictByMember: z.boolean(),\n restrictToCar: z.boolean(),\n restrictViewing: z.boolean(),\n scheduleDescription: z.string(),\n seasonQuarter: z.number(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n sendToOpenPractice: z.boolean(),\n seriesId: z.number(),\n shortParadeLap: z.boolean(),\n startDate: z.string(),\n startOnQualTire: z.boolean(),\n startZone: z.boolean(),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n unsportConductRuleMode: z.number(),\n rookieSeason: z.optional(z.string()),\n regOpenMinutes: z.optional(z.number()),\n heatSesInfo: z.optional(z.object({\n consolationDeltaMaxFieldSize: z.number(),\n consolationDeltaSessionLaps: z.number(),\n consolationDeltaSessionLengthMinutes: z.number(),\n consolationFirstMaxFieldSize: z.number(),\n consolationFirstSessionLaps: z.number(),\n consolationFirstSessionLengthMinutes: z.number(),\n consolationNumPositionToInvert: z.number(),\n consolationNumToConsolation: z.number(),\n consolationNumToMain: z.number(),\n consolationRunAlways: z.boolean(),\n consolationScoresChampPoints: z.boolean(),\n created: z.string(),\n custId: z.number(),\n description: z.string(),\n heatCautionType: z.number(),\n heatInfoId: z.number(),\n heatInfoName: z.string(),\n heatLaps: z.number(),\n heatLengthMinutes: z.number(),\n heatMaxFieldSize: z.number(),\n heatNumFromEachToMain: z.number(),\n heatNumPositionToInvert: z.number(),\n heatScoresChampPoints: z.boolean(),\n heatSessionMinutesEstimate: z.number(),\n hidden: z.boolean(),\n mainLaps: z.number(),\n mainLengthMinutes: z.number(),\n mainMaxFieldSize: z.number(),\n mainNumPositionToInvert: z.number(),\n maxEntrants: z.number(),\n openPractice: z.boolean(),\n preMainPracticeLengthMinutes: z.number(),\n preQualNumToMain: z.number(),\n preQualPracticeLengthMinutes: z.number(),\n qualCautionType: z.number(),\n qualLaps: z.number(),\n qualLengthMinutes: z.number(),\n qualNumToMain: z.number(),\n qualOpenDelaySeconds: z.number(),\n qualScoresChampPoints: z.boolean(),\n qualScoring: z.number(),\n qualStyle: z.number(),\n raceStyle: z.number()\n }))\n }))\n});\nconst SeriesSeasonSchedule = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n schedules: z.array(z.object({\n seasonId: z.number(),\n raceWeekNum: z.number(),\n carRestrictions: z.array(z.unknown()),\n category: z.string(),\n categoryId: z.number(),\n enablePitlaneCollisions: z.boolean(),\n eventOptions: z.object({\n allowWaveArounds: z.boolean(),\n cautionsEnabled: z.boolean(),\n qualifyScoringType: z.number(),\n restartType: z.number(),\n shortParadeLap: z.boolean(),\n singleFileConsecCautions: z.boolean(),\n standingStart: z.boolean(),\n startingGridType: z.number()\n }),\n eventSessions: z.array(z.object({\n laps: z.number(),\n minutes: z.number(),\n startTimeOffset: z.number(),\n type: z.number(),\n typeName: z.string(),\n unlimitedLaps: z.boolean(),\n unlimitedTime: z.boolean()\n })),\n fullCourseCautions: z.boolean(),\n practiceLength: z.number(),\n qualAttached: z.boolean(),\n qualTimeDescriptors: z.array(z.unknown()),\n qualifyLaps: z.number(),\n qualifyLength: z.number(),\n raceLapLimit: z.nullable(z.string()),\n raceTimeDescriptors: z.array(z.object({\n repeating: z.boolean(),\n sessionMinutes: z.number(),\n sessionTimes: z.array(z.string()),\n superSession: z.boolean()\n })),\n raceTimeLimit: z.number(),\n raceWeekCarClasses: z.array(z.unknown()),\n restartType: z.string(),\n scheduleName: z.string(),\n seasonName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n shortParadeLap: z.boolean(),\n specialEventType: z.nullable(z.string()),\n startDate: z.string(),\n startType: z.string(),\n startZone: z.boolean(),\n track: z.object({\n category: z.string(),\n categoryId: z.number(),\n configName: z.optional(z.string()),\n trackId: z.number(),\n trackName: z.string()\n }),\n trackState: z.object({\n leaveMarbles: z.boolean()\n }),\n warmupLength: z.number(),\n weather: z.object({\n fog: z.number(),\n relHumidity: z.number(),\n simulatedStartTime: z.string(),\n simulatedTimeMultiplier: z.number(),\n simulatedTimeOffsets: z.array(z.number()),\n skies: z.number(),\n tempUnits: z.number(),\n tempValue: z.number(),\n timeOfDay: z.number(),\n type: z.number(),\n version: z.number(),\n weatherVarInitial: z.number(),\n weatherVarOngoing: z.number(),\n windDir: z.number(),\n windUnits: z.number(),\n windValue: z.number()\n }),\n weekEndTime: z.string()\n }))\n});\nconst SeriesStatsSeries = z.array(z.object({\n seriesId: z.number(),\n seriesName: z.string(),\n seriesShortName: z.string(),\n categoryId: z.number(),\n category: z.string(),\n active: z.boolean(),\n official: z.boolean(),\n fixedSetup: z.boolean(),\n logo: z.nullable(z.string()),\n licenseGroup: z.number(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n allowedLicenses: z.array(z.object({\n groupName: z.string(),\n licenseGroup: z.number(),\n maxLicenseLevel: z.number(),\n minLicenseLevel: z.number(),\n parentId: z.number()\n })),\n seasons: z.array(z.object({\n seasonId: z.number(),\n seriesId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seasonYear: z.number(),\n seasonQuarter: z.number(),\n active: z.boolean(),\n official: z.boolean(),\n driverChanges: z.boolean(),\n fixedSetup: z.boolean(),\n licenseGroup: z.number(),\n hasSupersessions: z.boolean(),\n carSwitching: z.boolean(),\n licenseGroupTypes: z.array(z.object({\n licenseGroupType: z.number()\n })),\n carClasses: z.array(z.object({\n carClassId: z.number(),\n shortName: z.string(),\n name: z.string(),\n relativeSpeed: z.number()\n })),\n raceWeeks: z.array(z.object({\n seasonId: z.number(),\n raceWeekNum: z.number(),\n track: z.object({\n configName: z.optional(z.string()),\n trackId: z.number(),\n trackName: z.string()\n })\n }))\n })),\n searchFilters: z.optional(z.string())\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type SeriesAssetsResponse = z.infer<typeof SeriesAssets>;\nexport type SeriesGetResponse = z.infer<typeof SeriesGet>;\nexport type SeriesPastSeasonsResponse = z.infer<typeof SeriesPastSeasons>;\nexport type SeriesSeasonsResponse = z.infer<typeof SeriesSeasons>;\nexport type SeriesSeasonListResponse = z.infer<typeof SeriesSeasonList>;\nexport type SeriesSeasonScheduleResponse = z.infer<typeof SeriesSeasonSchedule>;\nexport type SeriesStatsSeriesResponse = z.infer<typeof SeriesStatsSeries>;\n\n// ---- Parameter Schemas ----\n\nconst SeriesAssetsParamsSchema = z.object({\n});\n\nconst SeriesGetParamsSchema = z.object({\n});\n\nconst SeriesPastSeasonsParamsSchema = z.object({\n seriesId: z.number(), // maps to: series_id\n});\n\nconst SeriesSeasonsParamsSchema = z.object({\n includeSeries: z.optional(z.boolean()), // maps to: include_series\n seasonYear: z.optional(z.number()), // To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. // maps to: season_year\n seasonQuarter: z.optional(z.number()), // To look up past seasons use both a season_year and season_quarter. Without both, the active seasons are returned. // maps to: season_quarter\n});\n\nconst SeriesSeasonListParamsSchema = z.object({\n includeSeries: z.optional(z.boolean()), // maps to: include_series\n seasonYear: z.optional(z.number()), // maps to: season_year\n seasonQuarter: z.optional(z.number()), // maps to: season_quarter\n});\n\nconst SeriesSeasonScheduleParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n});\n\nconst SeriesStatsSeriesParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type SeriesAssetsParams = z.infer<typeof SeriesAssetsParamsSchema>;\nexport type SeriesGetParams = z.infer<typeof SeriesGetParamsSchema>;\nexport type SeriesPastSeasonsParams = z.infer<typeof SeriesPastSeasonsParamsSchema>;\nexport type SeriesSeasonsParams = z.infer<typeof SeriesSeasonsParamsSchema>;\nexport type SeriesSeasonListParams = z.infer<typeof SeriesSeasonListParamsSchema>;\nexport type SeriesSeasonScheduleParams = z.infer<typeof SeriesSeasonScheduleParamsSchema>;\nexport type SeriesStatsSeriesParams = z.infer<typeof SeriesStatsSeriesParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n SeriesAssetsParamsSchema,\n SeriesGetParamsSchema,\n SeriesPastSeasonsParamsSchema,\n SeriesSeasonsParamsSchema,\n SeriesSeasonListParamsSchema,\n SeriesSeasonScheduleParamsSchema,\n SeriesStatsSeriesParamsSchema,\n SeriesAssets,\n SeriesGet,\n SeriesPastSeasons,\n SeriesSeasons,\n SeriesSeasonList,\n SeriesSeasonSchedule,\n SeriesStatsSeries,\n};","import type { IRacingClient } from \"../client\";\nimport type { SeriesPastSeasonsParams, SeriesSeasonsParams, SeriesSeasonListParams, SeriesSeasonScheduleParams, SeriesAssetsResponse, SeriesGetResponse, SeriesPastSeasonsResponse, SeriesSeasonsResponse, SeriesSeasonListResponse, SeriesSeasonScheduleResponse, SeriesStatsSeriesResponse } from \"./types\";\nimport { SeriesAssets, SeriesGet, SeriesPastSeasons, SeriesSeasons, SeriesSeasonList, SeriesSeasonSchedule, SeriesStatsSeries } from \"./types\";\n\nexport class SeriesService {\n constructor(private client: IRacingClient) {}\n\n /**\n * assets\n * @see https://members-ng.iracing.com/data/series/assets\n * @sample series.assets.json\n */\n async assets(): Promise<SeriesAssetsResponse> {\n return this.client.get<SeriesAssetsResponse>(\"https://members-ng.iracing.com/data/series/assets\", { schema: SeriesAssets });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/series/get\n * @sample series.get.json\n */\n async get(): Promise<SeriesGetResponse> {\n return this.client.get<SeriesGetResponse>(\"https://members-ng.iracing.com/data/series/get\", { schema: SeriesGet });\n }\n\n /**\n * past_seasons\n * @see https://members-ng.iracing.com/data/series/past_seasons\n * @sample series.past_seasons.json\n */\n async pastSeasons(params: SeriesPastSeasonsParams): Promise<SeriesPastSeasonsResponse> {\n return this.client.get<SeriesPastSeasonsResponse>(\"https://members-ng.iracing.com/data/series/past_seasons\", { params, schema: SeriesPastSeasons });\n }\n\n /**\n * seasons\n * @see https://members-ng.iracing.com/data/series/seasons\n * @sample series.seasons.json\n */\n async seasons(params: SeriesSeasonsParams): Promise<SeriesSeasonsResponse> {\n return this.client.get<SeriesSeasonsResponse>(\"https://members-ng.iracing.com/data/series/seasons\", { params, schema: SeriesSeasons });\n }\n\n /**\n * season_list\n * @see https://members-ng.iracing.com/data/series/season_list\n * @sample series.season_list.json\n */\n async seasonList(params: SeriesSeasonListParams): Promise<SeriesSeasonListResponse> {\n return this.client.get<SeriesSeasonListResponse>(\"https://members-ng.iracing.com/data/series/season_list\", { params, schema: SeriesSeasonList });\n }\n\n /**\n * season_schedule\n * @see https://members-ng.iracing.com/data/series/season_schedule\n * @sample series.season_schedule.json\n */\n async seasonSchedule(params: SeriesSeasonScheduleParams): Promise<SeriesSeasonScheduleResponse> {\n return this.client.get<SeriesSeasonScheduleResponse>(\"https://members-ng.iracing.com/data/series/season_schedule\", { params, schema: SeriesSeasonSchedule });\n }\n\n /**\n * stats_series\n * @see https://members-ng.iracing.com/data/series/stats_series\n * @sample series.stats_series.json\n */\n async statsSeries(): Promise<SeriesStatsSeriesResponse> {\n return this.client.get<SeriesStatsSeriesResponse>(\"https://members-ng.iracing.com/data/series/stats_series\", { schema: SeriesStatsSeries });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst StatsMemberBests = z.object({\n carsDriven: z.array(z.object({\n carId: z.number(),\n carName: z.string()\n })),\n bests: z.array(z.object({\n track: z.object({\n configName: z.string(),\n trackId: z.number(),\n trackName: z.string()\n }),\n eventType: z.string(),\n bestLapTime: z.number(),\n subsessionId: z.number(),\n endTime: z.string(),\n seasonYear: z.number(),\n seasonQuarter: z.number()\n })),\n custId: z.number(),\n carId: z.number()\n});\nconst StatsMemberCareer = z.object({\n stats: z.array(z.object({\n categoryId: z.number(),\n category: z.string(),\n starts: z.number(),\n wins: z.number(),\n top5: z.number(),\n poles: z.number(),\n avgStartPosition: z.number(),\n avgFinishPosition: z.number(),\n laps: z.number(),\n lapsLed: z.number(),\n avgIncidents: z.number(),\n avgPoints: z.number(),\n winPercentage: z.number(),\n top5Percentage: z.number(),\n lapsLedPercentage: z.number(),\n polesPercentage: z.number()\n })),\n custId: z.number()\n});\nconst StatsMemberDivision = z.object({\n division: z.number(),\n projected: z.boolean(),\n eventType: z.number(),\n success: z.boolean(),\n seasonId: z.number()\n});\nconst StatsMemberRecap = z.object({\n year: z.number(),\n stats: z.object({\n starts: z.number(),\n wins: z.number(),\n top5: z.number(),\n avgStartPosition: z.number(),\n avgFinishPosition: z.number(),\n laps: z.number(),\n lapsLed: z.number(),\n favoriteCar: z.nullable(z.object({\n carId: z.number(),\n carName: z.string(),\n carImage: z.string()\n })),\n favoriteTrack: z.nullable(z.object({\n configName: z.string(),\n trackId: z.number(),\n trackLogo: z.string(),\n trackName: z.string()\n }))\n }),\n success: z.boolean(),\n season: z.nullable(z.number()),\n custId: z.number()\n});\nconst StatsMemberRecentRaces = z.object({\n races: z.array(z.object({\n seasonId: z.number(),\n seriesId: z.number(),\n seriesName: z.string(),\n carId: z.number(),\n carClassId: z.number(),\n livery: z.object({\n carId: z.number(),\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string()\n }),\n licenseLevel: z.number(),\n sessionStartTime: z.string(),\n winnerGroupId: z.number(),\n winnerName: z.string(),\n winnerHelmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n winnerLicenseLevel: z.number(),\n startPosition: z.number(),\n finishPosition: z.number(),\n qualifyingTime: z.number(),\n laps: z.number(),\n lapsLed: z.number(),\n incidents: z.number(),\n points: z.number(),\n strengthOfField: z.number(),\n subsessionId: z.number(),\n oldSubLevel: z.number(),\n newSubLevel: z.number(),\n oldiRating: z.number(),\n newiRating: z.number(),\n track: z.object({\n trackId: z.number(),\n trackName: z.string()\n }),\n dropRace: z.boolean(),\n seasonYear: z.number(),\n seasonQuarter: z.number(),\n raceWeekNum: z.number()\n })),\n custId: z.number()\n});\nconst StatsMemberSummary = z.object({\n thisYear: z.object({\n numOfficialSessions: z.number(),\n numLeagueSessions: z.number(),\n numOfficialWins: z.number(),\n numLeagueWins: z.number()\n }),\n custId: z.number()\n});\nconst StatsMemberYearly = z.object({\n stats: z.array(z.object({\n categoryId: z.number(),\n category: z.string(),\n starts: z.number(),\n wins: z.number(),\n top5: z.number(),\n poles: z.number(),\n avgStartPosition: z.number(),\n avgFinishPosition: z.number(),\n laps: z.number(),\n lapsLed: z.number(),\n avgIncidents: z.number(),\n avgPoints: z.number(),\n winPercentage: z.number(),\n top5Percentage: z.number(),\n lapsLedPercentage: z.number(),\n year: z.number(),\n polesPercentage: z.number()\n })),\n custId: z.number()\n});\nconst StatsSeasonDriverStandings = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonSupersessionStandings = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.unknown()),\n chunkFileNames: z.array(z.unknown())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonTeamStandings = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonTtStandings = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.string()),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonTtResults = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.string()),\n chunkFileNames: z.array(z.string())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsSeasonQualifyResults = z.object({\n success: z.boolean(),\n seasonId: z.number(),\n seasonName: z.string(),\n seasonShortName: z.string(),\n seriesId: z.number(),\n seriesName: z.string(),\n carClassId: z.number(),\n raceWeekNum: z.number(),\n division: z.number(),\n customerRank: z.number(),\n chunkInfo: z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.nullable(z.unknown()),\n chunkFileNames: z.array(z.unknown())\n }),\n lastUpdated: z.string(),\n csvUrl: z.string()\n});\nconst StatsWorldRecords = z.object({\n type: z.string(),\n data: z.object({\n success: z.boolean(),\n carId: z.number(),\n trackId: z.number(),\n chunkInfo: z.nullable(z.object({\n chunkSize: z.number(),\n numChunks: z.number(),\n rows: z.number(),\n baseDownloadUrl: z.string(),\n chunkFileNames: z.array(z.string())\n })),\n lastUpdated: z.string(),\n seasonYear: z.optional(z.number()),\n seasonQuarter: z.optional(z.number())\n })\n});\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type StatsMemberBestsResponse = z.infer<typeof StatsMemberBests>;\nexport type StatsMemberCareerResponse = z.infer<typeof StatsMemberCareer>;\nexport type StatsMemberDivisionResponse = z.infer<typeof StatsMemberDivision>;\nexport type StatsMemberRecapResponse = z.infer<typeof StatsMemberRecap>;\nexport type StatsMemberRecentRacesResponse = z.infer<typeof StatsMemberRecentRaces>;\nexport type StatsMemberSummaryResponse = z.infer<typeof StatsMemberSummary>;\nexport type StatsMemberYearlyResponse = z.infer<typeof StatsMemberYearly>;\nexport type StatsSeasonDriverStandingsResponse = z.infer<typeof StatsSeasonDriverStandings>;\nexport type StatsSeasonSupersessionStandingsResponse = z.infer<typeof StatsSeasonSupersessionStandings>;\nexport type StatsSeasonTeamStandingsResponse = z.infer<typeof StatsSeasonTeamStandings>;\nexport type StatsSeasonTtStandingsResponse = z.infer<typeof StatsSeasonTtStandings>;\nexport type StatsSeasonTtResultsResponse = z.infer<typeof StatsSeasonTtResults>;\nexport type StatsSeasonQualifyResultsResponse = z.infer<typeof StatsSeasonQualifyResults>;\nexport type StatsWorldRecordsResponse = z.infer<typeof StatsWorldRecords>;\n\n// ---- Parameter Schemas ----\n\nconst StatsMemberBestsParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n carId: z.optional(z.number()), // First call should exclude car_id; use cars_driven list in return for subsequent calls. // maps to: car_id\n});\n\nconst StatsMemberCareerParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst StatsMemberDivisionParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n eventType: z.number(), // The event type code for the division type: 4 - Time Trial; 5 - Race // maps to: event_type\n});\n\nconst StatsMemberRecapParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n year: z.optional(z.number()), // Season year; if not supplied the current calendar year (UTC) is used.\n season: z.optional(z.number()), // Season (quarter) within the year; if not supplied the recap will be fore the entire year.\n});\n\nconst StatsMemberRecentRacesParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst StatsMemberSummaryParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst StatsMemberYearlyParamsSchema = z.object({\n custId: z.optional(z.number()), // Defaults to the authenticated member. // maps to: cust_id\n});\n\nconst StatsSeasonDriverStandingsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\nconst StatsSeasonSupersessionStandingsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\nconst StatsSeasonTeamStandingsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\nconst StatsSeasonTtStandingsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n raceWeekNum: z.optional(z.number()), // The first race week of a season is 0. // maps to: race_week_num\n});\n\nconst StatsSeasonTtResultsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n raceWeekNum: z.number(), // The first race week of a season is 0. // maps to: race_week_num\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n});\n\nconst StatsSeasonQualifyResultsParamsSchema = z.object({\n seasonId: z.number(), // maps to: season_id\n carClassId: z.number(), // maps to: car_class_id\n raceWeekNum: z.number(), // The first race week of a season is 0. // maps to: race_week_num\n division: z.optional(z.number()), // Divisions are 0-based: 0 is Division 1, 10 is Rookie. See /data/constants/divisons for more information. Defaults to all.\n});\n\nconst StatsWorldRecordsParamsSchema = z.object({\n carId: z.number(), // maps to: car_id\n trackId: z.number(), // maps to: track_id\n seasonYear: z.optional(z.number()), // Limit best times to a given year. // maps to: season_year\n seasonQuarter: z.optional(z.number()), // Limit best times to a given quarter; only applicable when year is used. // maps to: season_quarter\n});\n\n// ---- Exported Parameter Types ----\n\nexport type StatsMemberBestsParams = z.infer<typeof StatsMemberBestsParamsSchema>;\nexport type StatsMemberCareerParams = z.infer<typeof StatsMemberCareerParamsSchema>;\nexport type StatsMemberDivisionParams = z.infer<typeof StatsMemberDivisionParamsSchema>;\nexport type StatsMemberRecapParams = z.infer<typeof StatsMemberRecapParamsSchema>;\nexport type StatsMemberRecentRacesParams = z.infer<typeof StatsMemberRecentRacesParamsSchema>;\nexport type StatsMemberSummaryParams = z.infer<typeof StatsMemberSummaryParamsSchema>;\nexport type StatsMemberYearlyParams = z.infer<typeof StatsMemberYearlyParamsSchema>;\nexport type StatsSeasonDriverStandingsParams = z.infer<typeof StatsSeasonDriverStandingsParamsSchema>;\nexport type StatsSeasonSupersessionStandingsParams = z.infer<typeof StatsSeasonSupersessionStandingsParamsSchema>;\nexport type StatsSeasonTeamStandingsParams = z.infer<typeof StatsSeasonTeamStandingsParamsSchema>;\nexport type StatsSeasonTtStandingsParams = z.infer<typeof StatsSeasonTtStandingsParamsSchema>;\nexport type StatsSeasonTtResultsParams = z.infer<typeof StatsSeasonTtResultsParamsSchema>;\nexport type StatsSeasonQualifyResultsParams = z.infer<typeof StatsSeasonQualifyResultsParamsSchema>;\nexport type StatsWorldRecordsParams = z.infer<typeof StatsWorldRecordsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n StatsMemberBestsParamsSchema,\n StatsMemberCareerParamsSchema,\n StatsMemberDivisionParamsSchema,\n StatsMemberRecapParamsSchema,\n StatsMemberRecentRacesParamsSchema,\n StatsMemberSummaryParamsSchema,\n StatsMemberYearlyParamsSchema,\n StatsSeasonDriverStandingsParamsSchema,\n StatsSeasonSupersessionStandingsParamsSchema,\n StatsSeasonTeamStandingsParamsSchema,\n StatsSeasonTtStandingsParamsSchema,\n StatsSeasonTtResultsParamsSchema,\n StatsSeasonQualifyResultsParamsSchema,\n StatsWorldRecordsParamsSchema,\n StatsMemberBests,\n StatsMemberCareer,\n StatsMemberDivision,\n StatsMemberRecap,\n StatsMemberRecentRaces,\n StatsMemberSummary,\n StatsMemberYearly,\n StatsSeasonDriverStandings,\n StatsSeasonSupersessionStandings,\n StatsSeasonTeamStandings,\n StatsSeasonTtStandings,\n StatsSeasonTtResults,\n StatsSeasonQualifyResults,\n StatsWorldRecords,\n};","import type { IRacingClient } from \"../client\";\nimport type { StatsMemberBestsParams, StatsMemberCareerParams, StatsMemberDivisionParams, StatsMemberRecapParams, StatsMemberRecentRacesParams, StatsMemberSummaryParams, StatsMemberYearlyParams, StatsSeasonDriverStandingsParams, StatsSeasonSupersessionStandingsParams, StatsSeasonTeamStandingsParams, StatsSeasonTtStandingsParams, StatsSeasonTtResultsParams, StatsSeasonQualifyResultsParams, StatsWorldRecordsParams, StatsMemberBestsResponse, StatsMemberCareerResponse, StatsMemberDivisionResponse, StatsMemberRecapResponse, StatsMemberRecentRacesResponse, StatsMemberSummaryResponse, StatsMemberYearlyResponse, StatsSeasonDriverStandingsResponse, StatsSeasonSupersessionStandingsResponse, StatsSeasonTeamStandingsResponse, StatsSeasonTtStandingsResponse, StatsSeasonTtResultsResponse, StatsSeasonQualifyResultsResponse, StatsWorldRecordsResponse } from \"./types\";\nimport { StatsMemberBests, StatsMemberCareer, StatsMemberDivision, StatsMemberRecap, StatsMemberRecentRaces, StatsMemberSummary, StatsMemberYearly, StatsSeasonDriverStandings, StatsSeasonSupersessionStandings, StatsSeasonTeamStandings, StatsSeasonTtStandings, StatsSeasonTtResults, StatsSeasonQualifyResults, StatsWorldRecords } from \"./types\";\n\nexport class StatsService {\n constructor(private client: IRacingClient) {}\n\n /**\n * member_bests\n * @see https://members-ng.iracing.com/data/stats/member_bests\n * @sample stats.member_bests.json\n */\n async memberBests(params: StatsMemberBestsParams): Promise<StatsMemberBestsResponse> {\n return this.client.get<StatsMemberBestsResponse>(\"https://members-ng.iracing.com/data/stats/member_bests\", { params, schema: StatsMemberBests });\n }\n\n /**\n * member_career\n * @see https://members-ng.iracing.com/data/stats/member_career\n * @sample stats.member_career.json\n */\n async memberCareer(params: StatsMemberCareerParams): Promise<StatsMemberCareerResponse> {\n return this.client.get<StatsMemberCareerResponse>(\"https://members-ng.iracing.com/data/stats/member_career\", { params, schema: StatsMemberCareer });\n }\n\n /**\n * member_division\n * @see https://members-ng.iracing.com/data/stats/member_division\n * @sample stats.member_division.json\n */\n async memberDivision(params: StatsMemberDivisionParams): Promise<StatsMemberDivisionResponse> {\n return this.client.get<StatsMemberDivisionResponse>(\"https://members-ng.iracing.com/data/stats/member_division\", { params, schema: StatsMemberDivision });\n }\n\n /**\n * member_recap\n * @see https://members-ng.iracing.com/data/stats/member_recap\n * @sample stats.member_recap.json\n */\n async memberRecap(params: StatsMemberRecapParams): Promise<StatsMemberRecapResponse> {\n return this.client.get<StatsMemberRecapResponse>(\"https://members-ng.iracing.com/data/stats/member_recap\", { params, schema: StatsMemberRecap });\n }\n\n /**\n * member_recent_races\n * @see https://members-ng.iracing.com/data/stats/member_recent_races\n * @sample stats.member_recent_races.json\n */\n async memberRecentRaces(params: StatsMemberRecentRacesParams): Promise<StatsMemberRecentRacesResponse> {\n return this.client.get<StatsMemberRecentRacesResponse>(\"https://members-ng.iracing.com/data/stats/member_recent_races\", { params, schema: StatsMemberRecentRaces });\n }\n\n /**\n * member_summary\n * @see https://members-ng.iracing.com/data/stats/member_summary\n * @sample stats.member_summary.json\n */\n async memberSummary(params: StatsMemberSummaryParams): Promise<StatsMemberSummaryResponse> {\n return this.client.get<StatsMemberSummaryResponse>(\"https://members-ng.iracing.com/data/stats/member_summary\", { params, schema: StatsMemberSummary });\n }\n\n /**\n * member_yearly\n * @see https://members-ng.iracing.com/data/stats/member_yearly\n * @sample stats.member_yearly.json\n */\n async memberYearly(params: StatsMemberYearlyParams): Promise<StatsMemberYearlyResponse> {\n return this.client.get<StatsMemberYearlyResponse>(\"https://members-ng.iracing.com/data/stats/member_yearly\", { params, schema: StatsMemberYearly });\n }\n\n /**\n * season_driver_standings\n * @see https://members-ng.iracing.com/data/stats/season_driver_standings\n * @sample stats.season_driver_standings.json\n */\n async seasonDriverStandings(params: StatsSeasonDriverStandingsParams): Promise<StatsSeasonDriverStandingsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_driver_standings', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonDriverStandingsResponse>(\"https://members-ng.iracing.com/data/stats/season_driver_standings\", { params, schema: StatsSeasonDriverStandings });\n }\n\n /**\n * season_supersession_standings\n * @see https://members-ng.iracing.com/data/stats/season_supersession_standings\n * @sample stats.season_supersession_standings.json\n */\n async seasonSupersessionStandings(params: StatsSeasonSupersessionStandingsParams): Promise<StatsSeasonSupersessionStandingsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_supersession_standings', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonSupersessionStandingsResponse>(\"https://members-ng.iracing.com/data/stats/season_supersession_standings\", { params, schema: StatsSeasonSupersessionStandings });\n }\n\n /**\n * season_team_standings\n * @see https://members-ng.iracing.com/data/stats/season_team_standings\n * @sample stats.season_team_standings.json\n */\n async seasonTeamStandings(params: StatsSeasonTeamStandingsParams): Promise<StatsSeasonTeamStandingsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_team_standings', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonTeamStandingsResponse>(\"https://members-ng.iracing.com/data/stats/season_team_standings\", { params, schema: StatsSeasonTeamStandings });\n }\n\n /**\n * season_tt_standings\n * @see https://members-ng.iracing.com/data/stats/season_tt_standings\n * @sample stats.season_tt_standings.json\n */\n async seasonTtStandings(params: StatsSeasonTtStandingsParams): Promise<StatsSeasonTtStandingsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_tt_standings', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonTtStandingsResponse>(\"https://members-ng.iracing.com/data/stats/season_tt_standings\", { params, schema: StatsSeasonTtStandings });\n }\n\n /**\n * season_tt_results\n * @see https://members-ng.iracing.com/data/stats/season_tt_results\n * @sample stats.season_tt_results.json\n */\n async seasonTtResults(params: StatsSeasonTtResultsParams): Promise<StatsSeasonTtResultsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_tt_results', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonTtResultsResponse>(\"https://members-ng.iracing.com/data/stats/season_tt_results\", { params, schema: StatsSeasonTtResults });\n }\n\n /**\n * season_qualify_results\n * @see https://members-ng.iracing.com/data/stats/season_qualify_results\n * @sample stats.season_qualify_results.json\n */\n async seasonQualifyResults(params: StatsSeasonQualifyResultsParams): Promise<StatsSeasonQualifyResultsResponse> {\n await this.client.ensureSeasonCarClassPair('stats.season_qualify_results', params.seasonId, params.carClassId);\n return this.client.get<StatsSeasonQualifyResultsResponse>(\"https://members-ng.iracing.com/data/stats/season_qualify_results\", { params, schema: StatsSeasonQualifyResults });\n }\n\n /**\n * world_records\n * @see https://members-ng.iracing.com/data/stats/world_records\n * @sample stats.world_records.json\n */\n async worldRecords(params: StatsWorldRecordsParams): Promise<StatsWorldRecordsResponse> {\n return this.client.get<StatsWorldRecordsResponse>(\"https://members-ng.iracing.com/data/stats/world_records\", { params, schema: StatsWorldRecords });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst TeamGet = z.object({\n teamId: z.number(),\n ownerId: z.number(),\n teamName: z.string(),\n created: z.string(),\n hidden: z.boolean(),\n message: z.string(),\n about: z.string(),\n url: z.string(),\n rosterCount: z.number(),\n recruiting: z.boolean(),\n privateWall: z.boolean(),\n isDefault: z.boolean(),\n isOwner: z.boolean(),\n isAdmin: z.boolean(),\n suit: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string()\n }),\n owner: z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n owner: z.boolean(),\n admin: z.boolean()\n }),\n tags: z.object({\n categorized: z.array(z.unknown()),\n notCategorized: z.array(z.unknown())\n }),\n teamApplications: z.array(z.unknown()),\n pendingRequests: z.array(z.unknown()),\n isMember: z.boolean(),\n isApplicant: z.boolean(),\n isInvite: z.boolean(),\n isIgnored: z.boolean(),\n roster: z.array(z.object({\n custId: z.number(),\n displayName: z.string(),\n helmet: z.object({\n pattern: z.number(),\n color1: z.string(),\n color2: z.string(),\n color3: z.string(),\n faceType: z.number(),\n helmetType: z.number()\n }),\n owner: z.boolean(),\n admin: z.boolean()\n }))\n});\nconst TeamMembership = z.array(z.object({\n teamId: z.number(),\n teamName: z.string(),\n owner: z.boolean(),\n admin: z.boolean(),\n defaultTeam: z.boolean()\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type TeamGetResponse = z.infer<typeof TeamGet>;\nexport type TeamMembershipResponse = z.infer<typeof TeamMembership>;\n\n// ---- Parameter Schemas ----\n\nconst TeamGetParamsSchema = z.object({\n teamId: z.number(), // maps to: team_id\n includeLicenses: z.optional(z.boolean()), // For faster responses, only request when necessary. // maps to: include_licenses\n});\n\nconst TeamMembershipParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type TeamGetParams = z.infer<typeof TeamGetParamsSchema>;\nexport type TeamMembershipParams = z.infer<typeof TeamMembershipParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n TeamGetParamsSchema,\n TeamMembershipParamsSchema,\n TeamGet,\n TeamMembership,\n};","import type { IRacingClient } from \"../client\";\nimport type { TeamGetParams, TeamGetResponse, TeamMembershipResponse } from \"./types\";\nimport { TeamGet, TeamMembership } from \"./types\";\n\nexport class TeamService {\n constructor(private client: IRacingClient) {}\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/team/get\n * @sample team.get.json\n */\n async get(params: TeamGetParams): Promise<TeamGetResponse> {\n return this.client.get<TeamGetResponse>(\"https://members-ng.iracing.com/data/team/get\", { params, schema: TeamGet });\n }\n\n /**\n * membership\n * @see https://members-ng.iracing.com/data/team/membership\n * @sample team.membership.json\n */\n async membership(): Promise<TeamMembershipResponse> {\n return this.client.get<TeamMembershipResponse>(\"https://members-ng.iracing.com/data/team/membership\", { schema: TeamMembership });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Response Schemas ----\n\nconst TimeAttackMemberSeasonResults = z.array(z.unknown());\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type TimeAttackMemberSeasonResultsResponse = z.infer<typeof TimeAttackMemberSeasonResults>;\n\n// ---- Parameter Schemas ----\n\nconst TimeAttackMemberSeasonResultsParamsSchema = z.object({\n taCompSeasonId: z.number(), // maps to: ta_comp_season_id\n});\n\n// ---- Exported Parameter Types ----\n\nexport type TimeAttackMemberSeasonResultsParams = z.infer<typeof TimeAttackMemberSeasonResultsParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n TimeAttackMemberSeasonResultsParamsSchema,\n TimeAttackMemberSeasonResults,\n};","import type { IRacingClient } from \"../client\";\nimport type { TimeAttackMemberSeasonResultsParams, TimeAttackMemberSeasonResultsResponse } from \"./types\";\nimport { TimeAttackMemberSeasonResults } from \"./types\";\n\nexport class TimeAttackService {\n constructor(private client: IRacingClient) {}\n\n /**\n * member_season_results\n * @see https://members-ng.iracing.com/data/time_attack/member_season_results\n * @sample time_attack.member_season_results.json\n */\n async memberSeasonResults(params: TimeAttackMemberSeasonResultsParams): Promise<TimeAttackMemberSeasonResultsResponse> {\n return this.client.get<TimeAttackMemberSeasonResultsResponse>(\"https://members-ng.iracing.com/data/time_attack/member_season_results\", { params, schema: TimeAttackMemberSeasonResults });\n }\n\n}","import * as z from \"zod/mini\";\n\n// ---- Common Schemas ----\n\nconst TrackMapLayersSchema = z.object({\n background: z.string(),\n inactive: z.string(),\n active: z.string(),\n pitroad: z.string(),\n startFinish: z.string(), // maps from: start-finish\n turns: z.string()\n});\n\n// ---- Response Schemas ----\n\nconst TrackAssets = z.record(z.string(), z.object({\n coordinates: z.optional(z.nullable(z.string())),\n detailCopy: z.optional(z.nullable(z.string())),\n detailTechspecsCopy: z.optional(z.nullable(z.string())),\n detailVideo: z.optional(z.nullable(z.string())),\n folder: z.optional(z.nullable(z.string())),\n galleryImages: z.optional(z.nullable(z.string())),\n galleryPrefix: z.optional(z.nullable(z.string())),\n largeImage: z.optional(z.nullable(z.string())),\n logo: z.optional(z.nullable(z.string())),\n north: z.optional(z.nullable(z.string())),\n numSvgImages: z.optional(z.nullable(z.number())),\n smallImage: z.optional(z.nullable(z.string())),\n trackId: z.optional(z.nullable(z.number())),\n trackMap: z.optional(z.nullable(z.string())),\n trackMapLayers: z.optional(z.nullable(z.object({\n background: z.string(),\n inactive: z.string(),\n active: z.string(),\n pitroad: z.string(),\n startFinish: z.string(),\n turns: z.string()\n })))\n}));\nconst TrackGet = z.array(z.object({\n aiEnabled: z.boolean(),\n allowPitlaneCollisions: z.boolean(),\n allowRollingStart: z.boolean(),\n allowStandingStart: z.boolean(),\n awardExempt: z.boolean(),\n category: z.string(),\n categoryId: z.number(),\n closes: z.string(),\n configName: z.optional(z.string()),\n cornersPerLap: z.number(),\n created: z.string(),\n firstSale: z.string(),\n folder: z.string(),\n freeWithSubscription: z.boolean(),\n fullyLit: z.boolean(),\n gridStalls: z.number(),\n hasOptPath: z.boolean(),\n hasShortParadeLap: z.boolean(),\n hasStartZone: z.boolean(),\n hasSvgMap: z.boolean(),\n isDirt: z.boolean(),\n isOval: z.boolean(),\n isPsPurchasable: z.boolean(),\n lapScoring: z.number(),\n latitude: z.number(),\n location: z.string(),\n logo: z.string(),\n longitude: z.number(),\n maxCars: z.number(),\n nightLighting: z.boolean(),\n numberPitstalls: z.number(),\n opens: z.string(),\n packageId: z.number(),\n pitRoadSpeedLimit: z.optional(z.number()),\n price: z.number(),\n priority: z.number(),\n purchasable: z.boolean(),\n qualifyLaps: z.number(),\n rainEnabled: z.boolean(),\n restartOnLeft: z.boolean(),\n retired: z.boolean(),\n searchFilters: z.string(),\n siteUrl: z.optional(z.string()),\n sku: z.number(),\n smallImage: z.string(),\n soloLaps: z.number(),\n startOnLeft: z.boolean(),\n supportsGripCompound: z.boolean(),\n techTrack: z.boolean(),\n timeZone: z.string(),\n trackConfigLength: z.number(),\n trackDirpath: z.string(),\n trackId: z.number(),\n trackName: z.string(),\n trackType: z.number(),\n trackTypeText: z.string(),\n trackTypes: z.array(z.object({\n trackType: z.string()\n })),\n priceDisplay: z.optional(z.string()),\n nominalLapTime: z.optional(z.number()),\n banking: z.optional(z.string())\n}));\n\n// ---- Response Types (inferred from schemas) ----\n\nexport type TrackAssetsResponse = z.infer<typeof TrackAssets>;\nexport type TrackGetResponse = z.infer<typeof TrackGet>;\n\n// ---- Parameter Schemas ----\n\nconst TrackAssetsParamsSchema = z.object({\n});\n\nconst TrackGetParamsSchema = z.object({\n});\n\n// ---- Exported Parameter Types ----\n\nexport type TrackAssetsParams = z.infer<typeof TrackAssetsParamsSchema>;\nexport type TrackGetParams = z.infer<typeof TrackGetParamsSchema>;\n\n// ---- Exported Schemas ----\n\nexport {\n TrackAssetsParamsSchema,\n TrackGetParamsSchema,\n TrackAssets,\n TrackGet,\n};","import type { IRacingClient } from \"../client\";\nimport type { TrackAssetsResponse, TrackGetResponse } from \"./types\";\nimport { TrackAssets, TrackGet } from \"./types\";\n\nexport class TrackService {\n constructor(private client: IRacingClient) {}\n\n /**\n * assets\n * @see https://members-ng.iracing.com/data/track/assets\n * @sample track.assets.json\n */\n async assets(): Promise<TrackAssetsResponse> {\n return this.client.get<TrackAssetsResponse>(\"https://members-ng.iracing.com/data/track/assets\", { schema: TrackAssets });\n }\n\n /**\n * get\n * @see https://members-ng.iracing.com/data/track/get\n * @sample track.get.json\n */\n async get(): Promise<TrackGetResponse> {\n return this.client.get<TrackGetResponse>(\"https://members-ng.iracing.com/data/track/get\", { schema: TrackGet });\n }\n\n}","/* AUTO-GENERATED — do not edit */\n\nimport { IRacingClient, IRacingError, type IRacingClientOptions, type IRacingErrorOptions } from \"./client\";\nimport { CarService } from \"./car/service\";\nimport { CarclassService } from \"./carclass/service\";\nimport { ConstantsService } from \"./constants/service\";\nimport { DriverStatsByCategoryService } from \"./driver-stats-by-category/service\";\nimport { HostedService } from \"./hosted/service\";\nimport { LeagueService } from \"./league/service\";\nimport { LookupService } from \"./lookup/service\";\nimport { MemberService } from \"./member/service\";\nimport { ResultsService } from \"./results/service\";\nimport { SeasonService } from \"./season/service\";\nimport { SeriesService } from \"./series/service\";\nimport { StatsService } from \"./stats/service\";\nimport { TeamService } from \"./team/service\";\nimport { TimeAttackService } from \"./time-attack/service\";\nimport { TrackService } from \"./track/service\";\n\n// Re-export client\nexport { IRacingClient, IRacingError, type IRacingClientOptions, type IRacingErrorOptions };\n\n// Re-export http-client-toolkit types\nexport type { HttpClientStores } from '@http-client-toolkit/core';\n\n// Re-export auth types and helpers\nexport type {\n AuthConfig,\n PasswordLimitedAuth,\n AuthorizationCodeAuth,\n TokenResponse,\n OnTokenRefresh,\n FetchLike,\n} from \"./auth\";\n\nexport {\n OAuthError,\n TokenRefreshError,\n buildAuthorizationUrl,\n exchangeAuthorizationCode,\n} from \"./auth\";\n\nexport * from \"./car/types\";\nexport * from \"./carclass/types\";\nexport * from \"./constants/types\";\nexport * from \"./driver-stats-by-category/types\";\nexport * from \"./hosted/types\";\nexport * from \"./league/types\";\nexport * from \"./lookup/types\";\nexport * from \"./member/types\";\nexport * from \"./results/types\";\nexport * from \"./season/types\";\nexport * from \"./series/types\";\nexport * from \"./stats/types\";\nexport * from \"./team/types\";\nexport * from \"./time-attack/types\";\nexport * from \"./track/types\";\n\nexport class IRacingDataClient {\n private client: IRacingClient;\n\n public car: CarService;\n public carclass: CarclassService;\n public constants: ConstantsService;\n public driverStatsByCategory: DriverStatsByCategoryService;\n public hosted: HostedService;\n public league: LeagueService;\n public lookup: LookupService;\n public member: MemberService;\n public results: ResultsService;\n public season: SeasonService;\n public series: SeriesService;\n public stats: StatsService;\n public team: TeamService;\n public timeAttack: TimeAttackService;\n public track: TrackService;\n\n constructor(opts: IRacingClientOptions) {\n this.client = new IRacingClient(opts);\n\n this.car = new CarService(this.client);\n this.carclass = new CarclassService(this.client);\n this.constants = new ConstantsService(this.client);\n this.driverStatsByCategory = new DriverStatsByCategoryService(this.client);\n this.hosted = new HostedService(this.client);\n this.league = new LeagueService(this.client);\n this.lookup = new LookupService(this.client);\n this.member = new MemberService(this.client);\n this.results = new ResultsService(this.client);\n this.season = new SeasonService(this.client);\n this.series = new SeriesService(this.client);\n this.stats = new StatsService(this.client);\n this.team = new TeamService(this.client);\n this.timeAttack = new TimeAttackService(this.client);\n this.track = new TrackService(this.client);\n }\n}"]}