@burdenoff/mcp-libs 2026.825.2 → 2026.825.3

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.
Files changed (121) hide show
  1. package/dist/{chunk-YOSQUY3M.js → chunk-BSNL65PZ.js} +2 -2
  2. package/dist/{chunk-YOSQUY3M.js.map → chunk-BSNL65PZ.js.map} +1 -1
  3. package/dist/{chunk-RHWHUY5Y.js → chunk-QQYJVKJE.js} +3 -3
  4. package/dist/{chunk-RHWHUY5Y.js.map → chunk-QQYJVKJE.js.map} +1 -1
  5. package/dist/core/index.cjs.map +1 -1
  6. package/dist/core/index.js +1 -1
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/modules/adaptercloud/index.cjs.map +1 -1
  10. package/dist/modules/adaptercloud/index.js +1 -1
  11. package/dist/modules/artistrybase/index.cjs.map +1 -1
  12. package/dist/modules/artistrybase/index.js +1 -1
  13. package/dist/modules/assethandler/index.cjs.map +1 -1
  14. package/dist/modules/assethandler/index.js +1 -1
  15. package/dist/modules/atheletebridge/index.cjs.map +1 -1
  16. package/dist/modules/atheletebridge/index.js +1 -1
  17. package/dist/modules/auth/index.cjs.map +1 -1
  18. package/dist/modules/auth/index.js +3 -3
  19. package/dist/modules/billing/index.cjs.map +1 -1
  20. package/dist/modules/billing/index.js +1 -1
  21. package/dist/modules/brainyrich/index.cjs +13 -3
  22. package/dist/modules/brainyrich/index.cjs.map +1 -1
  23. package/dist/modules/brainyrich/index.js +14 -4
  24. package/dist/modules/brainyrich/index.js.map +1 -1
  25. package/dist/modules/buildmyiq/index.cjs.map +1 -1
  26. package/dist/modules/buildmyiq/index.js +1 -1
  27. package/dist/modules/channels/index.cjs.map +1 -1
  28. package/dist/modules/channels/index.js +1 -1
  29. package/dist/modules/collabkin/index.cjs.map +1 -1
  30. package/dist/modules/collabkin/index.js +1 -1
  31. package/dist/modules/comradecircle/index.cjs.map +1 -1
  32. package/dist/modules/comradecircle/index.js +1 -1
  33. package/dist/modules/conversations/index.cjs.map +1 -1
  34. package/dist/modules/conversations/index.js +1 -1
  35. package/dist/modules/coolandlovely/index.cjs.map +1 -1
  36. package/dist/modules/coolandlovely/index.js +1 -1
  37. package/dist/modules/cosmicintersection/index.cjs.map +1 -1
  38. package/dist/modules/cosmicintersection/index.js +1 -1
  39. package/dist/modules/crewfoundry/index.cjs.map +1 -1
  40. package/dist/modules/crewfoundry/index.js +1 -1
  41. package/dist/modules/devportal/index.cjs.map +1 -1
  42. package/dist/modules/devportal/index.js +1 -1
  43. package/dist/modules/ecoimpacthub/index.cjs.map +1 -1
  44. package/dist/modules/ecoimpacthub/index.js +1 -1
  45. package/dist/modules/eventfullymanaged/index.cjs.map +1 -1
  46. package/dist/modules/eventfullymanaged/index.js +1 -1
  47. package/dist/modules/export/index.cjs.map +1 -1
  48. package/dist/modules/export/index.js +1 -1
  49. package/dist/modules/files/index.cjs.map +1 -1
  50. package/dist/modules/files/index.js +1 -1
  51. package/dist/modules/ggnomad/index.cjs.map +1 -1
  52. package/dist/modules/ggnomad/index.js +1 -1
  53. package/dist/modules/govcitizenhub/index.cjs.map +1 -1
  54. package/dist/modules/govcitizenhub/index.js +1 -1
  55. package/dist/modules/groups/index.cjs.map +1 -1
  56. package/dist/modules/groups/index.js +1 -1
  57. package/dist/modules/headshotmarketing/index.cjs.map +1 -1
  58. package/dist/modules/headshotmarketing/index.js +1 -1
  59. package/dist/modules/health/index.cjs.map +1 -1
  60. package/dist/modules/health/index.js +1 -1
  61. package/dist/modules/hookmovies/index.cjs.map +1 -1
  62. package/dist/modules/hookmovies/index.js +1 -1
  63. package/dist/modules/housingvista/index.cjs.map +1 -1
  64. package/dist/modules/housingvista/index.js +1 -1
  65. package/dist/modules/integrations/index.cjs.map +1 -1
  66. package/dist/modules/integrations/index.js +1 -1
  67. package/dist/modules/intelwatchtower/index.cjs.map +1 -1
  68. package/dist/modules/intelwatchtower/index.js +1 -1
  69. package/dist/modules/kadaikodi/index.cjs.map +1 -1
  70. package/dist/modules/kadaikodi/index.js +1 -1
  71. package/dist/modules/labsofscience/index.cjs.map +1 -1
  72. package/dist/modules/labsofscience/index.js +1 -1
  73. package/dist/modules/manufacturedops/index.cjs.map +1 -1
  74. package/dist/modules/manufacturedops/index.js +1 -1
  75. package/dist/modules/movethewheels/index.cjs.map +1 -1
  76. package/dist/modules/movethewheels/index.js +1 -1
  77. package/dist/modules/mybodyshield/index.cjs.map +1 -1
  78. package/dist/modules/mybodyshield/index.js +1 -1
  79. package/dist/modules/notifications/index.cjs.map +1 -1
  80. package/dist/modules/notifications/index.js +1 -1
  81. package/dist/modules/organizations/index.cjs.map +1 -1
  82. package/dist/modules/organizations/index.js +1 -1
  83. package/dist/modules/planmagnet/index.cjs.map +1 -1
  84. package/dist/modules/planmagnet/index.js +1 -1
  85. package/dist/modules/products/index.cjs.map +1 -1
  86. package/dist/modules/products/index.js +1 -1
  87. package/dist/modules/proserviceworld/index.cjs.map +1 -1
  88. package/dist/modules/proserviceworld/index.js +1 -1
  89. package/dist/modules/rbac/index.cjs.map +1 -1
  90. package/dist/modules/rbac/index.js +1 -1
  91. package/dist/modules/sandbox/index.cjs.map +1 -1
  92. package/dist/modules/sandbox/index.js +1 -1
  93. package/dist/modules/scheduler/index.cjs.map +1 -1
  94. package/dist/modules/scheduler/index.js +1 -1
  95. package/dist/modules/security/index.cjs.map +1 -1
  96. package/dist/modules/security/index.js +1 -1
  97. package/dist/modules/semanticfed/index.cjs.map +1 -1
  98. package/dist/modules/semanticfed/index.js +1 -1
  99. package/dist/modules/store/index.cjs.map +1 -1
  100. package/dist/modules/store/index.js +1 -1
  101. package/dist/modules/subscriberbot/index.cjs.map +1 -1
  102. package/dist/modules/subscriberbot/index.js +1 -1
  103. package/dist/modules/support/index.cjs.map +1 -1
  104. package/dist/modules/support/index.js +1 -1
  105. package/dist/modules/tags/index.cjs.map +1 -1
  106. package/dist/modules/tags/index.js +1 -1
  107. package/dist/modules/technospam/index.cjs.map +1 -1
  108. package/dist/modules/technospam/index.js +1 -1
  109. package/dist/modules/theculturepost/index.cjs.map +1 -1
  110. package/dist/modules/theculturepost/index.js +1 -1
  111. package/dist/modules/theglobalfuel/index.cjs.map +1 -1
  112. package/dist/modules/theglobalfuel/index.js +1 -1
  113. package/dist/modules/timecampus/index.cjs.map +1 -1
  114. package/dist/modules/timecampus/index.js +1 -1
  115. package/dist/modules/tours/index.cjs.map +1 -1
  116. package/dist/modules/tours/index.js +1 -1
  117. package/dist/modules/vibecontrols/index.cjs.map +1 -1
  118. package/dist/modules/vibecontrols/index.js +2 -2
  119. package/dist/modules/workspaces/index.cjs.map +1 -1
  120. package/dist/modules/workspaces/index.js +1 -1
  121. package/package.json +28 -15
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/errors.ts","../../../src/core/tool-name.ts","../../../src/core/result.ts","../../../src/modules/eventfullymanaged/operations.ts","../../../src/modules/eventfullymanaged/tools/shared.ts","../../../src/modules/eventfullymanaged/tools/events.ts","../../../src/modules/eventfullymanaged/tools/venues.ts","../../../src/modules/eventfullymanaged/tools/agenda.ts","../../../src/modules/eventfullymanaged/tools/attendees.ts","../../../src/modules/eventfullymanaged/tools/ticketing.ts","../../../src/modules/eventfullymanaged/tools/sponsorship.ts","../../../src/modules/eventfullymanaged/tools/checkin.ts","../../../src/modules/eventfullymanaged/tools/networking.ts","../../../src/modules/eventfullymanaged/tools/content.ts","../../../src/modules/eventfullymanaged/resources.ts","../../../src/modules/eventfullymanaged/prompts.ts","../../../src/modules/eventfullymanaged/index.ts"],"names":["z"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * Error classes for MCP SDK.\n *\n * Modules MUST throw these instead of throwing raw Errors. The registerTool\n * wrapper in result.ts catches and maps them to MCP-protocol-compliant\n * `{ isError: true, content: [...] }` responses.\n *\n * Throwing past the wrapper to the protocol surfaces as JSON-RPC -32603 to\n * the client and is a protocol bug.\n */\n\nexport class McpUserError extends Error {\n public readonly hint: string | undefined;\n\n constructor(message: string, opts?: { hint?: string }) {\n super(message);\n this.name = 'McpUserError';\n this.hint = opts?.hint;\n }\n}\n\nexport class McpAuthError extends McpUserError {\n constructor(message: string, opts?: { hint?: string }) {\n super(message, {\n hint: opts?.hint ?? 'Run the auth_login tool to authenticate.',\n });\n this.name = 'McpAuthError';\n }\n}\n\nexport class McpInternalError extends Error {\n public override readonly cause: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = 'McpInternalError';\n this.cause = cause;\n }\n}\n","/**\n * Tool / resource / prompt naming helpers.\n *\n * Mandatory product prefix avoids collisions when Claude Desktop runs\n * multiple MCP servers concurrently (typical setup is ~6).\n *\n * Tool names are capped at 63 characters — Claude Desktop pre-1.x\n * truncated at 64 in some versions.\n */\n\nimport { McpInternalError } from './errors.js';\n\nconst MAX_TOOL_NAME_LENGTH = 63;\n\nfunction assertSafeName(name: string, kind: 'tool' | 'resource' | 'prompt'): string {\n if (kind === 'tool' && name.length > MAX_TOOL_NAME_LENGTH) {\n throw new McpInternalError(\n `Tool name '${name}' exceeds ${MAX_TOOL_NAME_LENGTH} characters (some MCP clients truncate at 64).`,\n );\n }\n return name;\n}\n\n/**\n * Build a tool name. Format: `<productName>_<...parts>` (snake_case).\n * Example: mcpToolName('vibecontrols', 'vibes', 'list') -> 'vibecontrols_vibes_list'\n */\nexport function mcpToolName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpToolName: productName is required');\n }\n const name = [productName, ...parts].filter(Boolean).join('_');\n return assertSafeName(name, 'tool');\n}\n\n/**\n * Build a resource URI. Format: `<productName>://<...parts>`.\n * Example: mcpResourceUri('vibecontrols', 'schema') -> 'vibecontrols://schema'\n */\nexport function mcpResourceUri(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpResourceUri: productName is required');\n }\n return `${productName}://${parts.filter(Boolean).join('/')}`;\n}\n\n/**\n * Build a prompt name. Format: `<productName>-<...parts>` (kebab-case).\n * Example: mcpPromptName('vibecontrols', 'setup') -> 'vibecontrols-setup'\n */\nexport function mcpPromptName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpPromptName: productName is required');\n }\n return [productName, ...parts].filter(Boolean).join('-');\n}\n\nexport const TOOL_NAME_LIMIT = MAX_TOOL_NAME_LENGTH;\n\n/**\n * Name-based hint heuristics for MCP `annotations` (readOnlyHint /\n * destructiveHint). Used by tool-governance.ts to auto-fill annotations for\n * the fleet of product modules that call `server.registerTool` directly\n * (bypassing the `registerTool()` core helper) and so never set them\n * explicitly today (BOFF-3903). Deliberately conservative — matched against\n * whole `_`-delimited segments so e.g. `timeentries_delete` and\n * `pomodoro_delete_goal` match, but a hypothetical `undeletable_check`\n * would not.\n *\n * A module can always override the inference by passing an explicit\n * `annotations` object to `registerTool()` / `server.registerTool()`.\n */\nconst DESTRUCTIVE_NAME_SEGMENT = /(?:^|_)delete(?:_|$)/i;\nconst READ_ONLY_NAME_SEGMENT = /(?:^|_)(?:list|get|search|check|read|count|stats|by_date)(?:_|$)/i;\n\n/** True when a tool name looks destructive (irreversibly deletes data) by naming convention. */\nexport function inferDestructiveHint(toolName: string): boolean {\n return DESTRUCTIVE_NAME_SEGMENT.test(toolName);\n}\n\n/**\n * True when a tool name looks read-only by naming convention. Never true for\n * a name that also looks destructive (a tool can't be both).\n */\nexport function inferReadOnlyHint(toolName: string): boolean {\n return !inferDestructiveHint(toolName) && READ_ONLY_NAME_SEGMENT.test(toolName);\n}\n","/**\n * MCP tool result helpers + central handler.\n *\n * Modules NEVER call server.registerTool directly — they use registerTool()\n * from this module so the central try/catch wraps the handler and:\n * - maps thrown McpUserError / McpAuthError / McpInternalError to\n * MCP-protocol-compliant `{ isError: true, content: [...] }` shapes\n * - threads `_meta.progressToken` into ctx.progress for long ops\n * - emits a structured log line on every error\n * - never leaks `cause` from McpInternalError to the client\n *\n * This is the analog of cli-sdk's createProgram() central error handler.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { ZodRawShape } from 'zod';\nimport type { McpContext } from './context.js';\nimport { McpAuthError, McpInternalError, McpUserError } from './errors.js';\nimport type { ToolAnnotations } from './tool-governance.js';\n\nexport interface ToolTextContent {\n type: 'text';\n text: string;\n [k: string]: unknown;\n}\n\nexport interface ToolResult {\n content: ToolTextContent[];\n isError?: boolean;\n structuredContent?: Record<string, unknown>;\n [k: string]: unknown;\n}\n\nexport interface ToolMeta {\n progressToken?: string | number;\n}\n\n/**\n * Build a successful tool result with JSON content (pretty-printed).\n */\nexport function jsonResult(data: unknown, structured?: Record<string, unknown>): ToolResult {\n const result: ToolResult = {\n content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],\n };\n if (structured !== undefined) {\n result.structuredContent = structured;\n }\n return result;\n}\n\n/**\n * Build a successful tool result with plain text content.\n */\nexport function textResult(text: string): ToolResult {\n return { content: [{ type: 'text', text }] };\n}\n\n/**\n * Build an error tool result. Honors MCP's `{ isError: true, content }` shape.\n * Optional hint is appended on a new line so the LLM can react.\n */\nexport function errorResult(message: string, hint?: string): ToolResult {\n const text = hint ? `${message}\\n\\nHint: ${hint}` : message;\n return { content: [{ type: 'text', text }], isError: true };\n}\n\nexport interface ToolMetadata {\n title: string;\n description: string;\n inputSchema?: ZodRawShape;\n /**\n * Explicit MCP annotations (readOnlyHint / destructiveHint / ...). Optional\n * — when omitted, `wrapServerWithToolGovernance` (applied centrally in\n * `createMcpServer`) infers them from the tool name. Set this to override\n * the inference for a tool whose name doesn't match the naming convention.\n */\n annotations?: ToolAnnotations;\n}\n\nexport type ToolHandler<TArgs = Record<string, unknown>> = (\n args: TArgs,\n ctx: McpContext,\n meta: ToolMeta,\n) => Promise<unknown>;\n\n/**\n * Register a tool with the central error wrapper.\n *\n * The handler returns a plain value or void. The wrapper:\n * - wraps non-undefined returns in jsonResult()\n * - if the value already looks like a ToolResult (has `content`), passes through\n * - catches McpAuthError / McpUserError / McpInternalError / generic Error\n * - logs every error via ctx.logger.error\n */\nexport function registerTool<TArgs extends Record<string, unknown>>(\n server: McpServer,\n ctx: McpContext,\n name: string,\n metadata: ToolMetadata,\n handler: ToolHandler<TArgs>,\n): void {\n const sdkConfig = {\n title: metadata.title,\n description: metadata.description,\n ...(metadata.inputSchema ? { inputSchema: metadata.inputSchema } : {}),\n ...(metadata.annotations ? { annotations: metadata.annotations } : {}),\n };\n\n // The MCP SDK's registerTool signature is `(name, config, handler)`. The\n // handler arity depends on whether inputSchema is present (1-arg without,\n // 2-arg with). We accept a unified handler shape and dispatch at runtime.\n // The SDK's typing is strict and conditional on the inputSchema generic;\n // bypass with a cast since runtime acceptance is unconditional.\n const wrapped = async (...callbackArgs: unknown[]): Promise<ToolResult> => {\n const hasArgs = callbackArgs.length === 2;\n const args = (hasArgs ? callbackArgs[0] : {}) as TArgs;\n const extra = (hasArgs ? callbackArgs[1] : callbackArgs[0]) as\n | { _meta?: { progressToken?: string | number } }\n | undefined;\n\n const progressToken = extra?._meta?.progressToken;\n const meta: ToolMeta = progressToken !== undefined ? { progressToken } : {};\n\n try {\n const result = await handler(args, ctx, meta);\n if (isToolResult(result)) return result;\n if (result === undefined) return textResult('OK');\n return jsonResult(result);\n } catch (error) {\n return mapErrorToResult(error, ctx, name);\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (server as any).registerTool(name, sdkConfig, wrapped);\n}\n\nfunction isToolResult(value: unknown): value is ToolResult {\n return (\n !!value &&\n typeof value === 'object' &&\n 'content' in value &&\n Array.isArray((value as ToolResult).content)\n );\n}\n\nfunction mapErrorToResult(error: unknown, ctx: McpContext, toolName: string): ToolResult {\n if (error instanceof McpAuthError) {\n ctx.logger.warn(`${toolName}: auth required`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpUserError) {\n ctx.logger.info(`${toolName}: user error`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpInternalError) {\n ctx.logger.error(`${toolName}: internal error`, {\n message: error.message,\n cause: stringifyCause(error.cause),\n });\n return errorResult(`Internal error in ${toolName}.`);\n }\n const message = error instanceof Error ? error.message : String(error);\n ctx.logger.error(`${toolName}: unhandled error`, { message });\n return errorResult(`${toolName}: ${message}`);\n}\n\nfunction stringifyCause(cause: unknown): string | undefined {\n if (cause === undefined || cause === null) return undefined;\n if (cause instanceof Error) return cause.message;\n try {\n return JSON.stringify(cause);\n } catch {\n return String(cause);\n }\n}\n","/**\n * Centralized GraphQL operations for the Eventfullymanaged MCP module.\n *\n * Eventfullymanaged is the end-to-end event-management platform (future-products\n * ecosystem): events, venues + floor plans, agenda sessions + speakers,\n * attendees + registrations + ticketing + promo codes, sponsors + exhibitors +\n * leads, check-in stations + records, networking (profiles, matches, meetings),\n * and operational content (announcements, automation rules, communication\n * campaigns, workflow templates, analytics snapshots) plus a dashboard summary.\n *\n * Backend subgraph: ~/products/wspace/eventfullymanaged/wspace-eventfullymanaged-svc/\n * (Hive service name `eventfullymanaged`). All operations run against the\n * WORKSPACE gateway. Workspace scoping is carried by the gateway headers\n * (x-workspace-id) issued by the auth module; the root queries also accept an\n * OPTIONAL `workspaceId` filter, threaded through only when explicitly provided.\n *\n * The backend deliberately reuses one `*Input` type for both create and update\n * of each entity, so the create and update tools share the same required-field\n * contract (update additionally takes `id`). The five \"simple entity\" surfaces\n * (announcements, automation rules, communication campaigns, workflow templates,\n * analytics snapshots) are upserted via `EventfullyManagedSimpleEntityInput` and\n * listed/returned as `EventfullyManagedSimpleEntity`.\n *\n * Uses template-string interpolation (not gql tagged fragments) to match the\n * canonical kadaikodi/crewfoundry modules' operations files.\n */\n\n// ---------------------------------------------------------------------------\n// Field fragments\n// ---------------------------------------------------------------------------\n\nexport const EVENT_FIELDS = `\n id name description type status visibility timezone startAt endAt capacity\n metadata workspaceId createdAt updatedAt\n`;\n\nexport const VENUE_FIELDS = `\n id name description addressLine1 city state country postalCode capacity\n amenities status openingHours pricing metadata workspaceId createdAt updatedAt\n`;\n\nexport const FLOOR_PLAN_FIELDS = `\n id name venueId imageUrl dimensions interactiveAreas workspaceId\n createdAt updatedAt\n`;\n\nexport const EVENT_SESSION_FIELDS = `\n id eventId title description sessionType track status startsAt endsAt capacity\n venueId metadata workspaceId createdAt updatedAt\n`;\n\nexport const SPEAKER_FIELDS = `\n id fullName title organization bio email phone avatarUrl socialLinks\n workspaceId createdAt updatedAt\n`;\n\nexport const ATTENDEE_FIELDS = `\n id eventId fullName email phone company role tags profile metadata\n workspaceId createdAt updatedAt\n`;\n\nexport const REGISTRATION_FIELDS = `\n id eventId attendeeId ticketTypeId status quantity totalAmount currency\n registeredAt checkedInAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const TICKET_TYPE_FIELDS = `\n id eventId name description price currency capacity soldCount isActive\n salesStartAt salesEndAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const PROMO_CODE_FIELDS = `\n id eventId code description discountType discountValue maxUses usedCount\n isActive startsAt endsAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const SPONSOR_FIELDS = `\n id eventId name level logoUrl website contactName contactEmail contactPhone\n metrics metadata workspaceId createdAt updatedAt\n`;\n\nexport const EXHIBITOR_FIELDS = `\n id eventId name category boothCode contactName contactEmail status metadata\n workspaceId createdAt updatedAt\n`;\n\nexport const LEAD_FIELDS = `\n id eventId exhibitorId sponsorId attendeeName attendeeEmail score status notes\n capturedAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const CHECK_IN_STATION_FIELDS = `\n id eventId name code location isActive kioskConfig metadata workspaceId\n createdAt updatedAt\n`;\n\nexport const CHECK_IN_RECORD_FIELDS = `\n id eventId registrationId attendeeId stationId direction method status\n recordedAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const NETWORKING_PROFILE_FIELDS = `\n id eventId attendeeId industry role interests lookingFor visibility metadata\n workspaceId createdAt updatedAt\n`;\n\nexport const NETWORKING_MATCH_FIELDS = `\n id eventId sourceProfileId targetProfileId score reason status metadata\n workspaceId createdAt updatedAt\n`;\n\nexport const MEETING_FIELDS = `\n id eventId sourceProfileId targetProfileId title status location notes\n startsAt endsAt metadata workspaceId createdAt updatedAt\n`;\n\n/**\n * Shape of `EventfullyManagedSimpleEntity` — the generic record used by the\n * check-in-station/meeting/networking-match LIST queries and by every\n * upsertable \"simple\" surface (announcements, automation rules, etc.).\n */\nexport const SIMPLE_ENTITY_FIELDS = `\n id name title status eventId metadata workspaceId createdAt updatedAt\n`;\n\nexport const DASHBOARD_SUMMARY_FIELDS = `\n totalEvents activeEvents totalVenues totalRegistrations totalAttendees\n totalSponsors upcomingSessions\n latestEvents { id name status startAt endAt }\n`;\n\n// ---------------------------------------------------------------------------\n// Events\n// ---------------------------------------------------------------------------\n\nexport const GET_EVENT = `\n query EventfullymanagedGetEvent($id: ID!) {\n eventfullyManagedEvent(id: $id) {\n ${EVENT_FIELDS}\n }\n }\n`;\n\nexport const LIST_EVENTS = `\n query EventfullymanagedListEvents(\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedEvents(\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${EVENT_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_EVENT = `\n mutation EventfullymanagedCreateEvent($input: EventfullyManagedEventInput!) {\n eventfullyManagedCreateEvent(input: $input) {\n ${EVENT_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_EVENT = `\n mutation EventfullymanagedUpdateEvent($id: ID!, $input: EventfullyManagedEventInput!) {\n eventfullyManagedUpdateEvent(id: $id, input: $input) {\n ${EVENT_FIELDS}\n }\n }\n`;\n\nexport const DELETE_EVENT = `\n mutation EventfullymanagedDeleteEvent($id: ID!) {\n eventfullyManagedDeleteEvent(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Venues\n// ---------------------------------------------------------------------------\n\nexport const GET_VENUE = `\n query EventfullymanagedGetVenue($id: ID!) {\n eventfullyManagedVenue(id: $id) {\n ${VENUE_FIELDS}\n }\n }\n`;\n\nexport const LIST_VENUES = `\n query EventfullymanagedListVenues(\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedVenues(\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${VENUE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_VENUE = `\n mutation EventfullymanagedCreateVenue($input: EventfullyManagedVenueInput!) {\n eventfullyManagedCreateVenue(input: $input) {\n ${VENUE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_VENUE = `\n mutation EventfullymanagedUpdateVenue($id: ID!, $input: EventfullyManagedVenueInput!) {\n eventfullyManagedUpdateVenue(id: $id, input: $input) {\n ${VENUE_FIELDS}\n }\n }\n`;\n\nexport const DELETE_VENUE = `\n mutation EventfullymanagedDeleteVenue($id: ID!) {\n eventfullyManagedDeleteVenue(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Floor plans\n// ---------------------------------------------------------------------------\n\nexport const LIST_FLOOR_PLANS = `\n query EventfullymanagedListFloorPlans(\n $venueId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedFloorPlans(\n venueId: $venueId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${FLOOR_PLAN_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_FLOOR_PLAN = `\n mutation EventfullymanagedCreateFloorPlan($input: EventfullyManagedFloorPlanInput!) {\n eventfullyManagedCreateFloorPlan(input: $input) {\n ${FLOOR_PLAN_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_FLOOR_PLAN = `\n mutation EventfullymanagedUpdateFloorPlan(\n $id: ID!\n $input: EventfullyManagedFloorPlanInput!\n ) {\n eventfullyManagedUpdateFloorPlan(id: $id, input: $input) {\n ${FLOOR_PLAN_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Agenda sessions\n// ---------------------------------------------------------------------------\n\nexport const LIST_EVENT_SESSIONS = `\n query EventfullymanagedListEventSessions(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedEventSessions(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${EVENT_SESSION_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_EVENT_SESSION = `\n mutation EventfullymanagedCreateEventSession(\n $input: EventfullyManagedEventSessionInput!\n ) {\n eventfullyManagedCreateEventSession(input: $input) {\n ${EVENT_SESSION_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_EVENT_SESSION = `\n mutation EventfullymanagedUpdateEventSession(\n $id: ID!\n $input: EventfullyManagedEventSessionInput!\n ) {\n eventfullyManagedUpdateEventSession(id: $id, input: $input) {\n ${EVENT_SESSION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Speakers\n// ---------------------------------------------------------------------------\n\nexport const LIST_SPEAKERS = `\n query EventfullymanagedListSpeakers($workspaceId: ID, $limit: Int, $offset: Int) {\n eventfullyManagedSpeakers(workspaceId: $workspaceId, limit: $limit, offset: $offset) {\n items { ${SPEAKER_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_SPEAKER = `\n mutation EventfullymanagedCreateSpeaker($input: EventfullyManagedSpeakerInput!) {\n eventfullyManagedCreateSpeaker(input: $input) {\n ${SPEAKER_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_SPEAKER = `\n mutation EventfullymanagedUpdateSpeaker($id: ID!, $input: EventfullyManagedSpeakerInput!) {\n eventfullyManagedUpdateSpeaker(id: $id, input: $input) {\n ${SPEAKER_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Attendees\n// ---------------------------------------------------------------------------\n\nexport const LIST_ATTENDEES = `\n query EventfullymanagedListAttendees(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedAttendees(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${ATTENDEE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_ATTENDEE = `\n mutation EventfullymanagedCreateAttendee($input: EventfullyManagedAttendeeInput!) {\n eventfullyManagedCreateAttendee(input: $input) {\n ${ATTENDEE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_ATTENDEE = `\n mutation EventfullymanagedUpdateAttendee(\n $id: ID!\n $input: EventfullyManagedAttendeeInput!\n ) {\n eventfullyManagedUpdateAttendee(id: $id, input: $input) {\n ${ATTENDEE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Registrations\n// ---------------------------------------------------------------------------\n\nexport const LIST_REGISTRATIONS = `\n query EventfullymanagedListRegistrations(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedRegistrations(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${REGISTRATION_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_REGISTRATION = `\n mutation EventfullymanagedCreateRegistration(\n $input: EventfullyManagedRegistrationInput!\n ) {\n eventfullyManagedCreateRegistration(input: $input) {\n ${REGISTRATION_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_REGISTRATION = `\n mutation EventfullymanagedUpdateRegistration(\n $id: ID!\n $input: EventfullyManagedRegistrationInput!\n ) {\n eventfullyManagedUpdateRegistration(id: $id, input: $input) {\n ${REGISTRATION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Ticket types\n// ---------------------------------------------------------------------------\n\nexport const LIST_TICKET_TYPES = `\n query EventfullymanagedListTicketTypes(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedTicketTypes(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${TICKET_TYPE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_TICKET_TYPE = `\n mutation EventfullymanagedCreateTicketType(\n $input: EventfullyManagedTicketTypeInput!\n ) {\n eventfullyManagedCreateTicketType(input: $input) {\n ${TICKET_TYPE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_TICKET_TYPE = `\n mutation EventfullymanagedUpdateTicketType(\n $id: ID!\n $input: EventfullyManagedTicketTypeInput!\n ) {\n eventfullyManagedUpdateTicketType(id: $id, input: $input) {\n ${TICKET_TYPE_FIELDS}\n }\n }\n`;\n\nexport const DELETE_TICKET_TYPE = `\n mutation EventfullymanagedDeleteTicketType($id: ID!) {\n eventfullyManagedDeleteTicketType(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Promo codes\n// ---------------------------------------------------------------------------\n\nexport const LIST_PROMO_CODES = `\n query EventfullymanagedListPromoCodes(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedPromoCodes(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${PROMO_CODE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_PROMO_CODE = `\n mutation EventfullymanagedCreatePromoCode($input: EventfullyManagedPromoCodeInput!) {\n eventfullyManagedCreatePromoCode(input: $input) {\n ${PROMO_CODE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_PROMO_CODE = `\n mutation EventfullymanagedUpdatePromoCode(\n $id: ID!\n $input: EventfullyManagedPromoCodeInput!\n ) {\n eventfullyManagedUpdatePromoCode(id: $id, input: $input) {\n ${PROMO_CODE_FIELDS}\n }\n }\n`;\n\nexport const DELETE_PROMO_CODE = `\n mutation EventfullymanagedDeletePromoCode($id: ID!) {\n eventfullyManagedDeletePromoCode(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Sponsors\n// ---------------------------------------------------------------------------\n\nexport const GET_SPONSOR = `\n query EventfullymanagedGetSponsor($id: ID!) {\n eventfullyManagedSponsor(id: $id) {\n ${SPONSOR_FIELDS}\n }\n }\n`;\n\nexport const LIST_SPONSORS = `\n query EventfullymanagedListSponsors(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedSponsors(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${SPONSOR_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_SPONSOR = `\n mutation EventfullymanagedCreateSponsor($input: EventfullyManagedSponsorInput!) {\n eventfullyManagedCreateSponsor(input: $input) {\n ${SPONSOR_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_SPONSOR = `\n mutation EventfullymanagedUpdateSponsor($id: ID!, $input: EventfullyManagedSponsorInput!) {\n eventfullyManagedUpdateSponsor(id: $id, input: $input) {\n ${SPONSOR_FIELDS}\n }\n }\n`;\n\nexport const DELETE_SPONSOR = `\n mutation EventfullymanagedDeleteSponsor($id: ID!) {\n eventfullyManagedDeleteSponsor(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Exhibitors\n// ---------------------------------------------------------------------------\n\nexport const LIST_EXHIBITORS = `\n query EventfullymanagedListExhibitors(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedExhibitors(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${EXHIBITOR_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_EXHIBITOR = `\n mutation EventfullymanagedCreateExhibitor($input: EventfullyManagedExhibitorInput!) {\n eventfullyManagedCreateExhibitor(input: $input) {\n ${EXHIBITOR_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_EXHIBITOR = `\n mutation EventfullymanagedUpdateExhibitor(\n $id: ID!\n $input: EventfullyManagedExhibitorInput!\n ) {\n eventfullyManagedUpdateExhibitor(id: $id, input: $input) {\n ${EXHIBITOR_FIELDS}\n }\n }\n`;\n\nexport const DELETE_EXHIBITOR = `\n mutation EventfullymanagedDeleteExhibitor($id: ID!) {\n eventfullyManagedDeleteExhibitor(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Leads\n// ---------------------------------------------------------------------------\n\nexport const LIST_LEADS = `\n query EventfullymanagedListLeads(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedLeads(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${LEAD_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_LEAD = `\n mutation EventfullymanagedCreateLead($input: EventfullyManagedLeadInput!) {\n eventfullyManagedCreateLead(input: $input) {\n ${LEAD_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_LEAD = `\n mutation EventfullymanagedUpdateLead($id: ID!, $input: EventfullyManagedLeadInput!) {\n eventfullyManagedUpdateLead(id: $id, input: $input) {\n ${LEAD_FIELDS}\n }\n }\n`;\n\nexport const DELETE_LEAD = `\n mutation EventfullymanagedDeleteLead($id: ID!) {\n eventfullyManagedDeleteLead(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Check-in (stations + records)\n//\n// NOTE: the `eventfullyManagedCheckInStations` LIST query returns the generic\n// `EventfullyManagedSimpleEntityList`, while the station mutations return the\n// typed `EventfullyManagedCheckInStation`. The selection sets differ accordingly.\n// ---------------------------------------------------------------------------\n\nexport const LIST_CHECK_IN_STATIONS = `\n query EventfullymanagedListCheckInStations(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedCheckInStations(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_CHECK_IN_STATION = `\n mutation EventfullymanagedCreateCheckInStation(\n $input: EventfullyManagedCheckInStationInput!\n ) {\n eventfullyManagedCreateCheckInStation(input: $input) {\n ${CHECK_IN_STATION_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_CHECK_IN_STATION = `\n mutation EventfullymanagedUpdateCheckInStation(\n $id: ID!\n $input: EventfullyManagedCheckInStationInput!\n ) {\n eventfullyManagedUpdateCheckInStation(id: $id, input: $input) {\n ${CHECK_IN_STATION_FIELDS}\n }\n }\n`;\n\nexport const DELETE_CHECK_IN_STATION = `\n mutation EventfullymanagedDeleteCheckInStation($id: ID!) {\n eventfullyManagedDeleteCheckInStation(id: $id)\n }\n`;\n\nexport const LIST_CHECK_IN_RECORDS = `\n query EventfullymanagedListCheckInRecords(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedCheckInRecords(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${CHECK_IN_RECORD_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_CHECK_IN_RECORD = `\n mutation EventfullymanagedCreateCheckInRecord(\n $input: EventfullyManagedCheckInRecordInput!\n ) {\n eventfullyManagedCreateCheckInRecord(input: $input) {\n ${CHECK_IN_RECORD_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_CHECK_IN_RECORD = `\n mutation EventfullymanagedUpdateCheckInRecord(\n $id: ID!\n $input: EventfullyManagedCheckInRecordInput!\n ) {\n eventfullyManagedUpdateCheckInRecord(id: $id, input: $input) {\n ${CHECK_IN_RECORD_FIELDS}\n }\n }\n`;\n\nexport const DELETE_CHECK_IN_RECORD = `\n mutation EventfullymanagedDeleteCheckInRecord($id: ID!) {\n eventfullyManagedDeleteCheckInRecord(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Networking (profiles + matches + meetings)\n//\n// NOTE: the `eventfullyManagedNetworkingMatches` and `eventfullyManagedMeetings`\n// LIST queries return `EventfullyManagedSimpleEntityList`; their mutations\n// return the typed `EventfullyManagedNetworkingMatch` / `EventfullyManagedMeeting`.\n// ---------------------------------------------------------------------------\n\nexport const LIST_NETWORKING_PROFILES = `\n query EventfullymanagedListNetworkingProfiles(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedNetworkingProfiles(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${NETWORKING_PROFILE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_NETWORKING_PROFILE = `\n mutation EventfullymanagedCreateNetworkingProfile(\n $input: EventfullyManagedNetworkingProfileInput!\n ) {\n eventfullyManagedCreateNetworkingProfile(input: $input) {\n ${NETWORKING_PROFILE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_NETWORKING_PROFILE = `\n mutation EventfullymanagedUpdateNetworkingProfile(\n $id: ID!\n $input: EventfullyManagedNetworkingProfileInput!\n ) {\n eventfullyManagedUpdateNetworkingProfile(id: $id, input: $input) {\n ${NETWORKING_PROFILE_FIELDS}\n }\n }\n`;\n\nexport const DELETE_NETWORKING_PROFILE = `\n mutation EventfullymanagedDeleteNetworkingProfile($id: ID!) {\n eventfullyManagedDeleteNetworkingProfile(id: $id)\n }\n`;\n\nexport const LIST_NETWORKING_MATCHES = `\n query EventfullymanagedListNetworkingMatches(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedNetworkingMatches(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_NETWORKING_MATCH = `\n mutation EventfullymanagedCreateNetworkingMatch(\n $input: EventfullyManagedNetworkingMatchInput!\n ) {\n eventfullyManagedCreateNetworkingMatch(input: $input) {\n ${NETWORKING_MATCH_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_NETWORKING_MATCH = `\n mutation EventfullymanagedUpdateNetworkingMatch(\n $id: ID!\n $input: EventfullyManagedNetworkingMatchInput!\n ) {\n eventfullyManagedUpdateNetworkingMatch(id: $id, input: $input) {\n ${NETWORKING_MATCH_FIELDS}\n }\n }\n`;\n\nexport const DELETE_NETWORKING_MATCH = `\n mutation EventfullymanagedDeleteNetworkingMatch($id: ID!) {\n eventfullyManagedDeleteNetworkingMatch(id: $id)\n }\n`;\n\nexport const LIST_MEETINGS = `\n query EventfullymanagedListMeetings(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedMeetings(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_MEETING = `\n mutation EventfullymanagedCreateMeeting($input: EventfullyManagedMeetingInput!) {\n eventfullyManagedCreateMeeting(input: $input) {\n ${MEETING_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_MEETING = `\n mutation EventfullymanagedUpdateMeeting($id: ID!, $input: EventfullyManagedMeetingInput!) {\n eventfullyManagedUpdateMeeting(id: $id, input: $input) {\n ${MEETING_FIELDS}\n }\n }\n`;\n\nexport const DELETE_MEETING = `\n mutation EventfullymanagedDeleteMeeting($id: ID!) {\n eventfullyManagedDeleteMeeting(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Operational content — generic \"simple entity\" surfaces (list + upsert)\n// ---------------------------------------------------------------------------\n\nexport const LIST_ANNOUNCEMENTS = `\n query EventfullymanagedListAnnouncements(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedAnnouncements(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_ANNOUNCEMENT = `\n mutation EventfullymanagedUpsertAnnouncement(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertAnnouncement(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\nexport const LIST_AUTOMATION_RULES = `\n query EventfullymanagedListAutomationRules(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedAutomationRules(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_AUTOMATION_RULE = `\n mutation EventfullymanagedUpsertAutomationRule(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertAutomationRule(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\nexport const LIST_COMMUNICATION_CAMPAIGNS = `\n query EventfullymanagedListCommunicationCampaigns(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedCommunicationCampaigns(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_COMMUNICATION_CAMPAIGN = `\n mutation EventfullymanagedUpsertCommunicationCampaign(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertCommunicationCampaign(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\nexport const LIST_WORKFLOW_TEMPLATES = `\n query EventfullymanagedListWorkflowTemplates(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedWorkflowTemplates(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_WORKFLOW_TEMPLATE = `\n mutation EventfullymanagedUpsertWorkflowTemplate(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertWorkflowTemplate(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\nexport const LIST_ANALYTICS_SNAPSHOTS = `\n query EventfullymanagedListAnalyticsSnapshots(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedAnalyticsSnapshots(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_ANALYTICS_SNAPSHOT = `\n mutation EventfullymanagedUpsertAnalyticsSnapshot(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertAnalyticsSnapshot(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Dashboard\n// ---------------------------------------------------------------------------\n\nexport const DASHBOARD_SUMMARY = `\n query EventfullymanagedDashboardSummary($workspaceId: ID) {\n eventfullyManagedDashboardSummary(workspaceId: $workspaceId) {\n ${DASHBOARD_SUMMARY_FIELDS}\n }\n }\n`;\n","/**\n * Shared zod schemas + helpers for the Eventfullymanaged tool surface.\n *\n * Unlike kadaikodi, the Eventfullymanaged event-management subgraph models\n * status/type/visibility/level/direction/method/discountType as free-form\n * `String` (not GraphQL enums), so those are exposed as `z.string()` with a\n * descriptive hint rather than tight zod enums. JSON scalar inputs (metadata,\n * profile, openingHours, pricing, dimensions, interactiveAreas, socialLinks,\n * metrics, kioskConfig) are modelled as permissive object records — the backend\n * accepts arbitrary JSON, but a record shape gives the LLM a typed hint.\n */\n\nimport { z } from 'zod';\n\n/** Permissive JSON-object schema for `JSON` scalar inputs. */\nexport const JsonObject = z.record(z.string(), z.unknown());\n\n/** Standard pagination + workspace/event scoping args shared by list tools. */\nexport const PaginationShape = {\n workspaceId: z\n .string()\n .optional()\n .describe('Optional workspace ID filter (defaults to the gateway-bound workspace)'),\n limit: z.number().int().optional().describe('Page size'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n};\n\n/**\n * Build the variables object for a list query, threading through only the\n * args that were actually provided (so server-side defaults apply otherwise).\n */\nexport function listVars(\n args: Record<string, unknown>,\n keys: readonly string[],\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const k of keys) {\n if (args[k] !== undefined) out[k] = args[k];\n }\n return out;\n}\n\n/**\n * Copy the provided (non-undefined) keys from `args` into a fresh GraphQL\n * input object. Used to assemble create/update/upsert mutation inputs while\n * preserving the \"omit-if-undefined\" discipline.\n */\nexport function buildInput(\n args: Record<string, unknown>,\n keys: readonly string[],\n): Record<string, unknown> {\n const input: Record<string, unknown> = {};\n for (const k of keys) {\n if (args[k] !== undefined) input[k] = args[k];\n }\n return input;\n}\n","/**\n * Eventfullymanaged event tools — the top-level event lifecycle.\n *\n * Surface (5): events_{list,get,create,update,delete}.\n * The backend reuses `EventfullyManagedEventInput` for create AND update, so\n * both tools share the same required-field contract (update also takes `id`).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst EVENT_INPUT_KEYS = [\n 'name',\n 'description',\n 'type',\n 'status',\n 'visibility',\n 'timezone',\n 'startAt',\n 'endAt',\n 'capacity',\n 'metadata',\n] as const;\n\nexport function registerEventTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_list')),\n {\n title: 'List Events',\n description:\n 'List events in the bound workspace, optionally filtered by free-text search, with pagination. Returns items + total.',\n inputSchema: {\n search: z.string().optional().describe('Free-text search across event name/description'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedEvents: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_EVENTS, listVars(args, ['search', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedEvents);\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_list failed', { error: String(error) });\n return errorResult(\n `Failed to list events: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_get')),\n {\n title: 'Get Event',\n description: 'Fetch a single event by ID.',\n inputSchema: { id: z.string().describe('Event ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedEvent: Record<string, unknown> | null;\n }>(ops.GET_EVENT, { id });\n if (!data.eventfullyManagedEvent) return errorResult(`Event ${id} not found`);\n return jsonResult(data.eventfullyManagedEvent);\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_get failed', { error: String(error) });\n return errorResult(\n `Failed to get event: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_create')),\n {\n title: 'Create Event',\n description:\n 'Create an event. `startAt`/`endAt` are ISO-8601 timestamps; `timezone` is an IANA tz (e.g. \"Asia/Kolkata\"); `type` is e.g. \"conference\"/\"workshop\"/\"webinar\".',\n inputSchema: {\n name: z.string().min(1).describe('Event name'),\n type: z.string().min(1).describe('Event type, e.g. \"conference\", \"workshop\", \"webinar\"'),\n timezone: z.string().min(1).describe('IANA timezone, e.g. \"Asia/Kolkata\"'),\n startAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n description: z.string().optional().describe('Event description'),\n status: z.string().optional().describe('Lifecycle status, e.g. \"draft\", \"published\"'),\n visibility: z.string().optional().describe('Visibility, e.g. \"public\", \"private\"'),\n capacity: z.number().int().optional().describe('Maximum capacity'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, EVENT_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateEvent: Record<string, unknown>;\n }>(ops.CREATE_EVENT, { input });\n return jsonResult(data.eventfullyManagedCreateEvent);\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_create failed', { error: String(error) });\n return errorResult(\n `Failed to create event: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_update')),\n {\n title: 'Update Event',\n description:\n 'Update an event. The backend reuses the full event input, so the required fields (name, type, timezone, startAt, endAt) must be re-supplied.',\n inputSchema: {\n id: z.string().describe('Event ID'),\n name: z.string().min(1).describe('Event name'),\n type: z.string().min(1).describe('Event type'),\n timezone: z.string().min(1).describe('IANA timezone'),\n startAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n description: z.string().optional().describe('Event description'),\n status: z.string().optional().describe('Lifecycle status'),\n visibility: z.string().optional().describe('Visibility'),\n capacity: z.number().int().optional().describe('Maximum capacity'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, EVENT_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateEvent: Record<string, unknown>;\n }>(ops.UPDATE_EVENT, { id, input });\n return jsonResult(data.eventfullyManagedUpdateEvent);\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_update failed', { error: String(error) });\n return errorResult(\n `Failed to update event: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_delete')),\n {\n title: 'Delete Event',\n description: 'Delete an event by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Event ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteEvent: boolean }>(\n ops.DELETE_EVENT,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteEvent, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete event: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged venue + floor-plan tools.\n *\n * Surface (8): venues_{list,get,create,update,delete},\n * floor_plans_{list,create,update}. Venues reuse `EventfullyManagedVenueInput`\n * for create + update; floor plans reuse `EventfullyManagedFloorPlanInput`.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst VENUE_INPUT_KEYS = [\n 'name',\n 'description',\n 'addressLine1',\n 'city',\n 'state',\n 'country',\n 'postalCode',\n 'capacity',\n 'amenities',\n 'status',\n 'openingHours',\n 'pricing',\n 'metadata',\n] as const;\n\nconst FLOOR_PLAN_INPUT_KEYS = [\n 'name',\n 'venueId',\n 'imageUrl',\n 'dimensions',\n 'interactiveAreas',\n] as const;\n\nexport function registerVenueTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Venues ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_list')),\n {\n title: 'List Venues',\n description: 'List venues, optionally filtered by free-text search, with pagination.',\n inputSchema: {\n search: z.string().optional().describe('Free-text search across venue name/address'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedVenues: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_VENUES, listVars(args, ['search', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedVenues);\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_list failed', { error: String(error) });\n return errorResult(\n `Failed to list venues: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_get')),\n {\n title: 'Get Venue',\n description: 'Fetch a single venue by ID.',\n inputSchema: { id: z.string().describe('Venue ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedVenue: Record<string, unknown> | null;\n }>(ops.GET_VENUE, { id });\n if (!data.eventfullyManagedVenue) return errorResult(`Venue ${id} not found`);\n return jsonResult(data.eventfullyManagedVenue);\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_get failed', { error: String(error) });\n return errorResult(\n `Failed to get venue: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_create')),\n {\n title: 'Create Venue',\n description:\n 'Create a venue. Only `name` is required; address/capacity/JSON fields are optional.',\n inputSchema: {\n name: z.string().min(1).describe('Venue name'),\n description: z.string().optional().describe('Venue description'),\n addressLine1: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City'),\n state: z.string().optional().describe('State/region'),\n country: z.string().optional().describe('Country'),\n postalCode: z.string().optional().describe('Postal code'),\n capacity: z.number().int().optional().describe('Maximum capacity'),\n amenities: z.array(z.string()).optional().describe('Amenity tags'),\n status: z.string().optional().describe('Status, e.g. \"active\", \"inactive\"'),\n openingHours: JsonObject.optional().describe('Opening-hours JSON'),\n pricing: JsonObject.optional().describe('Pricing JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, VENUE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateVenue: Record<string, unknown>;\n }>(ops.CREATE_VENUE, { input });\n return jsonResult(data.eventfullyManagedCreateVenue);\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_create failed', { error: String(error) });\n return errorResult(\n `Failed to create venue: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_update')),\n {\n title: 'Update Venue',\n description:\n 'Update a venue. `name` is required by the backend input; other fields are optional.',\n inputSchema: {\n id: z.string().describe('Venue ID'),\n name: z.string().min(1).describe('Venue name'),\n description: z.string().optional().describe('Venue description'),\n addressLine1: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City'),\n state: z.string().optional().describe('State/region'),\n country: z.string().optional().describe('Country'),\n postalCode: z.string().optional().describe('Postal code'),\n capacity: z.number().int().optional().describe('Maximum capacity'),\n amenities: z.array(z.string()).optional().describe('Amenity tags'),\n status: z.string().optional().describe('Status'),\n openingHours: JsonObject.optional().describe('Opening-hours JSON'),\n pricing: JsonObject.optional().describe('Pricing JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, VENUE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateVenue: Record<string, unknown>;\n }>(ops.UPDATE_VENUE, { id, input });\n return jsonResult(data.eventfullyManagedUpdateVenue);\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_update failed', { error: String(error) });\n return errorResult(\n `Failed to update venue: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_delete')),\n {\n title: 'Delete Venue',\n description: 'Delete a venue by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Venue ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteVenue: boolean }>(\n ops.DELETE_VENUE,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteVenue, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete venue: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Floor plans ─────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'floor_plans_list')),\n {\n title: 'List Floor Plans',\n description: 'List floor plans, optionally filtered by venue, with pagination.',\n inputSchema: {\n venueId: z.string().optional().describe('Filter by venue ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedFloorPlans: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_FLOOR_PLANS, listVars(args, ['venueId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedFloorPlans);\n } catch (error) {\n ctx.logger.error('eventfullymanaged floor_plans_list failed', { error: String(error) });\n return errorResult(\n `Failed to list floor plans: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'floor_plans_create')),\n {\n title: 'Create Floor Plan',\n description:\n 'Create a floor plan for a venue. `dimensions` and `interactiveAreas` are JSON describing the layout.',\n inputSchema: {\n name: z.string().min(1).describe('Floor-plan name'),\n venueId: z.string().min(1).describe('Owning venue ID'),\n imageUrl: z.string().optional().describe('Background image URL'),\n dimensions: JsonObject.optional().describe('Dimensions JSON ({ width, height, ... })'),\n interactiveAreas: z\n .union([JsonObject, z.array(z.unknown())])\n .optional()\n .describe('Interactive-areas JSON (clickable booths/zones)'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, FLOOR_PLAN_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateFloorPlan: Record<string, unknown>;\n }>(ops.CREATE_FLOOR_PLAN, { input });\n return jsonResult(data.eventfullyManagedCreateFloorPlan);\n } catch (error) {\n ctx.logger.error('eventfullymanaged floor_plans_create failed', { error: String(error) });\n return errorResult(\n `Failed to create floor plan: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'floor_plans_update')),\n {\n title: 'Update Floor Plan',\n description: 'Update a floor plan. `name` and `venueId` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Floor-plan ID'),\n name: z.string().min(1).describe('Floor-plan name'),\n venueId: z.string().min(1).describe('Owning venue ID'),\n imageUrl: z.string().optional().describe('Background image URL'),\n dimensions: JsonObject.optional().describe('Dimensions JSON'),\n interactiveAreas: z\n .union([JsonObject, z.array(z.unknown())])\n .optional()\n .describe('Interactive-areas JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, FLOOR_PLAN_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateFloorPlan: Record<string, unknown>;\n }>(ops.UPDATE_FLOOR_PLAN, { id, input });\n return jsonResult(data.eventfullyManagedUpdateFloorPlan);\n } catch (error) {\n ctx.logger.error('eventfullymanaged floor_plans_update failed', { error: String(error) });\n return errorResult(\n `Failed to update floor plan: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged agenda tools — event sessions + speakers.\n *\n * Surface (6): sessions_{list,create,update}, speakers_{list,create,update}.\n * \"sessions\" here are agenda/program sessions (`EventfullyManagedEventSession`),\n * distinct from the vibecontrols-style dev sessions. Create + update reuse the\n * same backend input per entity.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst SESSION_INPUT_KEYS = [\n 'eventId',\n 'title',\n 'description',\n 'sessionType',\n 'track',\n 'status',\n 'startsAt',\n 'endsAt',\n 'capacity',\n 'venueId',\n 'metadata',\n] as const;\n\nconst SPEAKER_INPUT_KEYS = [\n 'fullName',\n 'title',\n 'organization',\n 'bio',\n 'email',\n 'phone',\n 'avatarUrl',\n 'socialLinks',\n] as const;\n\nexport function registerAgendaTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Agenda sessions ─────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sessions_list')),\n {\n title: 'List Agenda Sessions',\n description:\n 'List agenda/program sessions, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedEventSessions: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_EVENT_SESSIONS, listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedEventSessions);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sessions_list failed', { error: String(error) });\n return errorResult(\n `Failed to list agenda sessions: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sessions_create')),\n {\n title: 'Create Agenda Session',\n description:\n 'Create an agenda session for an event. `sessionType` is e.g. \"keynote\"/\"talk\"/\"panel\"/\"break\".',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n title: z.string().min(1).describe('Session title'),\n sessionType: z.string().min(1).describe('Session type, e.g. \"keynote\", \"talk\", \"panel\"'),\n startsAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endsAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n description: z.string().optional().describe('Session description'),\n track: z.string().optional().describe('Agenda track/room'),\n status: z.string().optional().describe('Status, e.g. \"scheduled\", \"cancelled\"'),\n capacity: z.number().int().optional().describe('Session capacity'),\n venueId: z.string().optional().describe('Venue/room ID'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, SESSION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateEventSession: Record<string, unknown>;\n }>(ops.CREATE_EVENT_SESSION, { input });\n return jsonResult(data.eventfullyManagedCreateEventSession);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sessions_create failed', { error: String(error) });\n return errorResult(\n `Failed to create agenda session: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sessions_update')),\n {\n title: 'Update Agenda Session',\n description:\n 'Update an agenda session. The backend reuses the full session input, so `eventId`, `title`, `sessionType`, `startsAt`, `endsAt` must be re-supplied.',\n inputSchema: {\n id: z.string().describe('Agenda session ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n title: z.string().min(1).describe('Session title'),\n sessionType: z.string().min(1).describe('Session type'),\n startsAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endsAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n description: z.string().optional().describe('Session description'),\n track: z.string().optional().describe('Agenda track/room'),\n status: z.string().optional().describe('Status'),\n capacity: z.number().int().optional().describe('Session capacity'),\n venueId: z.string().optional().describe('Venue/room ID'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, SESSION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateEventSession: Record<string, unknown>;\n }>(ops.UPDATE_EVENT_SESSION, { id, input });\n return jsonResult(data.eventfullyManagedUpdateEventSession);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sessions_update failed', { error: String(error) });\n return errorResult(\n `Failed to update agenda session: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Speakers ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'speakers_list')),\n {\n title: 'List Speakers',\n description: 'List speakers in the workspace, with pagination. Returns items + total.',\n inputSchema: { ...PaginationShape },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedSpeakers: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_SPEAKERS, listVars(args, ['workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedSpeakers);\n } catch (error) {\n ctx.logger.error('eventfullymanaged speakers_list failed', { error: String(error) });\n return errorResult(\n `Failed to list speakers: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'speakers_create')),\n {\n title: 'Create Speaker',\n description: 'Create a speaker profile. Only `fullName` is required.',\n inputSchema: {\n fullName: z.string().min(1).describe('Speaker full name'),\n title: z.string().optional().describe('Job title'),\n organization: z.string().optional().describe('Organization/company'),\n bio: z.string().optional().describe('Speaker bio'),\n email: z.string().optional().describe('Contact email'),\n phone: z.string().optional().describe('Contact phone'),\n avatarUrl: z.string().optional().describe('Avatar image URL'),\n socialLinks: JsonObject.optional().describe(\n 'Social links JSON ({ twitter, linkedin, ... })',\n ),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, SPEAKER_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateSpeaker: Record<string, unknown>;\n }>(ops.CREATE_SPEAKER, { input });\n return jsonResult(data.eventfullyManagedCreateSpeaker);\n } catch (error) {\n ctx.logger.error('eventfullymanaged speakers_create failed', { error: String(error) });\n return errorResult(\n `Failed to create speaker: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'speakers_update')),\n {\n title: 'Update Speaker',\n description: 'Update a speaker profile. `fullName` is required by the backend input.',\n inputSchema: {\n id: z.string().describe('Speaker ID'),\n fullName: z.string().min(1).describe('Speaker full name'),\n title: z.string().optional().describe('Job title'),\n organization: z.string().optional().describe('Organization/company'),\n bio: z.string().optional().describe('Speaker bio'),\n email: z.string().optional().describe('Contact email'),\n phone: z.string().optional().describe('Contact phone'),\n avatarUrl: z.string().optional().describe('Avatar image URL'),\n socialLinks: JsonObject.optional().describe('Social links JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, SPEAKER_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateSpeaker: Record<string, unknown>;\n }>(ops.UPDATE_SPEAKER, { id, input });\n return jsonResult(data.eventfullyManagedUpdateSpeaker);\n } catch (error) {\n ctx.logger.error('eventfullymanaged speakers_update failed', { error: String(error) });\n return errorResult(\n `Failed to update speaker: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged attendee + registration tools.\n *\n * Surface (6): attendees_{list,create,update}, registrations_{list,create,update}.\n * Create + update reuse the same backend input per entity.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst ATTENDEE_INPUT_KEYS = [\n 'eventId',\n 'fullName',\n 'email',\n 'phone',\n 'company',\n 'role',\n 'tags',\n 'profile',\n 'metadata',\n] as const;\n\nconst REGISTRATION_INPUT_KEYS = [\n 'eventId',\n 'attendeeId',\n 'ticketTypeId',\n 'status',\n 'quantity',\n 'totalAmount',\n 'currency',\n 'metadata',\n] as const;\n\nexport function registerAttendeeTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Attendees ───────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'attendees_list')),\n {\n title: 'List Attendees',\n description:\n 'List attendees, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedAttendees: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_ATTENDEES, listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedAttendees);\n } catch (error) {\n ctx.logger.error('eventfullymanaged attendees_list failed', { error: String(error) });\n return errorResult(\n `Failed to list attendees: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'attendees_create')),\n {\n title: 'Create Attendee',\n description:\n 'Register an attendee record for an event. `eventId`, `fullName`, `email` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n fullName: z.string().min(1).describe('Attendee full name'),\n email: z.string().min(1).describe('Attendee email'),\n phone: z.string().optional().describe('Contact phone'),\n company: z.string().optional().describe('Company/organization'),\n role: z.string().optional().describe('Role/job title'),\n tags: z.array(z.string()).optional().describe('Attendee tags'),\n profile: JsonObject.optional().describe('Extended profile JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, ATTENDEE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateAttendee: Record<string, unknown>;\n }>(ops.CREATE_ATTENDEE, { input });\n return jsonResult(data.eventfullyManagedCreateAttendee);\n } catch (error) {\n ctx.logger.error('eventfullymanaged attendees_create failed', { error: String(error) });\n return errorResult(\n `Failed to create attendee: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'attendees_update')),\n {\n title: 'Update Attendee',\n description:\n 'Update an attendee. `eventId`, `fullName`, `email` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Attendee ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n fullName: z.string().min(1).describe('Attendee full name'),\n email: z.string().min(1).describe('Attendee email'),\n phone: z.string().optional().describe('Contact phone'),\n company: z.string().optional().describe('Company/organization'),\n role: z.string().optional().describe('Role/job title'),\n tags: z.array(z.string()).optional().describe('Attendee tags'),\n profile: JsonObject.optional().describe('Extended profile JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, ATTENDEE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateAttendee: Record<string, unknown>;\n }>(ops.UPDATE_ATTENDEE, { id, input });\n return jsonResult(data.eventfullyManagedUpdateAttendee);\n } catch (error) {\n ctx.logger.error('eventfullymanaged attendees_update failed', { error: String(error) });\n return errorResult(\n `Failed to update attendee: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Registrations ─────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'registrations_list')),\n {\n title: 'List Registrations',\n description:\n 'List ticket registrations, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedRegistrations: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_REGISTRATIONS, listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedRegistrations);\n } catch (error) {\n ctx.logger.error('eventfullymanaged registrations_list failed', { error: String(error) });\n return errorResult(\n `Failed to list registrations: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'registrations_create')),\n {\n title: 'Create Registration',\n description:\n 'Create a registration tying an attendee to an event/ticket type. Only `eventId` is required; `totalAmount` is a decimal string.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeId: z.string().optional().describe('Attendee ID'),\n ticketTypeId: z.string().optional().describe('Ticket type ID'),\n status: z.string().optional().describe('Status, e.g. \"pending\", \"confirmed\", \"cancelled\"'),\n quantity: z.number().int().optional().describe('Number of tickets'),\n totalAmount: z.string().optional().describe('Total amount as a decimal string'),\n currency: z.string().optional().describe('ISO currency code, e.g. \"INR\", \"USD\"'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, REGISTRATION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateRegistration: Record<string, unknown>;\n }>(ops.CREATE_REGISTRATION, { input });\n return jsonResult(data.eventfullyManagedCreateRegistration);\n } catch (error) {\n ctx.logger.error('eventfullymanaged registrations_create failed', { error: String(error) });\n return errorResult(\n `Failed to create registration: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'registrations_update')),\n {\n title: 'Update Registration',\n description: 'Update a registration. `eventId` is required by the backend input.',\n inputSchema: {\n id: z.string().describe('Registration ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeId: z.string().optional().describe('Attendee ID'),\n ticketTypeId: z.string().optional().describe('Ticket type ID'),\n status: z.string().optional().describe('Status'),\n quantity: z.number().int().optional().describe('Number of tickets'),\n totalAmount: z.string().optional().describe('Total amount as a decimal string'),\n currency: z.string().optional().describe('ISO currency code'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, REGISTRATION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateRegistration: Record<string, unknown>;\n }>(ops.UPDATE_REGISTRATION, { id, input });\n return jsonResult(data.eventfullyManagedUpdateRegistration);\n } catch (error) {\n ctx.logger.error('eventfullymanaged registrations_update failed', { error: String(error) });\n return errorResult(\n `Failed to update registration: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged ticketing tools — ticket types + promo codes.\n *\n * Surface (8): tickets_{list,create,update,delete},\n * promo_codes_{list,create,update,delete}. Create + update reuse the same\n * backend input per entity. Monetary fields (price, discountValue, totalAmount)\n * are decimal STRINGS in this schema.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst TICKET_TYPE_INPUT_KEYS = [\n 'eventId',\n 'name',\n 'description',\n 'price',\n 'currency',\n 'capacity',\n 'isActive',\n 'salesStartAt',\n 'salesEndAt',\n 'metadata',\n] as const;\n\nconst PROMO_CODE_INPUT_KEYS = [\n 'eventId',\n 'code',\n 'description',\n 'discountType',\n 'discountValue',\n 'maxUses',\n 'isActive',\n 'startsAt',\n 'endsAt',\n 'metadata',\n] as const;\n\nexport function registerTicketingTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Ticket types ──────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'tickets_list')),\n {\n title: 'List Ticket Types',\n description:\n 'List ticket types, optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across ticket name'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedTicketTypes: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_TICKET_TYPES,\n listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedTicketTypes);\n } catch (error) {\n ctx.logger.error('eventfullymanaged tickets_list failed', { error: String(error) });\n return errorResult(\n `Failed to list ticket types: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'tickets_create')),\n {\n title: 'Create Ticket Type',\n description:\n 'Create a ticket type for an event. `eventId`, `name`, `price` are required; `price` is a decimal string (e.g. \"499.00\").',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Ticket type name'),\n price: z.string().min(1).describe('Price as a decimal string, e.g. \"499.00\"'),\n description: z.string().optional().describe('Ticket description'),\n currency: z.string().optional().describe('ISO currency code, e.g. \"INR\"'),\n capacity: z.number().int().optional().describe('Number available'),\n isActive: z.boolean().optional().describe('Whether the ticket is on sale'),\n salesStartAt: z.string().optional().describe('Sales-start timestamp (ISO-8601)'),\n salesEndAt: z.string().optional().describe('Sales-end timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, TICKET_TYPE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateTicketType: Record<string, unknown>;\n }>(ops.CREATE_TICKET_TYPE, { input });\n return jsonResult(data.eventfullyManagedCreateTicketType);\n } catch (error) {\n ctx.logger.error('eventfullymanaged tickets_create failed', { error: String(error) });\n return errorResult(\n `Failed to create ticket type: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'tickets_update')),\n {\n title: 'Update Ticket Type',\n description:\n 'Update a ticket type. `eventId`, `name`, `price` are required by the backend input. Use `isActive` to open/close sales.',\n inputSchema: {\n id: z.string().describe('Ticket type ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Ticket type name'),\n price: z.string().min(1).describe('Price as a decimal string'),\n description: z.string().optional().describe('Ticket description'),\n currency: z.string().optional().describe('ISO currency code'),\n capacity: z.number().int().optional().describe('Number available'),\n isActive: z.boolean().optional().describe('Whether the ticket is on sale'),\n salesStartAt: z.string().optional().describe('Sales-start timestamp (ISO-8601)'),\n salesEndAt: z.string().optional().describe('Sales-end timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, TICKET_TYPE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateTicketType: Record<string, unknown>;\n }>(ops.UPDATE_TICKET_TYPE, { id, input });\n return jsonResult(data.eventfullyManagedUpdateTicketType);\n } catch (error) {\n ctx.logger.error('eventfullymanaged tickets_update failed', { error: String(error) });\n return errorResult(\n `Failed to update ticket type: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'tickets_delete')),\n {\n title: 'Delete Ticket Type',\n description: 'Delete a ticket type by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Ticket type ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteTicketType: boolean;\n }>(ops.DELETE_TICKET_TYPE, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteTicketType, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged tickets_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete ticket type: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Promo codes ───────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'promo_codes_list')),\n {\n title: 'List Promo Codes',\n description:\n 'List promo codes, optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across code'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedPromoCodes: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_PROMO_CODES,\n listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedPromoCodes);\n } catch (error) {\n ctx.logger.error('eventfullymanaged promo_codes_list failed', { error: String(error) });\n return errorResult(\n `Failed to list promo codes: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'promo_codes_create')),\n {\n title: 'Create Promo Code',\n description:\n 'Create a promo code. `eventId`, `code`, `discountType`, `discountValue` are required. `discountType` is e.g. \"percentage\"/\"fixed\"; `discountValue` is a decimal string.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n code: z.string().min(1).describe('Promo code string (unique per event)'),\n discountType: z.string().min(1).describe('Discount type, e.g. \"percentage\", \"fixed\"'),\n discountValue: z.string().min(1).describe('Discount value as a decimal string'),\n description: z.string().optional().describe('Promo description'),\n maxUses: z.number().int().optional().describe('Maximum redemptions'),\n isActive: z.boolean().optional().describe('Whether the code is active'),\n startsAt: z.string().optional().describe('Valid-from timestamp (ISO-8601)'),\n endsAt: z.string().optional().describe('Valid-until timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, PROMO_CODE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreatePromoCode: Record<string, unknown>;\n }>(ops.CREATE_PROMO_CODE, { input });\n return jsonResult(data.eventfullyManagedCreatePromoCode);\n } catch (error) {\n ctx.logger.error('eventfullymanaged promo_codes_create failed', { error: String(error) });\n return errorResult(\n `Failed to create promo code: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'promo_codes_update')),\n {\n title: 'Update Promo Code',\n description:\n 'Update a promo code. `eventId`, `code`, `discountType`, `discountValue` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Promo code ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n code: z.string().min(1).describe('Promo code string'),\n discountType: z.string().min(1).describe('Discount type'),\n discountValue: z.string().min(1).describe('Discount value as a decimal string'),\n description: z.string().optional().describe('Promo description'),\n maxUses: z.number().int().optional().describe('Maximum redemptions'),\n isActive: z.boolean().optional().describe('Whether the code is active'),\n startsAt: z.string().optional().describe('Valid-from timestamp (ISO-8601)'),\n endsAt: z.string().optional().describe('Valid-until timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, PROMO_CODE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdatePromoCode: Record<string, unknown>;\n }>(ops.UPDATE_PROMO_CODE, { id, input });\n return jsonResult(data.eventfullyManagedUpdatePromoCode);\n } catch (error) {\n ctx.logger.error('eventfullymanaged promo_codes_update failed', { error: String(error) });\n return errorResult(\n `Failed to update promo code: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'promo_codes_delete')),\n {\n title: 'Delete Promo Code',\n description: 'Delete a promo code by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Promo code ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeletePromoCode: boolean;\n }>(ops.DELETE_PROMO_CODE, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeletePromoCode, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged promo_codes_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete promo code: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged sponsorship tools — sponsors + exhibitors + leads.\n *\n * Surface (13): sponsors_{list,get,create,update,delete},\n * exhibitors_{list,create,update,delete}, leads_{list,create,update,delete}.\n * Create + update reuse the same backend input per entity.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst SPONSOR_INPUT_KEYS = [\n 'eventId',\n 'name',\n 'level',\n 'logoUrl',\n 'website',\n 'contactName',\n 'contactEmail',\n 'contactPhone',\n 'metrics',\n 'metadata',\n] as const;\n\nconst EXHIBITOR_INPUT_KEYS = [\n 'eventId',\n 'name',\n 'category',\n 'boothCode',\n 'contactName',\n 'contactEmail',\n 'status',\n 'metadata',\n] as const;\n\nconst LEAD_INPUT_KEYS = [\n 'eventId',\n 'attendeeName',\n 'attendeeEmail',\n 'exhibitorId',\n 'sponsorId',\n 'score',\n 'status',\n 'notes',\n 'capturedAt',\n 'metadata',\n] as const;\n\nexport function registerSponsorshipTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Sponsors ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_list')),\n {\n title: 'List Sponsors',\n description:\n 'List sponsors, optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across sponsor name'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedSponsors: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_SPONSORS,\n listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedSponsors);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_list failed', { error: String(error) });\n return errorResult(\n `Failed to list sponsors: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_get')),\n {\n title: 'Get Sponsor',\n description: 'Fetch a single sponsor by ID.',\n inputSchema: { id: z.string().describe('Sponsor ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedSponsor: Record<string, unknown> | null;\n }>(ops.GET_SPONSOR, { id });\n if (!data.eventfullyManagedSponsor) return errorResult(`Sponsor ${id} not found`);\n return jsonResult(data.eventfullyManagedSponsor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_get failed', { error: String(error) });\n return errorResult(\n `Failed to get sponsor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_create')),\n {\n title: 'Create Sponsor',\n description:\n 'Create a sponsor for an event. `eventId`, `name`, `level` are required (`level` is e.g. \"platinum\"/\"gold\"/\"silver\").',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Sponsor name'),\n level: z.string().min(1).describe('Sponsorship level, e.g. \"platinum\", \"gold\"'),\n logoUrl: z.string().optional().describe('Logo image URL'),\n website: z.string().optional().describe('Sponsor website'),\n contactName: z.string().optional().describe('Primary contact name'),\n contactEmail: z.string().optional().describe('Primary contact email'),\n contactPhone: z.string().optional().describe('Primary contact phone'),\n metrics: JsonObject.optional().describe('Sponsorship metrics JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, SPONSOR_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateSponsor: Record<string, unknown>;\n }>(ops.CREATE_SPONSOR, { input });\n return jsonResult(data.eventfullyManagedCreateSponsor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_create failed', { error: String(error) });\n return errorResult(\n `Failed to create sponsor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_update')),\n {\n title: 'Update Sponsor',\n description:\n 'Update a sponsor. `eventId`, `name`, `level` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Sponsor ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Sponsor name'),\n level: z.string().min(1).describe('Sponsorship level'),\n logoUrl: z.string().optional().describe('Logo image URL'),\n website: z.string().optional().describe('Sponsor website'),\n contactName: z.string().optional().describe('Primary contact name'),\n contactEmail: z.string().optional().describe('Primary contact email'),\n contactPhone: z.string().optional().describe('Primary contact phone'),\n metrics: JsonObject.optional().describe('Sponsorship metrics JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, SPONSOR_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateSponsor: Record<string, unknown>;\n }>(ops.UPDATE_SPONSOR, { id, input });\n return jsonResult(data.eventfullyManagedUpdateSponsor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_update failed', { error: String(error) });\n return errorResult(\n `Failed to update sponsor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_delete')),\n {\n title: 'Delete Sponsor',\n description: 'Delete a sponsor by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Sponsor ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteSponsor: boolean }>(\n ops.DELETE_SPONSOR,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteSponsor, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete sponsor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Exhibitors ──────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'exhibitors_list')),\n {\n title: 'List Exhibitors',\n description:\n 'List exhibitors, optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across exhibitor name'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedExhibitors: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_EXHIBITORS,\n listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedExhibitors);\n } catch (error) {\n ctx.logger.error('eventfullymanaged exhibitors_list failed', { error: String(error) });\n return errorResult(\n `Failed to list exhibitors: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'exhibitors_create')),\n {\n title: 'Create Exhibitor',\n description: 'Create an exhibitor for an event. `eventId`, `name` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Exhibitor name'),\n category: z.string().optional().describe('Exhibitor category'),\n boothCode: z.string().optional().describe('Assigned booth code'),\n contactName: z.string().optional().describe('Primary contact name'),\n contactEmail: z.string().optional().describe('Primary contact email'),\n status: z.string().optional().describe('Status, e.g. \"confirmed\", \"pending\"'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, EXHIBITOR_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateExhibitor: Record<string, unknown>;\n }>(ops.CREATE_EXHIBITOR, { input });\n return jsonResult(data.eventfullyManagedCreateExhibitor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged exhibitors_create failed', { error: String(error) });\n return errorResult(\n `Failed to create exhibitor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'exhibitors_update')),\n {\n title: 'Update Exhibitor',\n description: 'Update an exhibitor. `eventId`, `name` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Exhibitor ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Exhibitor name'),\n category: z.string().optional().describe('Exhibitor category'),\n boothCode: z.string().optional().describe('Assigned booth code'),\n contactName: z.string().optional().describe('Primary contact name'),\n contactEmail: z.string().optional().describe('Primary contact email'),\n status: z.string().optional().describe('Status'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, EXHIBITOR_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateExhibitor: Record<string, unknown>;\n }>(ops.UPDATE_EXHIBITOR, { id, input });\n return jsonResult(data.eventfullyManagedUpdateExhibitor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged exhibitors_update failed', { error: String(error) });\n return errorResult(\n `Failed to update exhibitor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'exhibitors_delete')),\n {\n title: 'Delete Exhibitor',\n description: 'Delete an exhibitor by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Exhibitor ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteExhibitor: boolean;\n }>(ops.DELETE_EXHIBITOR, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteExhibitor, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged exhibitors_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete exhibitor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Leads ───────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'leads_list')),\n {\n title: 'List Leads',\n description:\n 'List captured leads (booth/sponsor lead-capture), optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across lead name/email'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedLeads: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_LEADS, listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedLeads);\n } catch (error) {\n ctx.logger.error('eventfullymanaged leads_list failed', { error: String(error) });\n return errorResult(\n `Failed to list leads: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'leads_create')),\n {\n title: 'Create Lead',\n description:\n 'Capture a lead at an event (tied to an exhibitor or sponsor). `eventId`, `attendeeName`, `attendeeEmail` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeName: z.string().min(1).describe('Lead/attendee name'),\n attendeeEmail: z.string().min(1).describe('Lead/attendee email'),\n exhibitorId: z.string().optional().describe('Capturing exhibitor ID'),\n sponsorId: z.string().optional().describe('Capturing sponsor ID'),\n score: z.number().int().optional().describe('Lead score'),\n status: z.string().optional().describe('Status, e.g. \"new\", \"qualified\", \"contacted\"'),\n notes: z.string().optional().describe('Free-text notes'),\n capturedAt: z.string().optional().describe('Capture timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, LEAD_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateLead: Record<string, unknown>;\n }>(ops.CREATE_LEAD, { input });\n return jsonResult(data.eventfullyManagedCreateLead);\n } catch (error) {\n ctx.logger.error('eventfullymanaged leads_create failed', { error: String(error) });\n return errorResult(\n `Failed to create lead: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'leads_update')),\n {\n title: 'Update Lead',\n description:\n 'Update a lead. `eventId`, `attendeeName`, `attendeeEmail` are required by the backend input. Use `status`/`score` to progress the lead.',\n inputSchema: {\n id: z.string().describe('Lead ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeName: z.string().min(1).describe('Lead/attendee name'),\n attendeeEmail: z.string().min(1).describe('Lead/attendee email'),\n exhibitorId: z.string().optional().describe('Capturing exhibitor ID'),\n sponsorId: z.string().optional().describe('Capturing sponsor ID'),\n score: z.number().int().optional().describe('Lead score'),\n status: z.string().optional().describe('Status'),\n notes: z.string().optional().describe('Free-text notes'),\n capturedAt: z.string().optional().describe('Capture timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, LEAD_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateLead: Record<string, unknown>;\n }>(ops.UPDATE_LEAD, { id, input });\n return jsonResult(data.eventfullyManagedUpdateLead);\n } catch (error) {\n ctx.logger.error('eventfullymanaged leads_update failed', { error: String(error) });\n return errorResult(\n `Failed to update lead: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'leads_delete')),\n {\n title: 'Delete Lead',\n description: 'Delete a lead by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Lead ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteLead: boolean }>(\n ops.DELETE_LEAD,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteLead, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged leads_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete lead: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged check-in tools — stations + records.\n *\n * Surface (8): checkin_stations_{list,create,update,delete},\n * checkin_records_{list,create,update,delete}. The station LIST query returns\n * the generic SimpleEntity shape (see operations.ts), while station mutations\n * return the typed station; the selection sets differ accordingly.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst STATION_INPUT_KEYS = [\n 'eventId',\n 'name',\n 'code',\n 'location',\n 'isActive',\n 'kioskConfig',\n 'metadata',\n] as const;\n\nconst RECORD_INPUT_KEYS = [\n 'eventId',\n 'registrationId',\n 'attendeeId',\n 'stationId',\n 'direction',\n 'method',\n 'status',\n 'recordedAt',\n 'metadata',\n] as const;\n\nexport function registerCheckinTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Stations ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_stations_list')),\n {\n title: 'List Check-in Stations',\n description:\n 'List check-in stations/kiosks, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCheckInStations: {\n items: Array<Record<string, unknown>>;\n total: number;\n };\n }>(\n ops.LIST_CHECK_IN_STATIONS,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedCheckInStations);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_stations_list failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to list check-in stations: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_stations_create')),\n {\n title: 'Create Check-in Station',\n description: 'Create a check-in station/kiosk. `eventId`, `name`, `code` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Station name'),\n code: z.string().min(1).describe('Station code (unique per event)'),\n location: z.string().optional().describe('Physical location/description'),\n isActive: z.boolean().optional().describe('Whether the station is active'),\n kioskConfig: JsonObject.optional().describe('Kiosk configuration JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, STATION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateCheckInStation: Record<string, unknown>;\n }>(ops.CREATE_CHECK_IN_STATION, { input });\n return jsonResult(data.eventfullyManagedCreateCheckInStation);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_stations_create failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to create check-in station: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_stations_update')),\n {\n title: 'Update Check-in Station',\n description:\n 'Update a check-in station. `eventId`, `name`, `code` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Check-in station ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Station name'),\n code: z.string().min(1).describe('Station code'),\n location: z.string().optional().describe('Physical location/description'),\n isActive: z.boolean().optional().describe('Whether the station is active'),\n kioskConfig: JsonObject.optional().describe('Kiosk configuration JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, STATION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateCheckInStation: Record<string, unknown>;\n }>(ops.UPDATE_CHECK_IN_STATION, { id, input });\n return jsonResult(data.eventfullyManagedUpdateCheckInStation);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_stations_update failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to update check-in station: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_stations_delete')),\n {\n title: 'Delete Check-in Station',\n description: 'Delete a check-in station by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Check-in station ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteCheckInStation: boolean;\n }>(ops.DELETE_CHECK_IN_STATION, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteCheckInStation, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_stations_delete failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to delete check-in station: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Records ─────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_records_list')),\n {\n title: 'List Check-in Records',\n description:\n 'List check-in/check-out records, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCheckInRecords: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_CHECK_IN_RECORDS,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedCheckInRecords);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_records_list failed', { error: String(error) });\n return errorResult(\n `Failed to list check-in records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_records_create')),\n {\n title: 'Create Check-in Record',\n description:\n 'Record a check-in/check-out scan. `eventId` is required; `direction` is e.g. \"in\"/\"out\", `method` is e.g. \"qr\"/\"manual\".',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n registrationId: z.string().optional().describe('Related registration ID'),\n attendeeId: z.string().optional().describe('Attendee ID'),\n stationId: z.string().optional().describe('Capturing station ID'),\n direction: z.string().optional().describe('Direction, e.g. \"in\", \"out\"'),\n method: z.string().optional().describe('Method, e.g. \"qr\", \"nfc\", \"manual\"'),\n status: z.string().optional().describe('Status, e.g. \"success\", \"denied\"'),\n recordedAt: z.string().optional().describe('Recorded timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, RECORD_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateCheckInRecord: Record<string, unknown>;\n }>(ops.CREATE_CHECK_IN_RECORD, { input });\n return jsonResult(data.eventfullyManagedCreateCheckInRecord);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_records_create failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to create check-in record: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_records_update')),\n {\n title: 'Update Check-in Record',\n description: 'Update a check-in record. `eventId` is required by the backend input.',\n inputSchema: {\n id: z.string().describe('Check-in record ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n registrationId: z.string().optional().describe('Related registration ID'),\n attendeeId: z.string().optional().describe('Attendee ID'),\n stationId: z.string().optional().describe('Capturing station ID'),\n direction: z.string().optional().describe('Direction, e.g. \"in\", \"out\"'),\n method: z.string().optional().describe('Method, e.g. \"qr\", \"nfc\", \"manual\"'),\n status: z.string().optional().describe('Status'),\n recordedAt: z.string().optional().describe('Recorded timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, RECORD_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateCheckInRecord: Record<string, unknown>;\n }>(ops.UPDATE_CHECK_IN_RECORD, { id, input });\n return jsonResult(data.eventfullyManagedUpdateCheckInRecord);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_records_update failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to update check-in record: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_records_delete')),\n {\n title: 'Delete Check-in Record',\n description: 'Delete a check-in record by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Check-in record ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteCheckInRecord: boolean;\n }>(ops.DELETE_CHECK_IN_RECORD, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteCheckInRecord, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_records_delete failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to delete check-in record: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged networking tools — profiles + matches + meetings.\n *\n * Surface (12): profiles_{list,create,update,delete},\n * matches_{list,create,update,delete}, meetings_{list,create,update,delete}.\n * The matches and meetings LIST queries return the generic SimpleEntity shape\n * (see operations.ts), while their mutations return the typed entity.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst PROFILE_INPUT_KEYS = [\n 'eventId',\n 'attendeeId',\n 'industry',\n 'role',\n 'interests',\n 'lookingFor',\n 'visibility',\n 'metadata',\n] as const;\n\nconst MATCH_INPUT_KEYS = [\n 'eventId',\n 'sourceProfileId',\n 'targetProfileId',\n 'score',\n 'reason',\n 'status',\n 'metadata',\n] as const;\n\nconst MEETING_INPUT_KEYS = [\n 'eventId',\n 'title',\n 'sourceProfileId',\n 'targetProfileId',\n 'status',\n 'location',\n 'notes',\n 'startsAt',\n 'endsAt',\n 'metadata',\n] as const;\n\nexport function registerNetworkingTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Profiles ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'profiles_list')),\n {\n title: 'List Networking Profiles',\n description:\n 'List networking profiles, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedNetworkingProfiles: {\n items: Array<Record<string, unknown>>;\n total: number;\n };\n }>(\n ops.LIST_NETWORKING_PROFILES,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedNetworkingProfiles);\n } catch (error) {\n ctx.logger.error('eventfullymanaged profiles_list failed', { error: String(error) });\n return errorResult(\n `Failed to list networking profiles: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'profiles_create')),\n {\n title: 'Create Networking Profile',\n description:\n 'Create a networking profile for an attendee. `eventId`, `attendeeId` are required. `interests`/`lookingFor` are string arrays.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeId: z.string().min(1).describe('Attendee ID this profile belongs to'),\n industry: z.string().optional().describe('Industry'),\n role: z.string().optional().describe('Professional role'),\n interests: z.array(z.string()).optional().describe('Topics of interest'),\n lookingFor: z.array(z.string()).optional().describe('What the attendee is looking for'),\n visibility: z.string().optional().describe('Visibility, e.g. \"public\", \"private\"'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, PROFILE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateNetworkingProfile: Record<string, unknown>;\n }>(ops.CREATE_NETWORKING_PROFILE, { input });\n return jsonResult(data.eventfullyManagedCreateNetworkingProfile);\n } catch (error) {\n ctx.logger.error('eventfullymanaged profiles_create failed', { error: String(error) });\n return errorResult(\n `Failed to create networking profile: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'profiles_update')),\n {\n title: 'Update Networking Profile',\n description:\n 'Update a networking profile. `eventId`, `attendeeId` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Networking profile ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeId: z.string().min(1).describe('Attendee ID this profile belongs to'),\n industry: z.string().optional().describe('Industry'),\n role: z.string().optional().describe('Professional role'),\n interests: z.array(z.string()).optional().describe('Topics of interest'),\n lookingFor: z.array(z.string()).optional().describe('What the attendee is looking for'),\n visibility: z.string().optional().describe('Visibility'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, PROFILE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateNetworkingProfile: Record<string, unknown>;\n }>(ops.UPDATE_NETWORKING_PROFILE, { id, input });\n return jsonResult(data.eventfullyManagedUpdateNetworkingProfile);\n } catch (error) {\n ctx.logger.error('eventfullymanaged profiles_update failed', { error: String(error) });\n return errorResult(\n `Failed to update networking profile: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'profiles_delete')),\n {\n title: 'Delete Networking Profile',\n description: 'Delete a networking profile by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Networking profile ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteNetworkingProfile: boolean;\n }>(ops.DELETE_NETWORKING_PROFILE, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteNetworkingProfile, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged profiles_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete networking profile: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Matches ─────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'matches_list')),\n {\n title: 'List Networking Matches',\n description:\n 'List suggested networking matches, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedNetworkingMatches: {\n items: Array<Record<string, unknown>>;\n total: number;\n };\n }>(\n ops.LIST_NETWORKING_MATCHES,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedNetworkingMatches);\n } catch (error) {\n ctx.logger.error('eventfullymanaged matches_list failed', { error: String(error) });\n return errorResult(\n `Failed to list networking matches: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'matches_create')),\n {\n title: 'Create Networking Match',\n description:\n 'Create a networking match between two profiles. `eventId`, `sourceProfileId`, `targetProfileId`, `score` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n sourceProfileId: z.string().min(1).describe('Source networking profile ID'),\n targetProfileId: z.string().min(1).describe('Target networking profile ID'),\n score: z.number().int().describe('Match score'),\n reason: z.string().optional().describe('Why the match was suggested'),\n status: z.string().optional().describe('Status, e.g. \"suggested\", \"accepted\", \"declined\"'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, MATCH_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateNetworkingMatch: Record<string, unknown>;\n }>(ops.CREATE_NETWORKING_MATCH, { input });\n return jsonResult(data.eventfullyManagedCreateNetworkingMatch);\n } catch (error) {\n ctx.logger.error('eventfullymanaged matches_create failed', { error: String(error) });\n return errorResult(\n `Failed to create networking match: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'matches_update')),\n {\n title: 'Update Networking Match',\n description:\n 'Update a networking match. `eventId`, `sourceProfileId`, `targetProfileId`, `score` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Networking match ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n sourceProfileId: z.string().min(1).describe('Source networking profile ID'),\n targetProfileId: z.string().min(1).describe('Target networking profile ID'),\n score: z.number().int().describe('Match score'),\n reason: z.string().optional().describe('Why the match was suggested'),\n status: z.string().optional().describe('Status'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, MATCH_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateNetworkingMatch: Record<string, unknown>;\n }>(ops.UPDATE_NETWORKING_MATCH, { id, input });\n return jsonResult(data.eventfullyManagedUpdateNetworkingMatch);\n } catch (error) {\n ctx.logger.error('eventfullymanaged matches_update failed', { error: String(error) });\n return errorResult(\n `Failed to update networking match: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'matches_delete')),\n {\n title: 'Delete Networking Match',\n description: 'Delete a networking match by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Networking match ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteNetworkingMatch: boolean;\n }>(ops.DELETE_NETWORKING_MATCH, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteNetworkingMatch, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged matches_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete networking match: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Meetings ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'meetings_list')),\n {\n title: 'List Meetings',\n description:\n 'List scheduled 1:1 networking meetings, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedMeetings: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_MEETINGS, listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedMeetings);\n } catch (error) {\n ctx.logger.error('eventfullymanaged meetings_list failed', { error: String(error) });\n return errorResult(\n `Failed to list meetings: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'meetings_create')),\n {\n title: 'Create Meeting',\n description:\n 'Schedule a 1:1 networking meeting. `eventId`, `title`, `startsAt`, `endsAt` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n title: z.string().min(1).describe('Meeting title'),\n startsAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endsAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n sourceProfileId: z.string().optional().describe('Requesting profile ID'),\n targetProfileId: z.string().optional().describe('Invited profile ID'),\n status: z.string().optional().describe('Status, e.g. \"requested\", \"confirmed\", \"declined\"'),\n location: z.string().optional().describe('Meeting location'),\n notes: z.string().optional().describe('Free-text notes'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, MEETING_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateMeeting: Record<string, unknown>;\n }>(ops.CREATE_MEETING, { input });\n return jsonResult(data.eventfullyManagedCreateMeeting);\n } catch (error) {\n ctx.logger.error('eventfullymanaged meetings_create failed', { error: String(error) });\n return errorResult(\n `Failed to create meeting: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'meetings_update')),\n {\n title: 'Update Meeting',\n description:\n 'Update a networking meeting. `eventId`, `title`, `startsAt`, `endsAt` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Meeting ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n title: z.string().min(1).describe('Meeting title'),\n startsAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endsAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n sourceProfileId: z.string().optional().describe('Requesting profile ID'),\n targetProfileId: z.string().optional().describe('Invited profile ID'),\n status: z.string().optional().describe('Status'),\n location: z.string().optional().describe('Meeting location'),\n notes: z.string().optional().describe('Free-text notes'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, MEETING_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateMeeting: Record<string, unknown>;\n }>(ops.UPDATE_MEETING, { id, input });\n return jsonResult(data.eventfullyManagedUpdateMeeting);\n } catch (error) {\n ctx.logger.error('eventfullymanaged meetings_update failed', { error: String(error) });\n return errorResult(\n `Failed to update meeting: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'meetings_delete')),\n {\n title: 'Delete Meeting',\n description: 'Delete a networking meeting by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Meeting ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteMeeting: boolean }>(\n ops.DELETE_MEETING,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteMeeting, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged meetings_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete meeting: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged operational-content + dashboard tools.\n *\n * Surface (11): announcements_{list,upsert}, automation_rules_{list,upsert},\n * communication_campaigns_{list,upsert}, workflow_templates_{list,upsert},\n * analytics_snapshots_{list,upsert}, dashboard_summary.\n *\n * The five content surfaces are backed by the generic\n * `EventfullyManagedSimpleEntity` record (list) + the `Upsert*` mutations that\n * take an optional `id` (create when absent, update when present) plus a\n * `EventfullyManagedSimpleEntityInput` (all fields optional).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst SIMPLE_ENTITY_INPUT_KEYS = ['name', 'title', 'status', 'eventId', 'metadata'] as const;\n\ninterface SimpleSurface {\n /** tool-name suffix for the list tool, e.g. 'announcements_list' */\n listSuffix: string;\n /** tool-name suffix for the upsert tool, e.g. 'announcements_upsert' */\n upsertSuffix: string;\n /** human label, e.g. 'announcements' */\n label: string;\n /** root field on the list response, e.g. 'eventfullyManagedAnnouncements' */\n listRoot: string;\n /** root field on the upsert response, e.g. 'eventfullyManagedUpsertAnnouncement' */\n upsertRoot: string;\n listOp: string;\n upsertOp: string;\n}\n\nconst SURFACES: readonly SimpleSurface[] = [\n {\n listSuffix: 'announcements_list',\n upsertSuffix: 'announcements_upsert',\n label: 'announcements',\n listRoot: 'eventfullyManagedAnnouncements',\n upsertRoot: 'eventfullyManagedUpsertAnnouncement',\n listOp: ops.LIST_ANNOUNCEMENTS,\n upsertOp: ops.UPSERT_ANNOUNCEMENT,\n },\n {\n listSuffix: 'automation_rules_list',\n upsertSuffix: 'automation_rules_upsert',\n label: 'automation rules',\n listRoot: 'eventfullyManagedAutomationRules',\n upsertRoot: 'eventfullyManagedUpsertAutomationRule',\n listOp: ops.LIST_AUTOMATION_RULES,\n upsertOp: ops.UPSERT_AUTOMATION_RULE,\n },\n {\n listSuffix: 'communication_campaigns_list',\n upsertSuffix: 'communication_campaigns_upsert',\n label: 'communication campaigns',\n listRoot: 'eventfullyManagedCommunicationCampaigns',\n upsertRoot: 'eventfullyManagedUpsertCommunicationCampaign',\n listOp: ops.LIST_COMMUNICATION_CAMPAIGNS,\n upsertOp: ops.UPSERT_COMMUNICATION_CAMPAIGN,\n },\n {\n listSuffix: 'workflow_templates_list',\n upsertSuffix: 'workflow_templates_upsert',\n label: 'workflow templates',\n listRoot: 'eventfullyManagedWorkflowTemplates',\n upsertRoot: 'eventfullyManagedUpsertWorkflowTemplate',\n listOp: ops.LIST_WORKFLOW_TEMPLATES,\n upsertOp: ops.UPSERT_WORKFLOW_TEMPLATE,\n },\n {\n listSuffix: 'analytics_snapshots_list',\n upsertSuffix: 'analytics_snapshots_upsert',\n label: 'analytics snapshots',\n listRoot: 'eventfullyManagedAnalyticsSnapshots',\n upsertRoot: 'eventfullyManagedUpsertAnalyticsSnapshot',\n listOp: ops.LIST_ANALYTICS_SNAPSHOTS,\n upsertOp: ops.UPSERT_ANALYTICS_SNAPSHOT,\n },\n];\n\nexport function registerContentTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n for (const s of SURFACES) {\n server.registerTool(\n track(mcpToolName(ctx.productName, s.listSuffix)),\n {\n title: `List ${s.label}`,\n description: `List ${s.label}, optionally filtered by event, with pagination. Returns items + total.`,\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<Record<string, unknown>>(\n s.listOp,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data[s.listRoot]);\n } catch (error) {\n ctx.logger.error(`eventfullymanaged ${s.listSuffix} failed`, { error: String(error) });\n return errorResult(\n `Failed to list ${s.label}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, s.upsertSuffix)),\n {\n title: `Upsert ${s.label.replace(/s$/, '')}`,\n description: `Create or update a ${s.label.replace(/s$/, '')} record. Omit \\`id\\` to create; pass \\`id\\` to update. All content fields are optional.`,\n inputSchema: {\n id: z.string().optional().describe('Record ID — omit to create, pass to update'),\n name: z.string().optional().describe('Record name'),\n title: z.string().optional().describe('Record title'),\n status: z.string().optional().describe('Record status'),\n eventId: z.string().optional().describe('Associated event ID'),\n metadata: JsonObject.optional().describe(\n 'Arbitrary payload JSON (the real config lives here)',\n ),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, SIMPLE_ENTITY_INPUT_KEYS);\n const vars: Record<string, unknown> = { input };\n if (id !== undefined) vars.id = id;\n const data = await ctx.gql.workspace.request<Record<string, unknown>>(s.upsertOp, vars);\n return jsonResult(data[s.upsertRoot]);\n } catch (error) {\n ctx.logger.error(`eventfullymanaged ${s.upsertSuffix} failed`, { error: String(error) });\n return errorResult(\n `Failed to upsert ${s.label.replace(/s$/, '')}: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n },\n );\n }\n\n // ── Dashboard ───────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'dashboard_summary')),\n {\n title: 'Dashboard Summary',\n description:\n 'Headline event-management KPIs: total/active events, venues, registrations, attendees, sponsors, upcoming sessions, and the latest events.',\n inputSchema: {\n workspaceId: z\n .string()\n .optional()\n .describe('Optional workspace ID (defaults to the gateway-bound workspace)'),\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDashboardSummary: Record<string, unknown>;\n }>(ops.DASHBOARD_SUMMARY, listVars(args, ['workspaceId']));\n return jsonResult(data.eventfullyManagedDashboardSummary);\n } catch (error) {\n ctx.logger.error('eventfullymanaged dashboard_summary failed', { error: String(error) });\n return errorResult(\n `Failed to get dashboard summary: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpResourceUri, type McpContext } from '../../core/index.js';\nimport { DASHBOARD_SUMMARY, LIST_EVENTS, LIST_VENUES } from './operations.js';\n\n/**\n * Read-only Eventfullymanaged MCP resources. URIs are product-prefixed via\n * mcpResourceUri so they don't collide when multiple MCP servers run side by\n * side. Each is tracked at function entry so the shell manifest reflects what\n * was registered even though registration is imperative.\n */\nexport function registerEventfullymanagedResources(\n server: McpServer,\n ctx: McpContext,\n track: (uri: string) => string,\n): void {\n const schemaUri = track(mcpResourceUri(ctx.productName, 'schema'));\n const dashboardUri = track(mcpResourceUri(ctx.productName, 'dashboard'));\n const eventsUri = track(mcpResourceUri(ctx.productName, 'events'));\n const venuesUri = track(mcpResourceUri(ctx.productName, 'venues'));\n\n // <product>://schema — domain overview\n server.registerResource(\n 'eventfullymanaged-schema',\n schemaUri,\n {\n title: 'Eventfullymanaged Domain Schema',\n description:\n 'Overview of the Eventfullymanaged event-management domain — entities, free-form status conventions, and the per-entity tool surface.',\n mimeType: 'text/plain',\n },\n async () => {\n ctx.logger.debug(`Resource ${schemaUri} requested`);\n const schema = `# Eventfullymanaged Domain (Overview)\n\nEnd-to-end event-management platform: plan events, sell tickets, run check-in,\npower networking, and operate the show.\n\n## Entities\n- EventfullyManagedEvent — the top-level event\n- EventfullyManagedVenue (+ EventfullyManagedFloorPlan) — physical venues + floor plans\n- EventfullyManagedEventSession — agenda/program sessions\n- EventfullyManagedSpeaker — speaker profiles\n- EventfullyManagedAttendee — attendee records\n- EventfullyManagedRegistration — ticket registrations\n- EventfullyManagedTicketType — ticket types (price as decimal string)\n- EventfullyManagedPromoCode — discount codes\n- EventfullyManagedSponsor — event sponsors\n- EventfullyManagedExhibitor — expo exhibitors\n- EventfullyManagedLead — captured booth/sponsor leads\n- EventfullyManagedCheckInStation / EventfullyManagedCheckInRecord — check-in kiosks + scans\n- EventfullyManagedNetworkingProfile / NetworkingMatch / Meeting — attendee networking\n- \"Simple entity\" surfaces (upsertable): announcements, automation rules,\n communication campaigns, workflow templates, analytics snapshots\n\n## Conventions\n- status / type / visibility / level / direction / method / discountType are\n FREE-FORM strings (no GraphQL enums) — use the values your event app expects.\n- Monetary fields (ticket price, promo discountValue, registration totalAmount)\n are DECIMAL STRINGS, not numbers.\n- The create and update mutations share one input type per entity, so update\n requires the same required fields as create (plus the id).\n- All operations run against the WORKSPACE gateway and are workspace-scoped via\n gateway headers; list queries also accept an OPTIONAL workspaceId filter.\n\n## Tool groups\nevents; venues + floor_plans; sessions + speakers (agenda); attendees +\nregistrations; tickets + promo_codes; sponsors + exhibitors + leads; checkin\n(stations + records); networking (profiles + matches + meetings); content\n(announcements / automation_rules / communication_campaigns / workflow_templates\n/ analytics_snapshots) + dashboard_summary.\n`;\n return {\n contents: [{ uri: schemaUri, text: schema, mimeType: 'text/plain' }],\n };\n },\n );\n\n // <product>://dashboard — headline KPIs\n server.registerResource(\n 'eventfullymanaged-dashboard',\n dashboardUri,\n {\n title: 'Eventfullymanaged Dashboard Summary',\n description:\n 'Live headline KPIs (events, venues, registrations, attendees, sponsors, upcoming sessions, latest events).',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${dashboardUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDashboardSummary: unknown;\n }>(DASHBOARD_SUMMARY, {});\n return {\n contents: [\n {\n uri: dashboardUri,\n text: JSON.stringify(data.eventfullyManagedDashboardSummary, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: dashboardUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://events — recent events\n server.registerResource(\n 'eventfullymanaged-events',\n eventsUri,\n {\n title: 'Eventfullymanaged Event Directory',\n description: 'The first 50 events in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${eventsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedEvents: unknown }>(\n LIST_EVENTS,\n { limit: 50, offset: 0 },\n );\n return {\n contents: [\n {\n uri: eventsUri,\n text: JSON.stringify(data.eventfullyManagedEvents, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: eventsUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://venues — venue directory\n server.registerResource(\n 'eventfullymanaged-venues',\n venuesUri,\n {\n title: 'Eventfullymanaged Venue Directory',\n description: 'The first 50 venues in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${venuesUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedVenues: unknown }>(\n LIST_VENUES,\n { limit: 50, offset: 0 },\n );\n return {\n contents: [\n {\n uri: venuesUri,\n text: JSON.stringify(data.eventfullyManagedVenues, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: venuesUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n}\n","import { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpPromptName, type McpContext } from '../../core/index.js';\n\n/**\n * Eventfullymanaged MCP prompts — guided multi-step workflows. Names are\n * product-prefixed via mcpPromptName and tracked at function entry.\n */\nexport function registerEventfullymanagedPrompts(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n const p = ctx.productName;\n const setupName = track(mcpPromptName(p, 'event-setup'));\n const opsName = track(mcpPromptName(p, 'event-ops'));\n\n // <product>-event-setup — stand up a new event end to end\n server.registerPrompt(\n setupName,\n {\n title: 'Event Setup',\n description:\n 'Guide for standing up a new event end to end: create the event, pick/create a venue, build the agenda, define ticket types, and open registration.',\n argsSchema: {\n name: z.string().optional().describe('Event name'),\n type: z.string().optional().describe('Event type (conference, workshop, webinar, ...)'),\n },\n },\n ({ name, type }) => {\n ctx.logger.debug(`Prompt ${setupName} called`, { name, type });\n const nameNote = name ? `Use the event name \"${name}\".` : 'Ask the user for the event name.';\n const typeNote = type ? `Use type ${type}.` : 'Help the user pick an event type.';\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Help me set up a new Eventfullymanaged event.\n\n1. **Create Event**: Use ${p}_events_create. ${nameNote} ${typeNote} Provide a timezone (IANA, e.g. \"Asia/Kolkata\") and startAt/endAt ISO-8601 timestamps.\n2. **Venue**: Use ${p}_venues_list to reuse an existing venue, or ${p}_venues_create for a new one. Optionally add a layout with ${p}_floor_plans_create.\n3. **Agenda**: Add program sessions with ${p}_sessions_create (eventId, title, sessionType, startsAt/endsAt) and speakers with ${p}_speakers_create.\n4. **Tickets**: Define ticket types with ${p}_tickets_create (price is a decimal string). Optionally add discounts with ${p}_promo_codes_create.\n5. **Sponsors / Exhibitors**: Use ${p}_sponsors_create and ${p}_exhibitors_create as needed.\n6. **Open Registration**: Confirm ticket types are isActive, then publish the event via ${p}_events_update with status=\"published\".\n\nShow results at each step and confirm before publishing.`,\n },\n },\n ],\n };\n },\n );\n\n // <product>-event-ops — run a live event day\n server.registerPrompt(\n opsName,\n {\n title: 'Event Operations',\n description:\n 'Live event-day operations: review KPIs, manage registrations + check-in, drive sponsor/exhibitor lead capture, and power attendee networking.',\n argsSchema: {\n eventId: z.string().optional().describe('Event ID to operate'),\n },\n },\n ({ eventId }) => {\n ctx.logger.debug(`Prompt ${opsName} called`, { eventId });\n const eventNote = eventId\n ? `Operate event \"${eventId}\".`\n : `First list events with ${p}_events_list and pick one.`;\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Run live Eventfullymanaged operations. ${eventNote}\n\n1. **KPIs**: Use ${p}_dashboard_summary for headline numbers.\n2. **Registrations**: Use ${p}_registrations_list (filter by eventId) to track sign-ups; create walk-ins with ${p}_attendees_create + ${p}_registrations_create.\n3. **Check-in**: Ensure stations are live with ${p}_checkin_stations_list; log scans with ${p}_checkin_records_create (direction \"in\"/\"out\").\n4. **Sponsors & Leads**: Capture booth leads with ${p}_leads_create and progress them with ${p}_leads_update (status/score).\n5. **Networking**: Review ${p}_matches_list and confirm 1:1s with ${p}_meetings_update.\n6. **Comms**: Push updates by upserting an announcement with ${p}_announcements_upsert.\n\nSummarize what needs attention after each step.`,\n },\n },\n ],\n };\n },\n );\n}\n","/**\n * Eventfullymanaged module — domain module for the future-products ecosystem program.\n *\n * Covers the event-management domain of wspace-eventfullymanaged-svc grouped\n * into per-entity sub-APIs: events, venues (+ floor plans), agenda (event\n * sessions + speakers), attendees (+ registrations), ticketing (ticket types +\n * promo codes), sponsorship (sponsors + exhibitors + leads), check-in (stations\n * + records), networking (profiles + matches + meetings), and operational\n * content (announcements / automation rules / communication campaigns /\n * workflow templates / analytics snapshots) + a dashboard summary. Mirrors the\n * rich kadaikodi/crewfoundry modules' structure (tools/<entity>.ts +\n * resources.ts + prompts.ts) and the canonical typing discipline.\n *\n * Backend: ~/products/wspace/eventfullymanaged/wspace-eventfullymanaged-svc/\n * (Hive service name `eventfullymanaged`). All operations run against the\n * WORKSPACE gateway. The subgraph exposes only the federation noop `_empty`\n * (no @public health field), so there is intentionally NO health tool.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpContext, McpModule, ModuleRegistration } from '../../core/index.js';\nimport { registerEventTools } from './tools/events.js';\nimport { registerVenueTools } from './tools/venues.js';\nimport { registerAgendaTools } from './tools/agenda.js';\nimport { registerAttendeeTools } from './tools/attendees.js';\nimport { registerTicketingTools } from './tools/ticketing.js';\nimport { registerSponsorshipTools } from './tools/sponsorship.js';\nimport { registerCheckinTools } from './tools/checkin.js';\nimport { registerNetworkingTools } from './tools/networking.js';\nimport { registerContentTools } from './tools/content.js';\nimport { registerEventfullymanagedResources } from './resources.js';\nimport { registerEventfullymanagedPrompts } from './prompts.js';\n\nconst eventfullymanagedModule: McpModule = {\n id: 'eventfullymanaged',\n version: '0.0.1',\n displayName: 'Eventfullymanaged',\n dependsOn: ['auth'],\n capabilities: { tools: {}, resources: {}, prompts: {} },\n\n register(server: McpServer, ctx: McpContext): ModuleRegistration {\n const tools: string[] = [];\n const resources: string[] = [];\n const prompts: string[] = [];\n\n const trackTool = (n: string): string => {\n tools.push(n);\n return n;\n };\n const trackResource = (uri: string): string => {\n resources.push(uri);\n return uri;\n };\n const trackPrompt = (n: string): string => {\n prompts.push(n);\n return n;\n };\n\n registerEventTools(server, ctx, trackTool);\n registerVenueTools(server, ctx, trackTool);\n registerAgendaTools(server, ctx, trackTool);\n registerAttendeeTools(server, ctx, trackTool);\n registerTicketingTools(server, ctx, trackTool);\n registerSponsorshipTools(server, ctx, trackTool);\n registerCheckinTools(server, ctx, trackTool);\n registerNetworkingTools(server, ctx, trackTool);\n registerContentTools(server, ctx, trackTool);\n\n registerEventfullymanagedResources(server, ctx, trackResource);\n registerEventfullymanagedPrompts(server, ctx, trackPrompt);\n\n return { tools, resources, prompts };\n },\n};\n\nexport default eventfullymanagedModule;\n"]}
1
+ {"version":3,"sources":["../../../src/core/errors.ts","../../../src/core/tool-name.ts","../../../src/core/result.ts","../../../src/modules/eventfullymanaged/operations.ts","../../../src/modules/eventfullymanaged/tools/shared.ts","../../../src/modules/eventfullymanaged/tools/events.ts","../../../src/modules/eventfullymanaged/tools/venues.ts","../../../src/modules/eventfullymanaged/tools/agenda.ts","../../../src/modules/eventfullymanaged/tools/attendees.ts","../../../src/modules/eventfullymanaged/tools/ticketing.ts","../../../src/modules/eventfullymanaged/tools/sponsorship.ts","../../../src/modules/eventfullymanaged/tools/checkin.ts","../../../src/modules/eventfullymanaged/tools/networking.ts","../../../src/modules/eventfullymanaged/tools/content.ts","../../../src/modules/eventfullymanaged/resources.ts","../../../src/modules/eventfullymanaged/prompts.ts","../../../src/modules/eventfullymanaged/index.ts"],"names":["z"],"mappings":";;;;;;;;;;;AA8BO,IAAM,gBAAA,GAAN,cAA+B,KAAA,CAAM;AAAA,EACjB,KAAA;AAAA,EAEzB,WAAA,CAAY,SAAiB,KAAA,EAAiB;AAC5C,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,kBAAA;AACZ,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,EACf;AACF,CAAA;;;AC1BA,IAAM,oBAAA,GAAuB,EAAA;AAE7B,SAAS,cAAA,CAAe,MAAc,IAAA,EAA8C;AAClF,EAAA,IAAuB,IAAA,CAAK,MAAA,GAAS,oBAAA,EAAsB;AACzD,IAAA,MAAM,IAAI,gBAAA;AAAA,MACR,CAAA,WAAA,EAAc,IAAI,CAAA,UAAA,EAAa,oBAAoB,CAAA,8CAAA;AAAA,KACrD;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;AAMO,SAAS,WAAA,CAAY,gBAAwB,KAAA,EAAyB;AAC3E,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,MAAM,IAAI,iBAAiB,sCAAsC,CAAA;AAAA,EACnE;AACA,EAAA,MAAM,IAAA,GAAO,CAAC,WAAA,EAAa,GAAG,KAAK,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAC7D,EAAA,OAAO,cAAA,CAAe,IAAY,CAAA;AACpC;AAMO,SAAS,cAAA,CAAe,gBAAwB,KAAA,EAAyB;AAC9E,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,MAAM,IAAI,iBAAiB,yCAAyC,CAAA;AAAA,EACtE;AACA,EAAA,OAAO,CAAA,EAAG,WAAW,CAAA,GAAA,EAAM,KAAA,CAAM,OAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAC5D;AAMO,SAAS,aAAA,CAAc,gBAAwB,KAAA,EAAyB;AAC7E,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,MAAM,IAAI,iBAAiB,wCAAwC,CAAA;AAAA,EACrE;AACA,EAAA,OAAO,CAAC,aAAa,GAAG,KAAK,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AACzD;;;ACfO,SAAS,UAAA,CAAW,MAAe,UAAA,EAAkD;AAC1F,EAAA,MAAM,MAAA,GAAqB;AAAA,IACzB,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAA,EAAG;AAAA,GACjE;AAIA,EAAA,OAAO,MAAA;AACT;AAaO,SAAS,WAAA,CAAY,SAAiB,IAAA,EAA2B;AACtE,EAAA,MAAM,IAAA,GAAO,IAAA,GAAO,CAAA,EAAG,OAAO;;AAAA,MAAA,EAAa,IAAI,CAAA,CAAA,GAAK,OAAA;AACpD,EAAA,OAAO,EAAE,OAAA,EAAS,CAAC,EAAE,IAAA,EAAM,QAAQ,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,IAAA,EAAK;AAC5D;;;ACjCO,IAAM,YAAA,GAAe;AAAA;AAAA;AAAA,CAAA;AAKrB,IAAM,YAAA,GAAe;AAAA;AAAA;AAAA,CAAA;AAKrB,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA,CAAA;AAK1B,IAAM,oBAAA,GAAuB;AAAA;AAAA;AAAA,CAAA;AAK7B,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,CAAA;AAKvB,IAAM,eAAA,GAAkB;AAAA;AAAA;AAAA,CAAA;AAKxB,IAAM,mBAAA,GAAsB;AAAA;AAAA;AAAA,CAAA;AAK5B,IAAM,kBAAA,GAAqB;AAAA;AAAA;AAAA,CAAA;AAK3B,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA,CAAA;AAK1B,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,CAAA;AAKvB,IAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA,CAAA;AAKzB,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA,CAAA;AAKpB,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA,CAAA;AAKhC,IAAM,sBAAA,GAAyB;AAAA;AAAA;AAAA,CAAA;AAK/B,IAAM,yBAAA,GAA4B;AAAA;AAAA;AAAA,CAAA;AAKlC,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA,CAAA;AAKhC,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,CAAA;AAUvB,IAAM,oBAAA,GAAuB;AAAA;AAAA,CAAA;AAI7B,IAAM,wBAAA,GAA2B;AAAA;AAAA;AAAA;AAAA,CAAA;AAUjC,IAAM,SAAA,GAAY;AAAA;AAAA;AAAA,MAAA,EAGjB,YAAY;AAAA;AAAA;AAAA,CAAA;AAKb,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAaX,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMrB,IAAM,YAAA,GAAe;AAAA;AAAA;AAAA,MAAA,EAGpB,YAAY;AAAA;AAAA;AAAA,CAAA;AAKb,IAAM,YAAA,GAAe;AAAA;AAAA;AAAA,MAAA,EAGpB,YAAY;AAAA;AAAA;AAAA,CAAA;AAKb,IAAM,YAAA,GAAe;AAAA;AAAA;AAAA;AAAA,CAAA;AAUrB,IAAM,SAAA,GAAY;AAAA;AAAA;AAAA,MAAA,EAGjB,YAAY;AAAA;AAAA;AAAA,CAAA;AAKb,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAaX,YAAY,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMrB,IAAM,YAAA,GAAe;AAAA;AAAA;AAAA,MAAA,EAGpB,YAAY;AAAA;AAAA;AAAA,CAAA;AAKb,IAAM,YAAA,GAAe;AAAA;AAAA;AAAA,MAAA,EAGpB,YAAY;AAAA;AAAA;AAAA,CAAA;AAKb,IAAM,YAAA,GAAe;AAAA;AAAA;AAAA;AAAA,CAAA;AAUrB,IAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAahB,iBAAiB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM1B,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA,MAAA,EAGzB,iBAAiB;AAAA;AAAA;AAAA,CAAA;AAKlB,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMzB,iBAAiB;AAAA;AAAA;AAAA,CAAA;AASlB,IAAM,mBAAA,GAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAanB,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,oBAAA,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAK5B,oBAAoB;AAAA;AAAA;AAAA,CAAA;AAKrB,IAAM,oBAAA,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAM5B,oBAAoB;AAAA;AAAA;AAAA,CAAA;AASrB,IAAM,aAAA,GAAgB;AAAA;AAAA;AAAA,cAAA,EAGb,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMvB,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,MAAA,EAGtB,cAAc;AAAA;AAAA;AAAA,CAAA;AAKf,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,MAAA,EAGtB,cAAc;AAAA;AAAA;AAAA,CAAA;AASf,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAad,eAAe,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMxB,IAAM,eAAA,GAAkB;AAAA;AAAA;AAAA,MAAA,EAGvB,eAAe;AAAA;AAAA;AAAA,CAAA;AAKhB,IAAM,eAAA,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMvB,eAAe;AAAA;AAAA;AAAA,CAAA;AAShB,IAAM,kBAAA,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAalB,mBAAmB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM5B,IAAM,mBAAA,GAAsB;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAK3B,mBAAmB;AAAA;AAAA;AAAA,CAAA;AAKpB,IAAM,mBAAA,GAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAM3B,mBAAmB;AAAA;AAAA;AAAA,CAAA;AASpB,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAejB,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM3B,IAAM,kBAAA,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAK1B,kBAAkB;AAAA;AAAA;AAAA,CAAA;AAKnB,IAAM,kBAAA,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAM1B,kBAAkB;AAAA;AAAA;AAAA,CAAA;AAKnB,IAAM,kBAAA,GAAqB;AAAA;AAAA;AAAA;AAAA,CAAA;AAU3B,IAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAehB,iBAAiB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM1B,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA,MAAA,EAGzB,iBAAiB;AAAA;AAAA;AAAA,CAAA;AAKlB,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMzB,iBAAiB;AAAA;AAAA;AAAA,CAAA;AAKlB,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA;AAAA,CAAA;AAU1B,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA,MAAA,EAGnB,cAAc;AAAA;AAAA;AAAA,CAAA;AAKf,IAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAeb,cAAc,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMvB,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,MAAA,EAGtB,cAAc;AAAA;AAAA;AAAA,CAAA;AAKf,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,MAAA,EAGtB,cAAc;AAAA;AAAA;AAAA,CAAA;AAKf,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA,CAAA;AAUvB,IAAM,eAAA,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAef,gBAAgB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMzB,IAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA,MAAA,EAGxB,gBAAgB;AAAA;AAAA;AAAA,CAAA;AAKjB,IAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMxB,gBAAgB;AAAA;AAAA;AAAA,CAAA;AAKjB,IAAM,gBAAA,GAAmB;AAAA;AAAA;AAAA;AAAA,CAAA;AAUzB,IAAM,UAAA,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAeV,WAAW,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMpB,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA,MAAA,EAGnB,WAAW;AAAA;AAAA;AAAA,CAAA;AAKZ,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA,MAAA,EAGnB,WAAW;AAAA;AAAA;AAAA,CAAA;AAKZ,IAAM,WAAA,GAAc;AAAA;AAAA;AAAA;AAAA,CAAA;AAcpB,IAAM,sBAAA,GAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAatB,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAK/B,uBAAuB;AAAA;AAAA;AAAA,CAAA;AAKxB,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAM/B,uBAAuB;AAAA;AAAA;AAAA,CAAA;AAKxB,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA,CAAA;AAMhC,IAAM,qBAAA,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAarB,sBAAsB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM/B,IAAM,sBAAA,GAAyB;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAK9B,sBAAsB;AAAA;AAAA;AAAA,CAAA;AAKvB,IAAM,sBAAA,GAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAM9B,sBAAsB;AAAA;AAAA;AAAA,CAAA;AAKvB,IAAM,sBAAA,GAAyB;AAAA;AAAA;AAAA;AAAA,CAAA;AAc/B,IAAM,wBAAA,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAaxB,yBAAyB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAMlC,IAAM,yBAAA,GAA4B;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAKjC,yBAAyB;AAAA;AAAA;AAAA,CAAA;AAK1B,IAAM,yBAAA,GAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMjC,yBAAyB;AAAA;AAAA;AAAA,CAAA;AAK1B,IAAM,yBAAA,GAA4B;AAAA;AAAA;AAAA;AAAA,CAAA;AAMlC,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAavB,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAK/B,uBAAuB;AAAA;AAAA;AAAA,CAAA;AAKxB,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAM/B,uBAAuB;AAAA;AAAA;AAAA,CAAA;AAKxB,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA,CAAA;AAMhC,IAAM,aAAA,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAab,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,MAAA,EAGtB,cAAc;AAAA;AAAA;AAAA,CAAA;AAKf,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA,MAAA,EAGtB,cAAc;AAAA;AAAA;AAAA,CAAA;AAKf,IAAM,cAAA,GAAiB;AAAA;AAAA;AAAA;AAAA,CAAA;AAUvB,IAAM,kBAAA,GAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAalB,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,mBAAA,GAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAM3B,oBAAoB;AAAA;AAAA;AAAA,CAAA;AAKrB,IAAM,qBAAA,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAarB,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,sBAAA,GAAyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAM9B,oBAAoB;AAAA;AAAA;AAAA,CAAA;AAKrB,IAAM,4BAAA,GAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAa5B,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,6BAAA,GAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMrC,oBAAoB;AAAA;AAAA;AAAA,CAAA;AAKrB,IAAM,uBAAA,GAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAavB,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,wBAAA,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMhC,oBAAoB;AAAA;AAAA;AAAA,CAAA;AAKrB,IAAM,wBAAA,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAaxB,oBAAoB,CAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAM7B,IAAM,yBAAA,GAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,EAMjC,oBAAoB;AAAA;AAAA;AAAA,CAAA;AASrB,IAAM,iBAAA,GAAoB;AAAA;AAAA;AAAA,MAAA,EAGzB,wBAAwB;AAAA;AAAA;AAAA,CAAA;ACvjCzB,IAAM,UAAA,GAAaA,MAAE,MAAA,CAAOA,KAAAA,CAAE,QAAO,EAAGA,KAAAA,CAAE,SAAS,CAAA;AAGnD,IAAM,eAAA,GAAkB;AAAA,EAC7B,aAAaA,KAAAA,CACV,MAAA,GACA,QAAA,EAAS,CACT,SAAS,wEAAwE,CAAA;AAAA,EACpF,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,WAAW,CAAA;AAAA,EACvD,MAAA,EAAQA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,+BAA+B;AAC9E,CAAA;AAMO,SAAS,QAAA,CACd,MACA,IAAA,EACyB;AACzB,EAAA,MAAM,MAA+B,EAAC;AACtC,EAAA,KAAA,MAAW,KAAK,IAAA,EAAM;AACpB,IAAA,IAAI,IAAA,CAAK,CAAC,CAAA,KAAM,MAAA,MAAe,CAAC,CAAA,GAAI,KAAK,CAAC,CAAA;AAAA,EAC5C;AACA,EAAA,OAAO,GAAA;AACT;AAOO,SAAS,UAAA,CACd,MACA,IAAA,EACyB;AACzB,EAAA,MAAM,QAAiC,EAAC;AACxC,EAAA,KAAA,MAAW,KAAK,IAAA,EAAM;AACpB,IAAA,IAAI,IAAA,CAAK,CAAC,CAAA,KAAM,MAAA,QAAiB,CAAC,CAAA,GAAI,KAAK,CAAC,CAAA;AAAA,EAC9C;AACA,EAAA,OAAO,KAAA;AACT;;;AC1CA,IAAM,gBAAA,GAAmB;AAAA,EACvB,MAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,kBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AACN,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,aAAa,CAAC,CAAA;AAAA,IACjD;AAAA,MACE,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EACE,sHAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gDAAgD,CAAA;AAAA,QACvF,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,WAAA,EAAa,QAAA,CAAS,IAAA,EAAM,CAAC,QAAA,EAAU,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AAChF,QAAA,OAAO,UAAA,CAAW,KAAK,uBAAuB,CAAA;AAAA,MAChD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,sCAAA,EAAwC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACjF,QAAA,OAAO,WAAA;AAAA,UACL,0BAA0B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAClF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,YAAY,CAAC,CAAA;AAAA,IAChD;AAAA,MACE,KAAA,EAAO,WAAA;AAAA,MACP,WAAA,EAAa,6BAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,UAAU,CAAA;AAAE,KACrD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,SAAA,EAAW,EAAE,EAAA,EAAI,CAAA;AACxB,QAAA,IAAI,CAAC,IAAA,CAAK,sBAAA,SAA+B,WAAA,CAAY,CAAA,MAAA,EAAS,EAAE,CAAA,UAAA,CAAY,CAAA;AAC5E,QAAA,OAAO,UAAA,CAAW,KAAK,sBAAsB,CAAA;AAAA,MAC/C,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,qCAAA,EAAuC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAChF,QAAA,OAAO,WAAA;AAAA,UACL,wBAAwB,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAChF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,cAAA;AAAA,MACP,WAAA,EACE,+JAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,YAAY,CAAA;AAAA,QAC7C,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,sDAAsD,CAAA;AAAA,QACvF,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,oCAAoC,CAAA;AAAA,QACzE,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,QACzE,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,QACrE,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC/D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6CAA6C,CAAA;AAAA,QACpF,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA,QACjF,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,QACjE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,gBAAgB,CAAA;AAC/C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,YAAA,EAAc,EAAE,KAAA,EAAO,CAAA;AAC9B,QAAA,OAAO,UAAA,CAAW,KAAK,4BAA4B,CAAA;AAAA,MACrD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,2BAA2B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACnF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,cAAA;AAAA,MACP,WAAA,EACE,8IAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,UAAU,CAAA;AAAA,QAClC,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,YAAY,CAAA;AAAA,QAC7C,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,YAAY,CAAA;AAAA,QAC7C,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,eAAe,CAAA;AAAA,QACpD,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,QACzE,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,QACrE,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC/D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA,QACzD,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,YAAY,CAAA;AAAA,QACvD,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,QACjE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,gBAAgB,CAAA;AAC/C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,YAAA,EAAc,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AAClC,QAAA,OAAO,UAAA,CAAW,KAAK,4BAA4B,CAAA;AAAA,MACrD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,2BAA2B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACnF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAa,iDAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,UAAU,CAAA;AAAE,KACrD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAC/B,YAAA;AAAA,UACJ,EAAE,EAAA;AAAG,SACP;AACA,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,4BAAA,EAA8B,IAAI,CAAA;AAAA,MACtE,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,2BAA2B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACnF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;AChKA,IAAM,gBAAA,GAAmB;AAAA,EACvB,MAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,qBAAA,GAAwB;AAAA,EAC5B,MAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,kBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AAEN,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,aAAa,CAAC,CAAA;AAAA,IACjD;AAAA,MACE,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EAAa,wEAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA,QACnF,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,WAAA,EAAa,QAAA,CAAS,IAAA,EAAM,CAAC,QAAA,EAAU,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AAChF,QAAA,OAAO,UAAA,CAAW,KAAK,uBAAuB,CAAA;AAAA,MAChD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,sCAAA,EAAwC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACjF,QAAA,OAAO,WAAA;AAAA,UACL,0BAA0B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAClF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,YAAY,CAAC,CAAA;AAAA,IAChD;AAAA,MACE,KAAA,EAAO,WAAA;AAAA,MACP,WAAA,EAAa,6BAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,UAAU,CAAA;AAAE,KACrD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,SAAA,EAAW,EAAE,EAAA,EAAI,CAAA;AACxB,QAAA,IAAI,CAAC,IAAA,CAAK,sBAAA,SAA+B,WAAA,CAAY,CAAA,MAAA,EAAS,EAAE,CAAA,UAAA,CAAY,CAAA;AAC5E,QAAA,OAAO,UAAA,CAAW,KAAK,sBAAsB,CAAA;AAAA,MAC/C,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,qCAAA,EAAuC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAChF,QAAA,OAAO,WAAA;AAAA,UACL,wBAAwB,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAChF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,cAAA;AAAA,MACP,WAAA,EACE,qFAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,YAAY,CAAA;AAAA,QAC7C,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC/D,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,QAC7D,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,MAAM,CAAA;AAAA,QAC3C,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA,QACpD,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,SAAS,CAAA;AAAA,QACjD,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,QACxD,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,QACjE,SAAA,EAAWA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,cAAc,CAAA;AAAA,QACjE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA,QAC1E,YAAA,EAAc,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QACjE,OAAA,EAAS,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA,QACtD,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,gBAAgB,CAAA;AAC/C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,YAAA,EAAc,EAAE,KAAA,EAAO,CAAA;AAC9B,QAAA,OAAO,UAAA,CAAW,KAAK,4BAA4B,CAAA;AAAA,MACrD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,2BAA2B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACnF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,cAAA;AAAA,MACP,WAAA,EACE,qFAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,UAAU,CAAA;AAAA,QAClC,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,YAAY,CAAA;AAAA,QAC7C,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC/D,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,QAC7D,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,MAAM,CAAA;AAAA,QAC3C,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA,QACpD,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,SAAS,CAAA;AAAA,QACjD,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,QACxD,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,QACjE,SAAA,EAAWA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,cAAc,CAAA;AAAA,QACjE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA,QAC/C,YAAA,EAAc,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QACjE,OAAA,EAAS,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA,QACtD,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,gBAAgB,CAAA;AAC/C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,YAAA,EAAc,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AAClC,QAAA,OAAO,UAAA,CAAW,KAAK,4BAA4B,CAAA;AAAA,MACrD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,2BAA2B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACnF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAa,gDAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,UAAU,CAAA;AAAE,KACrD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAC/B,YAAA;AAAA,UACJ,EAAE,EAAA;AAAG,SACP;AACA,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,4BAAA,EAA8B,IAAI,CAAA;AAAA,MACtE,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,2BAA2B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACnF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,kBAAkB,CAAC,CAAA;AAAA,IACtD;AAAA,MACE,KAAA,EAAO,kBAAA;AAAA,MACP,WAAA,EAAa,kEAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,gBAAA,EAAkB,QAAA,CAAS,IAAA,EAAM,CAAC,SAAA,EAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AACtF,QAAA,OAAO,UAAA,CAAW,KAAK,2BAA2B,CAAA;AAAA,MACpD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,2CAAA,EAA6C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACtF,QAAA,OAAO,WAAA;AAAA,UACL,+BAA+B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,oBAAoB,CAAC,CAAA;AAAA,IACxD;AAAA,MACE,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EACE,sGAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QAClD,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAC/D,UAAA,EAAY,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,0CAA0C,CAAA;AAAA,QACrF,kBAAkBA,KAAAA,CACf,KAAA,CAAM,CAAC,UAAA,EAAYA,MAAE,KAAA,CAAMA,KAAAA,CAAE,OAAA,EAAS,CAAC,CAAC,CAAA,CACxC,QAAA,EAAS,CACT,SAAS,iDAAiD;AAAA;AAC/D,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,qBAAqB,CAAA;AACpD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,iBAAA,EAAmB,EAAE,KAAA,EAAO,CAAA;AACnC,QAAA,OAAO,UAAA,CAAW,KAAK,gCAAgC,CAAA;AAAA,MACzD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,6CAAA,EAA+C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACxF,QAAA,OAAO,WAAA;AAAA,UACL,gCAAgC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACxF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,oBAAoB,CAAC,CAAA;AAAA,IACxD;AAAA,MACE,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EAAa,8EAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA,QACvC,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QAClD,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAC/D,UAAA,EAAY,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,QAC5D,kBAAkBA,KAAAA,CACf,KAAA,CAAM,CAAC,UAAA,EAAYA,MAAE,KAAA,CAAMA,KAAAA,CAAE,OAAA,EAAS,CAAC,CAAC,CAAA,CACxC,QAAA,EAAS,CACT,SAAS,wBAAwB;AAAA;AACtC,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,qBAAqB,CAAA;AACpD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,iBAAA,EAAmB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACvC,QAAA,OAAO,UAAA,CAAW,KAAK,gCAAgC,CAAA;AAAA,MACzD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,6CAAA,EAA+C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACxF,QAAA,OAAO,WAAA;AAAA,UACL,gCAAgC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACxF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;AC5QA,IAAM,kBAAA,GAAqB;AAAA,EACzB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,kBAAA,GAAqB;AAAA,EACzB,UAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,mBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AAEN,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,sBAAA;AAAA,MACP,WAAA,EACE,qGAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,mBAAA,EAAqB,QAAA,CAAS,IAAA,EAAM,CAAC,SAAA,EAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AACzF,QAAA,OAAO,UAAA,CAAW,KAAK,8BAA8B,CAAA;AAAA,MACvD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,mCAAmC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC3F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,uBAAA;AAAA,MACP,WAAA,EACE,gGAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,eAAe,CAAA;AAAA,QACjD,WAAA,EAAaA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,+CAA+C,CAAA;AAAA,QACvF,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,QAC1E,MAAA,EAAQA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,QACtE,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,QACjE,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QACzD,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uCAAuC,CAAA;AAAA,QAC9E,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,QACjE,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,QACvD,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,oBAAA,EAAsB,EAAE,KAAA,EAAO,CAAA;AACtC,QAAA,OAAO,UAAA,CAAW,KAAK,mCAAmC,CAAA;AAAA,MAC5D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,oCAAoC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC5F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,uBAAA;AAAA,MACP,WAAA,EACE,sJAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC3C,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,eAAe,CAAA;AAAA,QACjD,WAAA,EAAaA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,cAAc,CAAA;AAAA,QACtD,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,QAC1E,MAAA,EAAQA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,QACtE,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,QACjE,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QACzD,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA,QAC/C,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,QACjE,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,QACvD,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,oBAAA,EAAsB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AAC1C,QAAA,OAAO,UAAA,CAAW,KAAK,mCAAmC,CAAA;AAAA,MAC5D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,oCAAoC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC5F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,eAAA;AAAA,MACP,WAAA,EAAa,yEAAA;AAAA,MACb,WAAA,EAAa,EAAE,GAAG,eAAA;AAAgB,KACpC;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,aAAA,EAAe,QAAA,CAAS,IAAA,EAAM,CAAC,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AACxE,QAAA,OAAO,UAAA,CAAW,KAAK,yBAAyB,CAAA;AAAA,MAClD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,4BAA4B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACpF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EAAa,wDAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mBAAmB,CAAA;AAAA,QACxD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,WAAW,CAAA;AAAA,QACjD,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QACnE,KAAKA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,QACjD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,QACrD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,QACrD,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA,QAC5D,WAAA,EAAa,UAAA,CAAW,QAAA,EAAS,CAAE,QAAA;AAAA,UACjC;AAAA;AACF;AACF,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,cAAA,EAAgB,EAAE,KAAA,EAAO,CAAA;AAChC,QAAA,OAAO,UAAA,CAAW,KAAK,8BAA8B,CAAA;AAAA,MACvD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EAAa,wEAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,YAAY,CAAA;AAAA,QACpC,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mBAAmB,CAAA;AAAA,QACxD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,WAAW,CAAA;AAAA,QACjD,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QACnE,KAAKA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,QACjD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,QACrD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,QACrD,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA,QAC5D,WAAA,EAAa,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,mBAAmB;AAAA;AACjE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,cAAA,EAAgB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACpC,QAAA,OAAO,UAAA,CAAW,KAAK,8BAA8B,CAAA;AAAA,MACvD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;AC7NA,IAAM,mBAAA,GAAsB;AAAA,EAC1B,SAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,uBAAA,GAA0B;AAAA,EAC9B,SAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,qBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AAEN,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAAA,IACpD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EACE,uFAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,cAAA,EAAgB,QAAA,CAAS,IAAA,EAAM,CAAC,SAAA,EAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AACpF,QAAA,OAAO,UAAA,CAAW,KAAK,0BAA0B,CAAA;AAAA,MACnD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,yCAAA,EAA2C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACpF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,kBAAkB,CAAC,CAAA;AAAA,IACtD;AAAA,MACE,KAAA,EAAO,iBAAA;AAAA,MACP,WAAA,EACE,wFAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,oBAAoB,CAAA;AAAA,QACzD,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,gBAAgB,CAAA;AAAA,QAClD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,QACrD,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAC9D,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,QACrD,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,eAAe,CAAA;AAAA,QAC7D,OAAA,EAAS,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QAC/D,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,mBAAmB,CAAA;AAClD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,eAAA,EAAiB,EAAE,KAAA,EAAO,CAAA;AACjC,QAAA,OAAO,UAAA,CAAW,KAAK,+BAA+B,CAAA;AAAA,MACxD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,2CAAA,EAA6C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACtF,QAAA,OAAO,WAAA;AAAA,UACL,8BAA8B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACtF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,kBAAkB,CAAC,CAAA;AAAA,IACtD;AAAA,MACE,KAAA,EAAO,iBAAA;AAAA,MACP,WAAA,EACE,uFAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,aAAa,CAAA;AAAA,QACrC,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,oBAAoB,CAAA;AAAA,QACzD,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,gBAAgB,CAAA;AAAA,QAClD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,QACrD,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAC9D,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,QACrD,IAAA,EAAMA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,eAAe,CAAA;AAAA,QAC7D,OAAA,EAAS,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QAC/D,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,mBAAmB,CAAA;AAClD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,eAAA,EAAiB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACrC,QAAA,OAAO,UAAA,CAAW,KAAK,+BAA+B,CAAA;AAAA,MACxD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,2CAAA,EAA6C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACtF,QAAA,OAAO,WAAA;AAAA,UACL,8BAA8B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACtF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,oBAAoB,CAAC,CAAA;AAAA,IACxD;AAAA,MACE,KAAA,EAAO,oBAAA;AAAA,MACP,WAAA,EACE,kGAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,kBAAA,EAAoB,QAAA,CAAS,IAAA,EAAM,CAAC,SAAA,EAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AACxF,QAAA,OAAO,UAAA,CAAW,KAAK,8BAA8B,CAAA;AAAA,MACvD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,6CAAA,EAA+C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACxF,QAAA,OAAO,WAAA;AAAA,UACL,iCAAiC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACzF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,sBAAsB,CAAC,CAAA;AAAA,IAC1D;AAAA,MACE,KAAA,EAAO,qBAAA;AAAA,MACP,WAAA,EACE,iIAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,QACxD,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,QAC7D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kDAAkD,CAAA;AAAA,QACzF,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,mBAAmB,CAAA;AAAA,QAClE,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,QAC9E,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA,QAC/E,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,uBAAuB,CAAA;AACtD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,mBAAA,EAAqB,EAAE,KAAA,EAAO,CAAA;AACrC,QAAA,OAAO,UAAA,CAAW,KAAK,mCAAmC,CAAA;AAAA,MAC5D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,+CAAA,EAAiD,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAC1F,QAAA,OAAO,WAAA;AAAA,UACL,kCAAkC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC1F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,sBAAsB,CAAC,CAAA;AAAA,IAC1D;AAAA,MACE,KAAA,EAAO,qBAAA;AAAA,MACP,WAAA,EAAa,oEAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACzC,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,QACxD,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,QAC7D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA,QAC/C,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,mBAAmB,CAAA;AAAA,QAClE,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,QAC9E,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC5D,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,uBAAuB,CAAA;AACtD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,mBAAA,EAAqB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACzC,QAAA,OAAO,UAAA,CAAW,KAAK,mCAAmC,CAAA;AAAA,MAC5D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,+CAAA,EAAiD,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAC1F,QAAA,OAAO,WAAA;AAAA,UACL,kCAAkC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC1F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;ACtNA,IAAM,sBAAA,GAAyB;AAAA,EAC7B,SAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,qBAAA,GAAwB;AAAA,EAC5B,SAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,sBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AAEN,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,cAAc,CAAC,CAAA;AAAA,IAClD;AAAA,MACE,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EACE,+GAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qCAAqC,CAAA;AAAA,QAC5E,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAG/B,iBAAA;AAAA,UACJ,QAAA,CAAS,MAAM,CAAC,SAAA,EAAW,UAAU,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,SACxE;AACA,QAAA,OAAO,UAAA,CAAW,KAAK,4BAA4B,CAAA;AAAA,MACrD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,uCAAA,EAAyC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAClF,QAAA,OAAO,WAAA;AAAA,UACL,gCAAgC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACxF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAAA,IACpD;AAAA,MACE,KAAA,EAAO,oBAAA;AAAA,MACP,WAAA,EACE,0HAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,kBAAkB,CAAA;AAAA,QACnD,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,0CAA0C,CAAA;AAAA,QAC5E,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAChE,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QACxE,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,QACjE,UAAUA,KAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QACzE,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,QAC/E,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gCAAgC,CAAA;AAAA,QAC3E,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,sBAAsB,CAAA;AACrD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,kBAAA,EAAoB,EAAE,KAAA,EAAO,CAAA;AACpC,QAAA,OAAO,UAAA,CAAW,KAAK,iCAAiC,CAAA;AAAA,MAC1D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,yCAAA,EAA2C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACpF,QAAA,OAAO,WAAA;AAAA,UACL,iCAAiC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACzF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAAA,IACpD;AAAA,MACE,KAAA,EAAO,oBAAA;AAAA,MACP,WAAA,EACE,yHAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gBAAgB,CAAA;AAAA,QACxC,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,kBAAkB,CAAA;AAAA,QACnD,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,2BAA2B,CAAA;AAAA,QAC7D,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAChE,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC5D,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kBAAkB,CAAA;AAAA,QACjE,UAAUA,KAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QACzE,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,QAC/E,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gCAAgC,CAAA;AAAA,QAC3E,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,sBAAsB,CAAA;AACrD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,kBAAA,EAAoB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACxC,QAAA,OAAO,UAAA,CAAW,KAAK,iCAAiC,CAAA;AAAA,MAC1D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,yCAAA,EAA2C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACpF,QAAA,OAAO,WAAA;AAAA,UACL,iCAAiC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACzF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAAA,IACpD;AAAA,MACE,KAAA,EAAO,oBAAA;AAAA,MACP,WAAA,EAAa,sDAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,gBAAgB,CAAA;AAAE,KAC3D;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,kBAAA,EAAoB,EAAE,EAAA,EAAI,CAAA;AACjC,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,iCAAA,EAAmC,IAAI,CAAA;AAAA,MAC3E,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,yCAAA,EAA2C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACpF,QAAA,OAAO,WAAA;AAAA,UACL,iCAAiC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACzF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,kBAAkB,CAAC,CAAA;AAAA,IACtD;AAAA,MACE,KAAA,EAAO,kBAAA;AAAA,MACP,WAAA,EACE,8GAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,QACrE,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAG/B,gBAAA;AAAA,UACJ,QAAA,CAAS,MAAM,CAAC,SAAA,EAAW,UAAU,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,SACxE;AACA,QAAA,OAAO,UAAA,CAAW,KAAK,2BAA2B,CAAA;AAAA,MACpD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,2CAAA,EAA6C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACtF,QAAA,OAAO,WAAA;AAAA,UACL,+BAA+B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,oBAAoB,CAAC,CAAA;AAAA,IACxD;AAAA,MACE,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EACE,yKAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,sCAAsC,CAAA;AAAA,QACvE,YAAA,EAAcA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,2CAA2C,CAAA;AAAA,QACpF,aAAA,EAAeA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,oCAAoC,CAAA;AAAA,QAC9E,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC/D,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA,QACnE,UAAUA,KAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,4BAA4B,CAAA;AAAA,QACtE,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA,QAC1E,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,QACzE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,qBAAqB,CAAA;AACpD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,iBAAA,EAAmB,EAAE,KAAA,EAAO,CAAA;AACnC,QAAA,OAAO,UAAA,CAAW,KAAK,gCAAgC,CAAA;AAAA,MACzD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,6CAAA,EAA+C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACxF,QAAA,OAAO,WAAA;AAAA,UACL,gCAAgC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACxF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,oBAAoB,CAAC,CAAA;AAAA,IACxD;AAAA,MACE,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EACE,4GAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,eAAe,CAAA;AAAA,QACvC,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mBAAmB,CAAA;AAAA,QACpD,YAAA,EAAcA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,eAAe,CAAA;AAAA,QACxD,aAAA,EAAeA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,oCAAoC,CAAA;AAAA,QAC9E,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QAC/D,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA,QACnE,UAAUA,KAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,4BAA4B,CAAA;AAAA,QACtE,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iCAAiC,CAAA;AAAA,QAC1E,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,QACzE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,qBAAqB,CAAA;AACpD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,iBAAA,EAAmB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACvC,QAAA,OAAO,UAAA,CAAW,KAAK,gCAAgC,CAAA;AAAA,MACzD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,6CAAA,EAA+C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACxF,QAAA,OAAO,WAAA;AAAA,UACL,gCAAgC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACxF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,oBAAoB,CAAC,CAAA;AAAA,IACxD;AAAA,MACE,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EAAa,qDAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,eAAe,CAAA;AAAE,KAC1D;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,iBAAA,EAAmB,EAAE,EAAA,EAAI,CAAA;AAChC,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,gCAAA,EAAkC,IAAI,CAAA;AAAA,MAC1E,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,6CAAA,EAA+C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACxF,QAAA,OAAO,WAAA;AAAA,UACL,gCAAgC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACxF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;ACvRA,IAAM,kBAAA,GAAqB;AAAA,EACzB,SAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,oBAAA,GAAuB;AAAA,EAC3B,SAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,eAAA,GAAkB;AAAA,EACtB,SAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,aAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,wBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AAEN,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,eAAA;AAAA,MACP,WAAA,EACE,2GAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA,QAC7E,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAG/B,aAAA;AAAA,UACJ,QAAA,CAAS,MAAM,CAAC,SAAA,EAAW,UAAU,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,SACxE;AACA,QAAA,OAAO,UAAA,CAAW,KAAK,yBAAyB,CAAA;AAAA,MAClD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,4BAA4B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACpF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,cAAc,CAAC,CAAA;AAAA,IAClD;AAAA,MACE,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EAAa,+BAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,YAAY,CAAA;AAAE,KACvD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,WAAA,EAAa,EAAE,EAAA,EAAI,CAAA;AAC1B,QAAA,IAAI,CAAC,IAAA,CAAK,wBAAA,SAAiC,WAAA,CAAY,CAAA,QAAA,EAAW,EAAE,CAAA,UAAA,CAAY,CAAA;AAChF,QAAA,OAAO,UAAA,CAAW,KAAK,wBAAwB,CAAA;AAAA,MACjD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,uCAAA,EAAyC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAClF,QAAA,OAAO,WAAA;AAAA,UACL,0BAA0B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAClF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EACE,sHAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,cAAc,CAAA;AAAA,QAC/C,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,4CAA4C,CAAA;AAAA,QAC9E,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,QACxD,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACzD,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAClE,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QACpE,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QACpE,OAAA,EAAS,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA,QAClE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,cAAA,EAAgB,EAAE,KAAA,EAAO,CAAA;AAChC,QAAA,OAAO,UAAA,CAAW,KAAK,8BAA8B,CAAA;AAAA,MACvD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EACE,iFAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,YAAY,CAAA;AAAA,QACpC,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,cAAc,CAAA;AAAA,QAC/C,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mBAAmB,CAAA;AAAA,QACrD,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gBAAgB,CAAA;AAAA,QACxD,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACzD,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAClE,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QACpE,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QACpE,OAAA,EAAS,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA,QAClE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,cAAA,EAAgB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACpC,QAAA,OAAO,UAAA,CAAW,KAAK,8BAA8B,CAAA;AAAA,MACvD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EAAa,kDAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,YAAY,CAAA;AAAE,KACvD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAC/B,cAAA;AAAA,UACJ,EAAE,EAAA;AAAG,SACP;AACA,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,8BAAA,EAAgC,IAAI,CAAA;AAAA,MACxE,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,iBAAA;AAAA,MACP,WAAA,EACE,6GAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wCAAwC,CAAA;AAAA,QAC/E,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAG/B,eAAA;AAAA,UACJ,QAAA,CAAS,MAAM,CAAC,SAAA,EAAW,UAAU,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,SACxE;AACA,QAAA,OAAO,UAAA,CAAW,KAAK,2BAA2B,CAAA;AAAA,MACpD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,8BAA8B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACtF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,mBAAmB,CAAC,CAAA;AAAA,IACvD;AAAA,MACE,KAAA,EAAO,kBAAA;AAAA,MACP,WAAA,EAAa,mEAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,gBAAgB,CAAA;AAAA,QACjD,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC7D,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,QAC/D,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAClE,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QACpE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qCAAqC,CAAA;AAAA,QAC5E,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,oBAAoB,CAAA;AACnD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,gBAAA,EAAkB,EAAE,KAAA,EAAO,CAAA;AAClC,QAAA,OAAO,UAAA,CAAW,KAAK,gCAAgC,CAAA;AAAA,MACzD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,4CAAA,EAA8C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACvF,QAAA,OAAO,WAAA;AAAA,UACL,+BAA+B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,mBAAmB,CAAC,CAAA;AAAA,IACvD;AAAA,MACE,KAAA,EAAO,kBAAA;AAAA,MACP,WAAA,EAAa,2EAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,cAAc,CAAA;AAAA,QACtC,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,gBAAgB,CAAA;AAAA,QACjD,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC7D,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,QAC/D,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAClE,cAAcA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QACpE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA,QAC/C,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,oBAAoB,CAAA;AACnD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,gBAAA,EAAkB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACtC,QAAA,OAAO,UAAA,CAAW,KAAK,gCAAgC,CAAA;AAAA,MACzD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,4CAAA,EAA8C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACvF,QAAA,OAAO,WAAA;AAAA,UACL,+BAA+B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,mBAAmB,CAAC,CAAA;AAAA,IACvD;AAAA,MACE,KAAA,EAAO,kBAAA;AAAA,MACP,WAAA,EAAa,qDAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,cAAc,CAAA;AAAE,KACzD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,gBAAA,EAAkB,EAAE,EAAA,EAAI,CAAA;AAC/B,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,gCAAA,EAAkC,IAAI,CAAA;AAAA,MAC1E,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,4CAAA,EAA8C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACvF,QAAA,OAAO,WAAA;AAAA,UACL,+BAA+B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACvF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,YAAY,CAAC,CAAA;AAAA,IAChD;AAAA,MACE,KAAA,EAAO,YAAA;AAAA,MACP,WAAA,EACE,8IAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yCAAyC,CAAA;AAAA,QAChF,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,OAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,UAAA,EAAY,QAAA,CAAS,IAAA,EAAM,CAAC,WAAW,QAAA,EAAU,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AAC1F,QAAA,OAAO,UAAA,CAAW,KAAK,sBAAsB,CAAA;AAAA,MAC/C,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,qCAAA,EAAuC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAChF,QAAA,OAAO,WAAA;AAAA,UACL,yBAAyB,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACjF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,cAAc,CAAC,CAAA;AAAA,IAClD;AAAA,MACE,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EACE,wHAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,YAAA,EAAcA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC7D,aAAA,EAAeA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qBAAqB,CAAA;AAAA,QAC/D,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA,QACpE,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAChE,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,YAAY,CAAA;AAAA,QACxD,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8CAA8C,CAAA;AAAA,QACrF,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACvD,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,QACzE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,eAAe,CAAA;AAC9C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,WAAA,EAAa,EAAE,KAAA,EAAO,CAAA;AAC7B,QAAA,OAAO,UAAA,CAAW,KAAK,2BAA2B,CAAA;AAAA,MACpD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,uCAAA,EAAyC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAClF,QAAA,OAAO,WAAA;AAAA,UACL,0BAA0B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAClF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,cAAc,CAAC,CAAA;AAAA,IAClD;AAAA,MACE,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EACE,yIAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,SAAS,CAAA;AAAA,QACjC,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,YAAA,EAAcA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC7D,aAAA,EAAeA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qBAAqB,CAAA;AAAA,QAC/D,aAAaA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wBAAwB,CAAA;AAAA,QACpE,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAChE,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,YAAY,CAAA;AAAA,QACxD,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA,QAC/C,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACvD,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8BAA8B,CAAA;AAAA,QACzE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,eAAe,CAAA;AAC9C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,WAAA,EAAa,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACjC,QAAA,OAAO,UAAA,CAAW,KAAK,2BAA2B,CAAA;AAAA,MACpD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,uCAAA,EAAyC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAClF,QAAA,OAAO,WAAA;AAAA,UACL,0BAA0B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAClF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,cAAc,CAAC,CAAA;AAAA,IAClD;AAAA,MACE,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EAAa,+CAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,SAAS,CAAA;AAAE,KACpD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAC/B,WAAA;AAAA,UACJ,EAAE,EAAA;AAAG,SACP;AACA,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,2BAAA,EAA6B,IAAI,CAAA;AAAA,MACrE,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,uCAAA,EAAyC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAClF,QAAA,OAAO,WAAA;AAAA,UACL,0BAA0B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAClF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;AC5aA,IAAM,kBAAA,GAAqB;AAAA,EACzB,SAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,iBAAA,GAAoB;AAAA,EACxB,SAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,oBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AAEN,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,uBAAuB,CAAC,CAAA;AAAA,IAC3D;AAAA,MACE,KAAA,EAAO,wBAAA;AAAA,MACP,WAAA,EACE,sGAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAM/B,sBAAA;AAAA,UACJ,SAAS,IAAA,EAAM,CAAC,WAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,SAC9D;AACA,QAAA,OAAO,UAAA,CAAW,KAAK,gCAAgC,CAAA;AAAA,MACzD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,gDAAA,EAAkD;AAAA,UACjE,KAAA,EAAO,OAAO,KAAK;AAAA,SACpB,CAAA;AACD,QAAA,OAAO,WAAA;AAAA,UACL,qCAAqC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC7F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,yBAAyB,CAAC,CAAA;AAAA,IAC7D;AAAA,MACE,KAAA,EAAO,yBAAA;AAAA,MACP,WAAA,EAAa,0EAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,cAAc,CAAA;AAAA,QAC/C,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iCAAiC,CAAA;AAAA,QAClE,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QACxE,UAAUA,KAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QACzE,WAAA,EAAa,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA,QACtE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,uBAAA,EAAyB,EAAE,KAAA,EAAO,CAAA;AACzC,QAAA,OAAO,UAAA,CAAW,KAAK,qCAAqC,CAAA;AAAA,MAC9D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,kDAAA,EAAoD;AAAA,UACnE,KAAA,EAAO,OAAO,KAAK;AAAA,SACpB,CAAA;AACD,QAAA,OAAO,WAAA;AAAA,UACL,sCAAsC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC9F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,yBAAyB,CAAC,CAAA;AAAA,IAC7D;AAAA,MACE,KAAA,EAAO,yBAAA;AAAA,MACP,WAAA,EACE,yFAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,qBAAqB,CAAA;AAAA,QAC7C,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,cAAc,CAAA;AAAA,QAC/C,IAAA,EAAMA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,cAAc,CAAA;AAAA,QAC/C,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QACxE,UAAUA,KAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QACzE,WAAA,EAAa,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,0BAA0B,CAAA;AAAA,QACtE,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,uBAAA,EAAyB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AAC7C,QAAA,OAAO,UAAA,CAAW,KAAK,qCAAqC,CAAA;AAAA,MAC9D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,kDAAA,EAAoD;AAAA,UACnE,KAAA,EAAO,OAAO,KAAK;AAAA,SACpB,CAAA;AACD,QAAA,OAAO,WAAA;AAAA,UACL,sCAAsC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC9F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,yBAAyB,CAAC,CAAA;AAAA,IAC7D;AAAA,MACE,KAAA,EAAO,yBAAA;AAAA,MACP,WAAA,EAAa,2DAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAE,KAChE;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,uBAAA,EAAyB,EAAE,EAAA,EAAI,CAAA;AACtC,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,qCAAA,EAAuC,IAAI,CAAA;AAAA,MAC/E,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,kDAAA,EAAoD;AAAA,UACnE,KAAA,EAAO,OAAO,KAAK;AAAA,SACpB,CAAA;AACD,QAAA,OAAO,WAAA;AAAA,UACL,sCAAsC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC9F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,sBAAsB,CAAC,CAAA;AAAA,IAC1D;AAAA,MACE,KAAA,EAAO,uBAAA;AAAA,MACP,WAAA,EACE,wGAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAG/B,qBAAA;AAAA,UACJ,SAAS,IAAA,EAAM,CAAC,WAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,SAC9D;AACA,QAAA,OAAO,UAAA,CAAW,KAAK,+BAA+B,CAAA;AAAA,MACxD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,+CAAA,EAAiD,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAC1F,QAAA,OAAO,WAAA;AAAA,UACL,oCAAoC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC5F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,wBAAwB,CAAC,CAAA;AAAA,IAC5D;AAAA,MACE,KAAA,EAAO,wBAAA;AAAA,MACP,WAAA,EACE,0HAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,gBAAgBA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA,QACxE,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,QACxD,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAChE,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6BAA6B,CAAA;AAAA,QACvE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oCAAoC,CAAA;AAAA,QAC3E,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kCAAkC,CAAA;AAAA,QACzE,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QAC1E,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,iBAAiB,CAAA;AAChD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,sBAAA,EAAwB,EAAE,KAAA,EAAO,CAAA;AACxC,QAAA,OAAO,UAAA,CAAW,KAAK,oCAAoC,CAAA;AAAA,MAC7D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,iDAAA,EAAmD;AAAA,UAClE,KAAA,EAAO,OAAO,KAAK;AAAA,SACpB,CAAA;AACD,QAAA,OAAO,WAAA;AAAA,UACL,qCAAqC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC7F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,wBAAwB,CAAC,CAAA;AAAA,IAC5D;AAAA,MACE,KAAA,EAAO,wBAAA;AAAA,MACP,WAAA,EAAa,uEAAA;AAAA,MACb,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5C,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,gBAAgBA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yBAAyB,CAAA;AAAA,QACxE,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,QACxD,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB,CAAA;AAAA,QAChE,WAAWA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6BAA6B,CAAA;AAAA,QACvE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oCAAoC,CAAA;AAAA,QAC3E,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA,QAC/C,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,+BAA+B,CAAA;AAAA,QAC1E,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,iBAAiB,CAAA;AAChD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,sBAAA,EAAwB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AAC5C,QAAA,OAAO,UAAA,CAAW,KAAK,oCAAoC,CAAA;AAAA,MAC7D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,iDAAA,EAAmD;AAAA,UAClE,KAAA,EAAO,OAAO,KAAK;AAAA,SACpB,CAAA;AACD,QAAA,OAAO,WAAA;AAAA,UACL,qCAAqC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC7F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,wBAAwB,CAAC,CAAA;AAAA,IAC5D;AAAA,MACE,KAAA,EAAO,wBAAA;AAAA,MACP,WAAA,EAAa,0DAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,oBAAoB,CAAA;AAAE,KAC/D;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,sBAAA,EAAwB,EAAE,EAAA,EAAI,CAAA;AACrC,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,oCAAA,EAAsC,IAAI,CAAA;AAAA,MAC9E,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,iDAAA,EAAmD;AAAA,UAClE,KAAA,EAAO,OAAO,KAAK;AAAA,SACpB,CAAA;AACD,QAAA,OAAO,WAAA;AAAA,UACL,qCAAqC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC7F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;ACvRA,IAAM,kBAAA,GAAqB;AAAA,EACzB,SAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,gBAAA,GAAmB;AAAA,EACvB,SAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEA,IAAM,kBAAA,GAAqB;AAAA,EACzB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,iBAAA;AAAA,EACA,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAEO,SAAS,uBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AAEN,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,0BAAA;AAAA,MACP,WAAA,EACE,iGAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAM/B,wBAAA;AAAA,UACJ,SAAS,IAAA,EAAM,CAAC,WAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,SAC9D;AACA,QAAA,OAAO,UAAA,CAAW,KAAK,mCAAmC,CAAA;AAAA,MAC5D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,uCAAuC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC/F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,2BAAA;AAAA,MACP,WAAA,EACE,gIAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,UAAA,EAAYA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,QAC5E,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,UAAU,CAAA;AAAA,QACnD,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QACxD,SAAA,EAAWA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,oBAAoB,CAAA;AAAA,QACvE,UAAA,EAAYA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kCAAkC,CAAA;AAAA,QACtF,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sCAAsC,CAAA;AAAA,QACjF,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,yBAAA,EAA2B,EAAE,KAAA,EAAO,CAAA;AAC3C,QAAA,OAAO,UAAA,CAAW,KAAK,wCAAwC,CAAA;AAAA,MACjE,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,wCAAwC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAChG;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,2BAAA;AAAA,MACP,WAAA,EACE,yFAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,uBAAuB,CAAA;AAAA,QAC/C,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,UAAA,EAAYA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,QAC5E,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,UAAU,CAAA;AAAA,QACnD,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mBAAmB,CAAA;AAAA,QACxD,SAAA,EAAWA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,oBAAoB,CAAA;AAAA,QACvE,UAAA,EAAYA,KAAAA,CAAE,KAAA,CAAMA,KAAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,kCAAkC,CAAA;AAAA,QACtF,YAAYA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,YAAY,CAAA;AAAA,QACvD,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,yBAAA,EAA2B,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AAC/C,QAAA,OAAO,UAAA,CAAW,KAAK,wCAAwC,CAAA;AAAA,MACjE,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,wCAAwC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAChG;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,2BAAA;AAAA,MACP,WAAA,EAAa,6DAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,uBAAuB,CAAA;AAAE,KAClE;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,yBAAA,EAA2B,EAAE,EAAA,EAAI,CAAA;AACxC,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,wCAAA,EAA0C,IAAI,CAAA;AAAA,MAClF,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,wCAAwC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAChG;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,cAAc,CAAC,CAAA;AAAA,IAClD;AAAA,MACE,KAAA,EAAO,yBAAA;AAAA,MACP,WAAA,EACE,0GAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAM/B,uBAAA;AAAA,UACJ,SAAS,IAAA,EAAM,CAAC,WAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,SAC9D;AACA,QAAA,OAAO,UAAA,CAAW,KAAK,kCAAkC,CAAA;AAAA,MAC3D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,uCAAA,EAAyC,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AAClF,QAAA,OAAO,WAAA;AAAA,UACL,sCAAsC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC9F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAAA,IACpD;AAAA,MACE,KAAA,EAAO,yBAAA;AAAA,MACP,WAAA,EACE,wHAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,eAAA,EAAiBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,8BAA8B,CAAA;AAAA,QAC1E,eAAA,EAAiBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,8BAA8B,CAAA;AAAA,QAC1E,OAAOA,KAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,SAAS,aAAa,CAAA;AAAA,QAC9C,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6BAA6B,CAAA;AAAA,QACpE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kDAAkD,CAAA;AAAA,QACzF,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,gBAAgB,CAAA;AAC/C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,uBAAA,EAAyB,EAAE,KAAA,EAAO,CAAA;AACzC,QAAA,OAAO,UAAA,CAAW,KAAK,sCAAsC,CAAA;AAAA,MAC/D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,yCAAA,EAA2C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACpF,QAAA,OAAO,WAAA;AAAA,UACL,sCAAsC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC9F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAAA,IACpD;AAAA,MACE,KAAA,EAAO,yBAAA;AAAA,MACP,WAAA,EACE,wHAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,qBAAqB,CAAA;AAAA,QAC7C,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,eAAA,EAAiBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,8BAA8B,CAAA;AAAA,QAC1E,eAAA,EAAiBA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,8BAA8B,CAAA;AAAA,QAC1E,OAAOA,KAAAA,CAAE,MAAA,GAAS,GAAA,EAAI,CAAE,SAAS,aAAa,CAAA;AAAA,QAC9C,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,6BAA6B,CAAA;AAAA,QACpE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA,QAC/C,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,gBAAgB,CAAA;AAC/C,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,uBAAA,EAAyB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AAC7C,QAAA,OAAO,UAAA,CAAW,KAAK,sCAAsC,CAAA;AAAA,MAC/D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,yCAAA,EAA2C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACpF,QAAA,OAAO,WAAA;AAAA,UACL,sCAAsC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC9F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,gBAAgB,CAAC,CAAA;AAAA,IACpD;AAAA,MACE,KAAA,EAAO,yBAAA;AAAA,MACP,WAAA,EAAa,2DAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAE,KAChE;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,uBAAA,EAAyB,EAAE,EAAA,EAAI,CAAA;AACtC,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,sCAAA,EAAwC,IAAI,CAAA;AAAA,MAChF,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,yCAAA,EAA2C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACpF,QAAA,OAAO,WAAA;AAAA,UACL,sCAAsC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC9F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,eAAe,CAAC,CAAA;AAAA,IACnD;AAAA,MACE,KAAA,EAAO,eAAA;AAAA,MACP,WAAA,EACE,+GAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QAC5D,GAAG;AAAA;AACL,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,aAAA,EAAe,QAAA,CAAS,IAAA,EAAM,CAAC,SAAA,EAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC,CAAC,CAAA;AACnF,QAAA,OAAO,UAAA,CAAW,KAAK,yBAAyB,CAAA;AAAA,MAClD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,wCAAA,EAA0C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACnF,QAAA,OAAO,WAAA;AAAA,UACL,4BAA4B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACpF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EACE,2FAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,eAAe,CAAA;AAAA,QACjD,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,QAC1E,MAAA,EAAQA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,QACtE,iBAAiBA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QACvE,iBAAiBA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QACpE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mDAAmD,CAAA;AAAA,QAC1F,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA,QAC3D,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACvD,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAE9B,cAAA,EAAgB,EAAE,KAAA,EAAO,CAAA;AAChC,QAAA,OAAO,UAAA,CAAW,KAAK,8BAA8B,CAAA;AAAA,MACvD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EACE,0GAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,EAAA,EAAIA,KAAAA,CAAE,MAAA,EAAO,CAAE,SAAS,YAAY,CAAA;AAAA,QACpC,OAAA,EAASA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACrD,KAAA,EAAOA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,eAAe,CAAA;AAAA,QACjD,QAAA,EAAUA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,qCAAqC,CAAA;AAAA,QAC1E,MAAA,EAAQA,MAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,mCAAmC,CAAA;AAAA,QACtE,iBAAiBA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,uBAAuB,CAAA;AAAA,QACvE,iBAAiBA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,QACpE,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,QAAQ,CAAA;AAAA,QAC/C,UAAUA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,kBAAkB,CAAA;AAAA,QAC3D,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iBAAiB,CAAA;AAAA,QACvD,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,SAAS,yBAAyB;AAAA;AACpE,KACF;AAAA,IACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,kBAAkB,CAAA;AACjD,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,QAE9B,cAAA,EAAgB,EAAE,EAAA,EAAI,KAAA,EAAO,CAAA;AACpC,QAAA,OAAO,UAAA,CAAW,KAAK,8BAA8B,CAAA;AAAA,MACvD,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAEA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,iBAAiB,CAAC,CAAA;AAAA,IACrD;AAAA,MACE,KAAA,EAAO,gBAAA;AAAA,MACP,WAAA,EAAa,6DAAA;AAAA,MACb,WAAA,EAAa,EAAE,EAAA,EAAIA,KAAAA,CAAE,QAAO,CAAE,QAAA,CAAS,YAAY,CAAA;AAAE,KACvD;AAAA,IACA,OAAO,EAAE,EAAA,EAAG,KAAM;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UAC/B,cAAA;AAAA,UACJ,EAAE,EAAA;AAAG,SACP;AACA,QAAA,OAAO,WAAW,EAAE,OAAA,EAAS,IAAA,CAAK,8BAAA,EAAgC,IAAI,CAAA;AAAA,MACxE,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,0CAAA,EAA4C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACrF,QAAA,OAAO,WAAA;AAAA,UACL,6BAA6B,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SACrF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;AC7YA,IAAM,2BAA2B,CAAC,MAAA,EAAQ,OAAA,EAAS,QAAA,EAAU,WAAW,UAAU,CAAA;AAiBlF,IAAM,QAAA,GAAqC;AAAA,EACzC;AAAA,IACE,UAAA,EAAY,oBAAA;AAAA,IACZ,YAAA,EAAc,sBAAA;AAAA,IACd,KAAA,EAAO,eAAA;AAAA,IACP,QAAA,EAAU,gCAAA;AAAA,IACV,UAAA,EAAY,qCAAA;AAAA,IACZ,MAAA,EAAY,kBAAA;AAAA,IACZ,QAAA,EAAc;AAAA,GAChB;AAAA,EACA;AAAA,IACE,UAAA,EAAY,uBAAA;AAAA,IACZ,YAAA,EAAc,yBAAA;AAAA,IACd,KAAA,EAAO,kBAAA;AAAA,IACP,QAAA,EAAU,kCAAA;AAAA,IACV,UAAA,EAAY,uCAAA;AAAA,IACZ,MAAA,EAAY,qBAAA;AAAA,IACZ,QAAA,EAAc;AAAA,GAChB;AAAA,EACA;AAAA,IACE,UAAA,EAAY,8BAAA;AAAA,IACZ,YAAA,EAAc,gCAAA;AAAA,IACd,KAAA,EAAO,yBAAA;AAAA,IACP,QAAA,EAAU,yCAAA;AAAA,IACV,UAAA,EAAY,8CAAA;AAAA,IACZ,MAAA,EAAY,4BAAA;AAAA,IACZ,QAAA,EAAc;AAAA,GAChB;AAAA,EACA;AAAA,IACE,UAAA,EAAY,yBAAA;AAAA,IACZ,YAAA,EAAc,2BAAA;AAAA,IACd,KAAA,EAAO,oBAAA;AAAA,IACP,QAAA,EAAU,oCAAA;AAAA,IACV,UAAA,EAAY,yCAAA;AAAA,IACZ,MAAA,EAAY,uBAAA;AAAA,IACZ,QAAA,EAAc;AAAA,GAChB;AAAA,EACA;AAAA,IACE,UAAA,EAAY,0BAAA;AAAA,IACZ,YAAA,EAAc,4BAAA;AAAA,IACd,KAAA,EAAO,qBAAA;AAAA,IACP,QAAA,EAAU,qCAAA;AAAA,IACV,UAAA,EAAY,0CAAA;AAAA,IACZ,MAAA,EAAY,wBAAA;AAAA,IACZ,QAAA,EAAc;AAAA;AAElB,CAAA;AAEO,SAAS,oBAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AACN,EAAA,KAAA,MAAW,KAAK,QAAA,EAAU;AACxB,IAAA,MAAA,CAAO,YAAA;AAAA,MACL,MAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,CAAA,CAAE,UAAU,CAAC,CAAA;AAAA,MAChD;AAAA,QACE,KAAA,EAAO,CAAA,KAAA,EAAQ,CAAA,CAAE,KAAK,CAAA,CAAA;AAAA,QACtB,WAAA,EAAa,CAAA,KAAA,EAAQ,CAAA,CAAE,KAAK,CAAA,uEAAA,CAAA;AAAA,QAC5B,WAAA,EAAa;AAAA,UACX,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,oBAAoB,CAAA;AAAA,UAC5D,GAAG;AAAA;AACL,OACF;AAAA,MACA,OAAO,IAAA,KAAS;AACd,QAAA,IAAI;AACF,UAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,YACnC,CAAA,CAAE,MAAA;AAAA,YACF,SAAS,IAAA,EAAM,CAAC,WAAW,aAAA,EAAe,OAAA,EAAS,QAAQ,CAAC;AAAA,WAC9D;AACA,UAAA,OAAO,UAAA,CAAW,IAAA,CAAK,CAAA,CAAE,QAAQ,CAAC,CAAA;AAAA,QACpC,SAAS,KAAA,EAAO;AACd,UAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,CAAA,kBAAA,EAAqB,CAAA,CAAE,UAAU,CAAA,OAAA,CAAA,EAAW,EAAE,KAAA,EAAO,MAAA,CAAO,KAAK,CAAA,EAAG,CAAA;AACrF,UAAA,OAAO,WAAA;AAAA,YACL,CAAA,eAAA,EAAkB,CAAA,CAAE,KAAK,CAAA,EAAA,EAAK,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,WACtF;AAAA,QACF;AAAA,MACF;AAAA,KACF;AAEA,IAAA,MAAA,CAAO,YAAA;AAAA,MACL,MAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,CAAA,CAAE,YAAY,CAAC,CAAA;AAAA,MAClD;AAAA,QACE,OAAO,CAAA,OAAA,EAAU,CAAA,CAAE,MAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA,CAAA;AAAA,QAC1C,aAAa,CAAA,mBAAA,EAAsB,CAAA,CAAE,MAAM,OAAA,CAAQ,IAAA,EAAM,EAAE,CAAC,CAAA,uFAAA,CAAA;AAAA,QAC5D,WAAA,EAAa;AAAA,UACX,IAAIA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iDAA4C,CAAA;AAAA,UAC/E,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,aAAa,CAAA;AAAA,UAClD,OAAOA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,cAAc,CAAA;AAAA,UACpD,QAAQA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,eAAe,CAAA;AAAA,UACtD,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB,CAAA;AAAA,UAC7D,QAAA,EAAU,UAAA,CAAW,QAAA,EAAS,CAAE,QAAA;AAAA,YAC9B;AAAA;AACF;AACF,OACF;AAAA,MACA,OAAO,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACzB,QAAA,IAAI;AACF,UAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,EAAM,wBAAwB,CAAA;AACvD,UAAA,MAAM,IAAA,GAAgC,EAAE,KAAA,EAAM;AAC9C,UAAA,IAAI,EAAA,KAAO,KAAA,CAAA,EAAW,IAAA,CAAK,EAAA,GAAK,EAAA;AAChC,UAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAAiC,CAAA,CAAE,UAAU,IAAI,CAAA;AACtF,UAAA,OAAO,UAAA,CAAW,IAAA,CAAK,CAAA,CAAE,UAAU,CAAC,CAAA;AAAA,QACtC,SAAS,KAAA,EAAO;AACd,UAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,CAAA,kBAAA,EAAqB,CAAA,CAAE,YAAY,CAAA,OAAA,CAAA,EAAW,EAAE,KAAA,EAAO,MAAA,CAAO,KAAK,CAAA,EAAG,CAAA;AACvF,UAAA,OAAO,WAAA;AAAA,YACL,CAAA,iBAAA,EAAoB,CAAA,CAAE,KAAA,CAAM,OAAA,CAAQ,MAAM,EAAE,CAAC,CAAA,EAAA,EAC3C,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CACvD,CAAA;AAAA,WACF;AAAA,QACF;AAAA,MACF;AAAA,KACF;AAAA,EACF;AAGA,EAAA,MAAA,CAAO,YAAA;AAAA,IACL,KAAA,CAAM,WAAA,CAAY,GAAA,CAAI,WAAA,EAAa,mBAAmB,CAAC,CAAA;AAAA,IACvD;AAAA,MACE,KAAA,EAAO,mBAAA;AAAA,MACP,WAAA,EACE,4IAAA;AAAA,MACF,WAAA,EAAa;AAAA,QACX,aAAaA,KAAAA,CACV,MAAA,GACA,QAAA,EAAS,CACT,SAAS,iEAAiE;AAAA;AAC/E,KACF;AAAA,IACA,OAAO,IAAA,KAAS;AACd,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA,CAE9B,iBAAA,EAAmB,QAAA,CAAS,IAAA,EAAM,CAAC,aAAa,CAAC,CAAC,CAAA;AACzD,QAAA,OAAO,UAAA,CAAW,KAAK,iCAAiC,CAAA;AAAA,MAC1D,SAAS,KAAA,EAAO;AACd,QAAA,GAAA,CAAI,MAAA,CAAO,MAAM,4CAAA,EAA8C,EAAE,OAAO,MAAA,CAAO,KAAK,GAAG,CAAA;AACvF,QAAA,OAAO,WAAA;AAAA,UACL,oCAAoC,KAAA,YAAiB,KAAA,GAAQ,MAAM,OAAA,GAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,SAC5F;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;;;ACzKO,SAAS,kCAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AACN,EAAA,MAAM,YAAY,KAAA,CAAM,cAAA,CAAe,GAAA,CAAI,WAAA,EAAa,QAAQ,CAAC,CAAA;AACjE,EAAA,MAAM,eAAe,KAAA,CAAM,cAAA,CAAe,GAAA,CAAI,WAAA,EAAa,WAAW,CAAC,CAAA;AACvE,EAAA,MAAM,YAAY,KAAA,CAAM,cAAA,CAAe,GAAA,CAAI,WAAA,EAAa,QAAQ,CAAC,CAAA;AACjE,EAAA,MAAM,YAAY,KAAA,CAAM,cAAA,CAAe,GAAA,CAAI,WAAA,EAAa,QAAQ,CAAC,CAAA;AAGjE,EAAA,MAAA,CAAO,gBAAA;AAAA,IACL,0BAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,iCAAA;AAAA,MACP,WAAA,EACE,2IAAA;AAAA,MACF,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,YAAY;AACV,MAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,CAAA,SAAA,EAAY,SAAS,CAAA,UAAA,CAAY,CAAA;AAClD,MAAA,MAAM,MAAA,GAAS,CAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAuCf,MAAA,OAAO;AAAA,QACL,QAAA,EAAU,CAAC,EAAE,GAAA,EAAK,WAAW,IAAA,EAAM,MAAA,EAAQ,QAAA,EAAU,YAAA,EAAc;AAAA,OACrE;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,gBAAA;AAAA,IACL,6BAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,qCAAA;AAAA,MACP,WAAA,EACE,4GAAA;AAAA,MACF,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,YAAY;AACV,MAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,CAAA,SAAA,EAAY,YAAY,CAAA,UAAA,CAAY,CAAA;AACrD,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAA,CAElC,iBAAA,EAAmB,EAAE,CAAA;AACxB,QAAA,OAAO;AAAA,UACL,QAAA,EAAU;AAAA,YACR;AAAA,cACE,GAAA,EAAK,YAAA;AAAA,cACL,MAAM,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,iCAAA,EAAmC,MAAM,CAAC,CAAA;AAAA,cACpE,QAAA,EAAU;AAAA;AACZ;AACF,SACF;AAAA,MACF,SAAS,KAAA,EAAO;AACd,QAAA,OAAO;AAAA,UACL,QAAA,EAAU;AAAA,YACR;AAAA,cACE,GAAA,EAAK,YAAA;AAAA,cACL,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,gBACnB,OAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK;AAAA,eAC7D,CAAA;AAAA,cACD,QAAA,EAAU;AAAA;AACZ;AACF,SACF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,gBAAA;AAAA,IACL,0BAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,mCAAA;AAAA,MACP,WAAA,EAAa,6CAAA;AAAA,MACb,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,YAAY;AACV,MAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,CAAA,SAAA,EAAY,SAAS,CAAA,UAAA,CAAY,CAAA;AAClD,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UACnC,WAAA;AAAA,UACA,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,CAAA;AAAE,SACzB;AACA,QAAA,OAAO;AAAA,UACL,QAAA,EAAU;AAAA,YACR;AAAA,cACE,GAAA,EAAK,SAAA;AAAA,cACL,MAAM,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,uBAAA,EAAyB,MAAM,CAAC,CAAA;AAAA,cAC1D,QAAA,EAAU;AAAA;AACZ;AACF,SACF;AAAA,MACF,SAAS,KAAA,EAAO;AACd,QAAA,OAAO;AAAA,UACL,QAAA,EAAU;AAAA,YACR;AAAA,cACE,GAAA,EAAK,SAAA;AAAA,cACL,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,gBACnB,OAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK;AAAA,eAC7D,CAAA;AAAA,cACD,QAAA,EAAU;AAAA;AACZ;AACF,SACF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,gBAAA;AAAA,IACL,0BAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,mCAAA;AAAA,MACP,WAAA,EAAa,6CAAA;AAAA,MACb,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,YAAY;AACV,MAAA,GAAA,CAAI,MAAA,CAAO,KAAA,CAAM,CAAA,SAAA,EAAY,SAAS,CAAA,UAAA,CAAY,CAAA;AAClD,MAAA,IAAI;AACF,QAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAAI,GAAA,CAAI,SAAA,CAAU,OAAA;AAAA,UACnC,WAAA;AAAA,UACA,EAAE,KAAA,EAAO,EAAA,EAAI,MAAA,EAAQ,CAAA;AAAE,SACzB;AACA,QAAA,OAAO;AAAA,UACL,QAAA,EAAU;AAAA,YACR;AAAA,cACE,GAAA,EAAK,SAAA;AAAA,cACL,MAAM,IAAA,CAAK,SAAA,CAAU,IAAA,CAAK,uBAAA,EAAyB,MAAM,CAAC,CAAA;AAAA,cAC1D,QAAA,EAAU;AAAA;AACZ;AACF,SACF;AAAA,MACF,SAAS,KAAA,EAAO;AACd,QAAA,OAAO;AAAA,UACL,QAAA,EAAU;AAAA,YACR;AAAA,cACE,GAAA,EAAK,SAAA;AAAA,cACL,IAAA,EAAM,KAAK,SAAA,CAAU;AAAA,gBACnB,OAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,OAAO,KAAK;AAAA,eAC7D,CAAA;AAAA,cACD,QAAA,EAAU;AAAA;AACZ;AACF,SACF;AAAA,MACF;AAAA,IACF;AAAA,GACF;AACF;AC/LO,SAAS,gCAAA,CACd,MAAA,EACA,GAAA,EACA,KAAA,EACM;AACN,EAAA,MAAM,IAAI,GAAA,CAAI,WAAA;AACd,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,aAAA,CAAc,CAAA,EAAG,aAAa,CAAC,CAAA;AACvD,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,aAAA,CAAc,CAAA,EAAG,WAAW,CAAC,CAAA;AAGnD,EAAA,MAAA,CAAO,cAAA;AAAA,IACL,SAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,aAAA;AAAA,MACP,WAAA,EACE,oJAAA;AAAA,MACF,UAAA,EAAY;AAAA,QACV,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,YAAY,CAAA;AAAA,QACjD,MAAMA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,iDAAiD;AAAA;AACxF,KACF;AAAA,IACA,CAAC,EAAE,IAAA,EAAM,IAAA,EAAK,KAAM;AAClB,MAAA,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA,OAAA,EAAU,SAAS,WAAW,EAAE,IAAA,EAAM,MAAM,CAAA;AAC7D,MAAA,MAAM,QAAA,GAAW,IAAA,GAAO,CAAA,oBAAA,EAAuB,IAAI,CAAA,EAAA,CAAA,GAAO,kCAAA;AAC1D,MAAA,MAAM,QAAA,GAAW,IAAA,GAAO,CAAA,SAAA,EAAY,IAAI,CAAA,CAAA,CAAA,GAAM,mCAAA;AAC9C,MAAA,OAAO;AAAA,QACL,QAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAM,MAAA;AAAA,YACN,OAAA,EAAS;AAAA,cACP,IAAA,EAAM,MAAA;AAAA,cACN,IAAA,EAAM,CAAA;;AAAA,yBAAA,EAEO,CAAC,CAAA,gBAAA,EAAmB,QAAQ,CAAA,CAAA,EAAI,QAAQ,CAAA;AAAA,kBAAA,EAC/C,CAAC,CAAA,4CAAA,EAA+C,CAAC,CAAA,2DAAA,EAA8D,CAAC,CAAA;AAAA,yCAAA,EACzF,CAAC,qFAAqF,CAAC,CAAA;AAAA,yCAAA,EACvF,CAAC,8EAA8E,CAAC,CAAA;AAAA,kCAAA,EACvF,CAAC,wBAAwB,CAAC,CAAA;AAAA,wFAAA,EAC4B,CAAC,CAAA;;AAAA,wDAAA;AAAA;AAG/E;AACF;AACF,OACF;AAAA,IACF;AAAA,GACF;AAGA,EAAA,MAAA,CAAO,cAAA;AAAA,IACL,OAAA;AAAA,IACA;AAAA,MACE,KAAA,EAAO,kBAAA;AAAA,MACP,WAAA,EACE,+IAAA;AAAA,MACF,UAAA,EAAY;AAAA,QACV,SAASA,KAAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qBAAqB;AAAA;AAC/D,KACF;AAAA,IACA,CAAC,EAAE,OAAA,EAAQ,KAAM;AACf,MAAA,GAAA,CAAI,OAAO,KAAA,CAAM,CAAA,OAAA,EAAU,OAAO,CAAA,OAAA,CAAA,EAAW,EAAE,SAAS,CAAA;AACxD,MAAA,MAAM,YAAY,OAAA,GACd,CAAA,eAAA,EAAkB,OAAO,CAAA,EAAA,CAAA,GACzB,0BAA0B,CAAC,CAAA,0BAAA,CAAA;AAC/B,MAAA,OAAO;AAAA,QACL,QAAA,EAAU;AAAA,UACR;AAAA,YACE,IAAA,EAAM,MAAA;AAAA,YACN,OAAA,EAAS;AAAA,cACP,IAAA,EAAM,MAAA;AAAA,cACN,IAAA,EAAM,0CAA0C,SAAS;;AAAA,iBAAA,EAEpD,CAAC,CAAA;AAAA,0BAAA,EACQ,CAAC,CAAA,gFAAA,EAAmF,CAAC,CAAA,oBAAA,EAAuB,CAAC,CAAA;AAAA,+CAAA,EACxF,CAAC,0CAA0C,CAAC,CAAA;AAAA,kDAAA,EACzC,CAAC,wCAAwC,CAAC,CAAA;AAAA,0BAAA,EAClE,CAAC,uCAAuC,CAAC,CAAA;AAAA,6DAAA,EACN,CAAC,CAAA;;AAAA,+CAAA;AAAA;AAGpD;AACF;AACF,OACF;AAAA,IACF;AAAA,GACF;AACF;;;AC7DA,IAAM,uBAAA,GAAqC;AAAA,EACzC,EAAA,EAAI,mBAAA;AAAA,EACJ,OAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAa,mBAAA;AAAA,EACb,SAAA,EAAW,CAAC,MAAM,CAAA;AAAA,EAClB,YAAA,EAAc,EAAE,KAAA,EAAO,EAAC,EAAG,WAAW,EAAC,EAAG,OAAA,EAAS,EAAC,EAAE;AAAA,EAEtD,QAAA,CAAS,QAAmB,GAAA,EAAqC;AAC/D,IAAA,MAAM,QAAkB,EAAC;AACzB,IAAA,MAAM,YAAsB,EAAC;AAC7B,IAAA,MAAM,UAAoB,EAAC;AAE3B,IAAA,MAAM,SAAA,GAAY,CAAC,CAAA,KAAsB;AACvC,MAAA,KAAA,CAAM,KAAK,CAAC,CAAA;AACZ,MAAA,OAAO,CAAA;AAAA,IACT,CAAA;AACA,IAAA,MAAM,aAAA,GAAgB,CAAC,GAAA,KAAwB;AAC7C,MAAA,SAAA,CAAU,KAAK,GAAG,CAAA;AAClB,MAAA,OAAO,GAAA;AAAA,IACT,CAAA;AACA,IAAA,MAAM,WAAA,GAAc,CAAC,CAAA,KAAsB;AACzC,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AACd,MAAA,OAAO,CAAA;AAAA,IACT,CAAA;AAEA,IAAA,kBAAA,CAAmB,MAAA,EAAQ,KAAK,SAAS,CAAA;AACzC,IAAA,kBAAA,CAAmB,MAAA,EAAQ,KAAK,SAAS,CAAA;AACzC,IAAA,mBAAA,CAAoB,MAAA,EAAQ,KAAK,SAAS,CAAA;AAC1C,IAAA,qBAAA,CAAsB,MAAA,EAAQ,KAAK,SAAS,CAAA;AAC5C,IAAA,sBAAA,CAAuB,MAAA,EAAQ,KAAK,SAAS,CAAA;AAC7C,IAAA,wBAAA,CAAyB,MAAA,EAAQ,KAAK,SAAS,CAAA;AAC/C,IAAA,oBAAA,CAAqB,MAAA,EAAQ,KAAK,SAAS,CAAA;AAC3C,IAAA,uBAAA,CAAwB,MAAA,EAAQ,KAAK,SAAS,CAAA;AAC9C,IAAA,oBAAA,CAAqB,MAAA,EAAQ,KAAK,SAAS,CAAA;AAE3C,IAAA,kCAAA,CAAmC,MAAA,EAAQ,KAAK,aAAa,CAAA;AAC7D,IAAA,gCAAA,CAAiC,MAAA,EAAQ,KAAK,WAAW,CAAA;AAEzD,IAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,OAAA,EAAQ;AAAA,EACrC;AACF,CAAA;AAEA,IAAO,yBAAA,GAAQ","file":"index.cjs","sourcesContent":["/**\n * Error classes for MCP SDK.\n *\n * Modules MUST throw these instead of throwing raw Errors. The registerTool\n * wrapper in result.ts catches and maps them to MCP-protocol-compliant\n * `{ isError: true, content: [...] }` responses.\n *\n * Throwing past the wrapper to the protocol surfaces as JSON-RPC -32603 to\n * the client and is a protocol bug.\n */\n\nexport class McpUserError extends Error {\n public readonly hint: string | undefined;\n\n constructor(message: string, opts?: { hint?: string }) {\n super(message);\n this.name = 'McpUserError';\n this.hint = opts?.hint;\n }\n}\n\nexport class McpAuthError extends McpUserError {\n constructor(message: string, opts?: { hint?: string }) {\n super(message, {\n hint: opts?.hint ?? 'Run the auth_login tool to authenticate.',\n });\n this.name = 'McpAuthError';\n }\n}\n\nexport class McpInternalError extends Error {\n public override readonly cause: unknown;\n\n constructor(message: string, cause?: unknown) {\n super(message);\n this.name = 'McpInternalError';\n this.cause = cause;\n }\n}\n","/**\n * Tool / resource / prompt naming helpers.\n *\n * Mandatory product prefix avoids collisions when Claude Desktop runs\n * multiple MCP servers concurrently (typical setup is ~6).\n *\n * Tool names are capped at 63 characters — Claude Desktop pre-1.x\n * truncated at 64 in some versions.\n */\n\nimport { McpInternalError } from './errors.js';\n\nconst MAX_TOOL_NAME_LENGTH = 63;\n\nfunction assertSafeName(name: string, kind: 'tool' | 'resource' | 'prompt'): string {\n if (kind === 'tool' && name.length > MAX_TOOL_NAME_LENGTH) {\n throw new McpInternalError(\n `Tool name '${name}' exceeds ${MAX_TOOL_NAME_LENGTH} characters (some MCP clients truncate at 64).`,\n );\n }\n return name;\n}\n\n/**\n * Build a tool name. Format: `<productName>_<...parts>` (snake_case).\n * Example: mcpToolName('vibecontrols', 'vibes', 'list') -> 'vibecontrols_vibes_list'\n */\nexport function mcpToolName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpToolName: productName is required');\n }\n const name = [productName, ...parts].filter(Boolean).join('_');\n return assertSafeName(name, 'tool');\n}\n\n/**\n * Build a resource URI. Format: `<productName>://<...parts>`.\n * Example: mcpResourceUri('vibecontrols', 'schema') -> 'vibecontrols://schema'\n */\nexport function mcpResourceUri(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpResourceUri: productName is required');\n }\n return `${productName}://${parts.filter(Boolean).join('/')}`;\n}\n\n/**\n * Build a prompt name. Format: `<productName>-<...parts>` (kebab-case).\n * Example: mcpPromptName('vibecontrols', 'setup') -> 'vibecontrols-setup'\n */\nexport function mcpPromptName(productName: string, ...parts: string[]): string {\n if (!productName) {\n throw new McpInternalError('mcpPromptName: productName is required');\n }\n return [productName, ...parts].filter(Boolean).join('-');\n}\n\nexport const TOOL_NAME_LIMIT = MAX_TOOL_NAME_LENGTH;\n\n/**\n * Name-based hint heuristics for MCP `annotations` (readOnlyHint /\n * destructiveHint). Used by tool-governance.ts to auto-fill annotations for\n * the fleet of product modules that call `server.registerTool` directly\n * (bypassing the `registerTool()` core helper) and so never set them\n * explicitly today (BOFF-3903). Deliberately conservative — matched against\n * whole `_`-delimited segments so e.g. `timeentries_delete` and\n * `pomodoro_delete_goal` match, but a hypothetical `undeletable_check`\n * would not.\n *\n * A module can always override the inference by passing an explicit\n * `annotations` object to `registerTool()` / `server.registerTool()`.\n */\nconst DESTRUCTIVE_NAME_SEGMENT = /(?:^|_)delete(?:_|$)/i;\nconst READ_ONLY_NAME_SEGMENT = /(?:^|_)(?:list|get|search|check|read|count|stats|by_date)(?:_|$)/i;\n\n/** True when a tool name looks destructive (irreversibly deletes data) by naming convention. */\nexport function inferDestructiveHint(toolName: string): boolean {\n return DESTRUCTIVE_NAME_SEGMENT.test(toolName);\n}\n\n/**\n * True when a tool name looks read-only by naming convention. Never true for\n * a name that also looks destructive (a tool can't be both).\n */\nexport function inferReadOnlyHint(toolName: string): boolean {\n return !inferDestructiveHint(toolName) && READ_ONLY_NAME_SEGMENT.test(toolName);\n}\n","/**\n * MCP tool result helpers + central handler.\n *\n * Modules NEVER call server.registerTool directly — they use registerTool()\n * from this module so the central try/catch wraps the handler and:\n * - maps thrown McpUserError / McpAuthError / McpInternalError to\n * MCP-protocol-compliant `{ isError: true, content: [...] }` shapes\n * - threads `_meta.progressToken` into ctx.progress for long ops\n * - emits a structured log line on every error\n * - never leaks `cause` from McpInternalError to the client\n *\n * This is the analog of cli-sdk's createProgram() central error handler.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { ZodRawShape } from 'zod';\nimport type { McpContext } from './context.js';\nimport { McpAuthError, McpInternalError, McpUserError } from './errors.js';\nimport type { ToolAnnotations } from './tool-governance.js';\n\nexport interface ToolTextContent {\n type: 'text';\n text: string;\n [k: string]: unknown;\n}\n\nexport interface ToolResult {\n content: ToolTextContent[];\n isError?: boolean;\n structuredContent?: Record<string, unknown>;\n [k: string]: unknown;\n}\n\nexport interface ToolMeta {\n progressToken?: string | number;\n}\n\n/**\n * Build a successful tool result with JSON content (pretty-printed).\n */\nexport function jsonResult(data: unknown, structured?: Record<string, unknown>): ToolResult {\n const result: ToolResult = {\n content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],\n };\n if (structured !== undefined) {\n result.structuredContent = structured;\n }\n return result;\n}\n\n/**\n * Build a successful tool result with plain text content.\n */\nexport function textResult(text: string): ToolResult {\n return { content: [{ type: 'text', text }] };\n}\n\n/**\n * Build an error tool result. Honors MCP's `{ isError: true, content }` shape.\n * Optional hint is appended on a new line so the LLM can react.\n */\nexport function errorResult(message: string, hint?: string): ToolResult {\n const text = hint ? `${message}\\n\\nHint: ${hint}` : message;\n return { content: [{ type: 'text', text }], isError: true };\n}\n\nexport interface ToolMetadata {\n title: string;\n description: string;\n inputSchema?: ZodRawShape;\n /**\n * Explicit MCP annotations (readOnlyHint / destructiveHint / ...). Optional\n * — when omitted, `wrapServerWithToolGovernance` (applied centrally in\n * `createMcpServer`) infers them from the tool name. Set this to override\n * the inference for a tool whose name doesn't match the naming convention.\n */\n annotations?: ToolAnnotations;\n}\n\nexport type ToolHandler<TArgs = Record<string, unknown>> = (\n args: TArgs,\n ctx: McpContext,\n meta: ToolMeta,\n) => Promise<unknown>;\n\n/**\n * Register a tool with the central error wrapper.\n *\n * The handler returns a plain value or void. The wrapper:\n * - wraps non-undefined returns in jsonResult()\n * - if the value already looks like a ToolResult (has `content`), passes through\n * - catches McpAuthError / McpUserError / McpInternalError / generic Error\n * - logs every error via ctx.logger.error\n */\nexport function registerTool<TArgs extends Record<string, unknown>>(\n server: McpServer,\n ctx: McpContext,\n name: string,\n metadata: ToolMetadata,\n handler: ToolHandler<TArgs>,\n): void {\n const sdkConfig = {\n title: metadata.title,\n description: metadata.description,\n ...(metadata.inputSchema ? { inputSchema: metadata.inputSchema } : {}),\n ...(metadata.annotations ? { annotations: metadata.annotations } : {}),\n };\n\n // The MCP SDK's registerTool signature is `(name, config, handler)`. The\n // handler arity depends on whether inputSchema is present (1-arg without,\n // 2-arg with). We accept a unified handler shape and dispatch at runtime.\n // The SDK's typing is strict and conditional on the inputSchema generic;\n // bypass with a cast since runtime acceptance is unconditional.\n const wrapped = async (...callbackArgs: unknown[]): Promise<ToolResult> => {\n const hasArgs = callbackArgs.length === 2;\n const args = (hasArgs ? callbackArgs[0] : {}) as TArgs;\n const extra = (hasArgs ? callbackArgs[1] : callbackArgs[0]) as\n { _meta?: { progressToken?: string | number } } | undefined;\n\n const progressToken = extra?._meta?.progressToken;\n const meta: ToolMeta = progressToken !== undefined ? { progressToken } : {};\n\n try {\n const result = await handler(args, ctx, meta);\n if (isToolResult(result)) return result;\n if (result === undefined) return textResult('OK');\n return jsonResult(result);\n } catch (error) {\n return mapErrorToResult(error, ctx, name);\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (server as any).registerTool(name, sdkConfig, wrapped);\n}\n\nfunction isToolResult(value: unknown): value is ToolResult {\n return (\n !!value &&\n typeof value === 'object' &&\n 'content' in value &&\n Array.isArray((value as ToolResult).content)\n );\n}\n\nfunction mapErrorToResult(error: unknown, ctx: McpContext, toolName: string): ToolResult {\n if (error instanceof McpAuthError) {\n ctx.logger.warn(`${toolName}: auth required`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpUserError) {\n ctx.logger.info(`${toolName}: user error`, { message: error.message });\n return errorResult(error.message, error.hint);\n }\n if (error instanceof McpInternalError) {\n ctx.logger.error(`${toolName}: internal error`, {\n message: error.message,\n cause: stringifyCause(error.cause),\n });\n return errorResult(`Internal error in ${toolName}.`);\n }\n const message = error instanceof Error ? error.message : String(error);\n ctx.logger.error(`${toolName}: unhandled error`, { message });\n return errorResult(`${toolName}: ${message}`);\n}\n\nfunction stringifyCause(cause: unknown): string | undefined {\n if (cause === undefined || cause === null) return undefined;\n if (cause instanceof Error) return cause.message;\n try {\n return JSON.stringify(cause);\n } catch {\n return String(cause);\n }\n}\n","/**\n * Centralized GraphQL operations for the Eventfullymanaged MCP module.\n *\n * Eventfullymanaged is the end-to-end event-management platform (future-products\n * ecosystem): events, venues + floor plans, agenda sessions + speakers,\n * attendees + registrations + ticketing + promo codes, sponsors + exhibitors +\n * leads, check-in stations + records, networking (profiles, matches, meetings),\n * and operational content (announcements, automation rules, communication\n * campaigns, workflow templates, analytics snapshots) plus a dashboard summary.\n *\n * Backend subgraph: ~/products/wspace/eventfullymanaged/wspace-eventfullymanaged-svc/\n * (Hive service name `eventfullymanaged`). All operations run against the\n * WORKSPACE gateway. Workspace scoping is carried by the gateway headers\n * (x-workspace-id) issued by the auth module; the root queries also accept an\n * OPTIONAL `workspaceId` filter, threaded through only when explicitly provided.\n *\n * The backend deliberately reuses one `*Input` type for both create and update\n * of each entity, so the create and update tools share the same required-field\n * contract (update additionally takes `id`). The five \"simple entity\" surfaces\n * (announcements, automation rules, communication campaigns, workflow templates,\n * analytics snapshots) are upserted via `EventfullyManagedSimpleEntityInput` and\n * listed/returned as `EventfullyManagedSimpleEntity`.\n *\n * Uses template-string interpolation (not gql tagged fragments) to match the\n * canonical kadaikodi/crewfoundry modules' operations files.\n */\n\n// ---------------------------------------------------------------------------\n// Field fragments\n// ---------------------------------------------------------------------------\n\nexport const EVENT_FIELDS = `\n id name description type status visibility timezone startAt endAt capacity\n metadata workspaceId createdAt updatedAt\n`;\n\nexport const VENUE_FIELDS = `\n id name description addressLine1 city state country postalCode capacity\n amenities status openingHours pricing metadata workspaceId createdAt updatedAt\n`;\n\nexport const FLOOR_PLAN_FIELDS = `\n id name venueId imageUrl dimensions interactiveAreas workspaceId\n createdAt updatedAt\n`;\n\nexport const EVENT_SESSION_FIELDS = `\n id eventId title description sessionType track status startsAt endsAt capacity\n venueId metadata workspaceId createdAt updatedAt\n`;\n\nexport const SPEAKER_FIELDS = `\n id fullName title organization bio email phone avatarUrl socialLinks\n workspaceId createdAt updatedAt\n`;\n\nexport const ATTENDEE_FIELDS = `\n id eventId fullName email phone company role tags profile metadata\n workspaceId createdAt updatedAt\n`;\n\nexport const REGISTRATION_FIELDS = `\n id eventId attendeeId ticketTypeId status quantity totalAmount currency\n registeredAt checkedInAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const TICKET_TYPE_FIELDS = `\n id eventId name description price currency capacity soldCount isActive\n salesStartAt salesEndAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const PROMO_CODE_FIELDS = `\n id eventId code description discountType discountValue maxUses usedCount\n isActive startsAt endsAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const SPONSOR_FIELDS = `\n id eventId name level logoUrl website contactName contactEmail contactPhone\n metrics metadata workspaceId createdAt updatedAt\n`;\n\nexport const EXHIBITOR_FIELDS = `\n id eventId name category boothCode contactName contactEmail status metadata\n workspaceId createdAt updatedAt\n`;\n\nexport const LEAD_FIELDS = `\n id eventId exhibitorId sponsorId attendeeName attendeeEmail score status notes\n capturedAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const CHECK_IN_STATION_FIELDS = `\n id eventId name code location isActive kioskConfig metadata workspaceId\n createdAt updatedAt\n`;\n\nexport const CHECK_IN_RECORD_FIELDS = `\n id eventId registrationId attendeeId stationId direction method status\n recordedAt metadata workspaceId createdAt updatedAt\n`;\n\nexport const NETWORKING_PROFILE_FIELDS = `\n id eventId attendeeId industry role interests lookingFor visibility metadata\n workspaceId createdAt updatedAt\n`;\n\nexport const NETWORKING_MATCH_FIELDS = `\n id eventId sourceProfileId targetProfileId score reason status metadata\n workspaceId createdAt updatedAt\n`;\n\nexport const MEETING_FIELDS = `\n id eventId sourceProfileId targetProfileId title status location notes\n startsAt endsAt metadata workspaceId createdAt updatedAt\n`;\n\n/**\n * Shape of `EventfullyManagedSimpleEntity` — the generic record used by the\n * check-in-station/meeting/networking-match LIST queries and by every\n * upsertable \"simple\" surface (announcements, automation rules, etc.).\n */\nexport const SIMPLE_ENTITY_FIELDS = `\n id name title status eventId metadata workspaceId createdAt updatedAt\n`;\n\nexport const DASHBOARD_SUMMARY_FIELDS = `\n totalEvents activeEvents totalVenues totalRegistrations totalAttendees\n totalSponsors upcomingSessions\n latestEvents { id name status startAt endAt }\n`;\n\n// ---------------------------------------------------------------------------\n// Events\n// ---------------------------------------------------------------------------\n\nexport const GET_EVENT = `\n query EventfullymanagedGetEvent($id: ID!) {\n eventfullyManagedEvent(id: $id) {\n ${EVENT_FIELDS}\n }\n }\n`;\n\nexport const LIST_EVENTS = `\n query EventfullymanagedListEvents(\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedEvents(\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${EVENT_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_EVENT = `\n mutation EventfullymanagedCreateEvent($input: EventfullyManagedEventInput!) {\n eventfullyManagedCreateEvent(input: $input) {\n ${EVENT_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_EVENT = `\n mutation EventfullymanagedUpdateEvent($id: ID!, $input: EventfullyManagedEventInput!) {\n eventfullyManagedUpdateEvent(id: $id, input: $input) {\n ${EVENT_FIELDS}\n }\n }\n`;\n\nexport const DELETE_EVENT = `\n mutation EventfullymanagedDeleteEvent($id: ID!) {\n eventfullyManagedDeleteEvent(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Venues\n// ---------------------------------------------------------------------------\n\nexport const GET_VENUE = `\n query EventfullymanagedGetVenue($id: ID!) {\n eventfullyManagedVenue(id: $id) {\n ${VENUE_FIELDS}\n }\n }\n`;\n\nexport const LIST_VENUES = `\n query EventfullymanagedListVenues(\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedVenues(\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${VENUE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_VENUE = `\n mutation EventfullymanagedCreateVenue($input: EventfullyManagedVenueInput!) {\n eventfullyManagedCreateVenue(input: $input) {\n ${VENUE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_VENUE = `\n mutation EventfullymanagedUpdateVenue($id: ID!, $input: EventfullyManagedVenueInput!) {\n eventfullyManagedUpdateVenue(id: $id, input: $input) {\n ${VENUE_FIELDS}\n }\n }\n`;\n\nexport const DELETE_VENUE = `\n mutation EventfullymanagedDeleteVenue($id: ID!) {\n eventfullyManagedDeleteVenue(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Floor plans\n// ---------------------------------------------------------------------------\n\nexport const LIST_FLOOR_PLANS = `\n query EventfullymanagedListFloorPlans(\n $venueId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedFloorPlans(\n venueId: $venueId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${FLOOR_PLAN_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_FLOOR_PLAN = `\n mutation EventfullymanagedCreateFloorPlan($input: EventfullyManagedFloorPlanInput!) {\n eventfullyManagedCreateFloorPlan(input: $input) {\n ${FLOOR_PLAN_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_FLOOR_PLAN = `\n mutation EventfullymanagedUpdateFloorPlan(\n $id: ID!\n $input: EventfullyManagedFloorPlanInput!\n ) {\n eventfullyManagedUpdateFloorPlan(id: $id, input: $input) {\n ${FLOOR_PLAN_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Agenda sessions\n// ---------------------------------------------------------------------------\n\nexport const LIST_EVENT_SESSIONS = `\n query EventfullymanagedListEventSessions(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedEventSessions(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${EVENT_SESSION_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_EVENT_SESSION = `\n mutation EventfullymanagedCreateEventSession(\n $input: EventfullyManagedEventSessionInput!\n ) {\n eventfullyManagedCreateEventSession(input: $input) {\n ${EVENT_SESSION_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_EVENT_SESSION = `\n mutation EventfullymanagedUpdateEventSession(\n $id: ID!\n $input: EventfullyManagedEventSessionInput!\n ) {\n eventfullyManagedUpdateEventSession(id: $id, input: $input) {\n ${EVENT_SESSION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Speakers\n// ---------------------------------------------------------------------------\n\nexport const LIST_SPEAKERS = `\n query EventfullymanagedListSpeakers($workspaceId: ID, $limit: Int, $offset: Int) {\n eventfullyManagedSpeakers(workspaceId: $workspaceId, limit: $limit, offset: $offset) {\n items { ${SPEAKER_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_SPEAKER = `\n mutation EventfullymanagedCreateSpeaker($input: EventfullyManagedSpeakerInput!) {\n eventfullyManagedCreateSpeaker(input: $input) {\n ${SPEAKER_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_SPEAKER = `\n mutation EventfullymanagedUpdateSpeaker($id: ID!, $input: EventfullyManagedSpeakerInput!) {\n eventfullyManagedUpdateSpeaker(id: $id, input: $input) {\n ${SPEAKER_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Attendees\n// ---------------------------------------------------------------------------\n\nexport const LIST_ATTENDEES = `\n query EventfullymanagedListAttendees(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedAttendees(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${ATTENDEE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_ATTENDEE = `\n mutation EventfullymanagedCreateAttendee($input: EventfullyManagedAttendeeInput!) {\n eventfullyManagedCreateAttendee(input: $input) {\n ${ATTENDEE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_ATTENDEE = `\n mutation EventfullymanagedUpdateAttendee(\n $id: ID!\n $input: EventfullyManagedAttendeeInput!\n ) {\n eventfullyManagedUpdateAttendee(id: $id, input: $input) {\n ${ATTENDEE_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Registrations\n// ---------------------------------------------------------------------------\n\nexport const LIST_REGISTRATIONS = `\n query EventfullymanagedListRegistrations(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedRegistrations(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${REGISTRATION_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_REGISTRATION = `\n mutation EventfullymanagedCreateRegistration(\n $input: EventfullyManagedRegistrationInput!\n ) {\n eventfullyManagedCreateRegistration(input: $input) {\n ${REGISTRATION_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_REGISTRATION = `\n mutation EventfullymanagedUpdateRegistration(\n $id: ID!\n $input: EventfullyManagedRegistrationInput!\n ) {\n eventfullyManagedUpdateRegistration(id: $id, input: $input) {\n ${REGISTRATION_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Ticket types\n// ---------------------------------------------------------------------------\n\nexport const LIST_TICKET_TYPES = `\n query EventfullymanagedListTicketTypes(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedTicketTypes(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${TICKET_TYPE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_TICKET_TYPE = `\n mutation EventfullymanagedCreateTicketType(\n $input: EventfullyManagedTicketTypeInput!\n ) {\n eventfullyManagedCreateTicketType(input: $input) {\n ${TICKET_TYPE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_TICKET_TYPE = `\n mutation EventfullymanagedUpdateTicketType(\n $id: ID!\n $input: EventfullyManagedTicketTypeInput!\n ) {\n eventfullyManagedUpdateTicketType(id: $id, input: $input) {\n ${TICKET_TYPE_FIELDS}\n }\n }\n`;\n\nexport const DELETE_TICKET_TYPE = `\n mutation EventfullymanagedDeleteTicketType($id: ID!) {\n eventfullyManagedDeleteTicketType(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Promo codes\n// ---------------------------------------------------------------------------\n\nexport const LIST_PROMO_CODES = `\n query EventfullymanagedListPromoCodes(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedPromoCodes(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${PROMO_CODE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_PROMO_CODE = `\n mutation EventfullymanagedCreatePromoCode($input: EventfullyManagedPromoCodeInput!) {\n eventfullyManagedCreatePromoCode(input: $input) {\n ${PROMO_CODE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_PROMO_CODE = `\n mutation EventfullymanagedUpdatePromoCode(\n $id: ID!\n $input: EventfullyManagedPromoCodeInput!\n ) {\n eventfullyManagedUpdatePromoCode(id: $id, input: $input) {\n ${PROMO_CODE_FIELDS}\n }\n }\n`;\n\nexport const DELETE_PROMO_CODE = `\n mutation EventfullymanagedDeletePromoCode($id: ID!) {\n eventfullyManagedDeletePromoCode(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Sponsors\n// ---------------------------------------------------------------------------\n\nexport const GET_SPONSOR = `\n query EventfullymanagedGetSponsor($id: ID!) {\n eventfullyManagedSponsor(id: $id) {\n ${SPONSOR_FIELDS}\n }\n }\n`;\n\nexport const LIST_SPONSORS = `\n query EventfullymanagedListSponsors(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedSponsors(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${SPONSOR_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_SPONSOR = `\n mutation EventfullymanagedCreateSponsor($input: EventfullyManagedSponsorInput!) {\n eventfullyManagedCreateSponsor(input: $input) {\n ${SPONSOR_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_SPONSOR = `\n mutation EventfullymanagedUpdateSponsor($id: ID!, $input: EventfullyManagedSponsorInput!) {\n eventfullyManagedUpdateSponsor(id: $id, input: $input) {\n ${SPONSOR_FIELDS}\n }\n }\n`;\n\nexport const DELETE_SPONSOR = `\n mutation EventfullymanagedDeleteSponsor($id: ID!) {\n eventfullyManagedDeleteSponsor(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Exhibitors\n// ---------------------------------------------------------------------------\n\nexport const LIST_EXHIBITORS = `\n query EventfullymanagedListExhibitors(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedExhibitors(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${EXHIBITOR_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_EXHIBITOR = `\n mutation EventfullymanagedCreateExhibitor($input: EventfullyManagedExhibitorInput!) {\n eventfullyManagedCreateExhibitor(input: $input) {\n ${EXHIBITOR_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_EXHIBITOR = `\n mutation EventfullymanagedUpdateExhibitor(\n $id: ID!\n $input: EventfullyManagedExhibitorInput!\n ) {\n eventfullyManagedUpdateExhibitor(id: $id, input: $input) {\n ${EXHIBITOR_FIELDS}\n }\n }\n`;\n\nexport const DELETE_EXHIBITOR = `\n mutation EventfullymanagedDeleteExhibitor($id: ID!) {\n eventfullyManagedDeleteExhibitor(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Leads\n// ---------------------------------------------------------------------------\n\nexport const LIST_LEADS = `\n query EventfullymanagedListLeads(\n $eventId: ID\n $workspaceId: ID\n $search: String\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedLeads(\n eventId: $eventId\n workspaceId: $workspaceId\n search: $search\n limit: $limit\n offset: $offset\n ) {\n items { ${LEAD_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_LEAD = `\n mutation EventfullymanagedCreateLead($input: EventfullyManagedLeadInput!) {\n eventfullyManagedCreateLead(input: $input) {\n ${LEAD_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_LEAD = `\n mutation EventfullymanagedUpdateLead($id: ID!, $input: EventfullyManagedLeadInput!) {\n eventfullyManagedUpdateLead(id: $id, input: $input) {\n ${LEAD_FIELDS}\n }\n }\n`;\n\nexport const DELETE_LEAD = `\n mutation EventfullymanagedDeleteLead($id: ID!) {\n eventfullyManagedDeleteLead(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Check-in (stations + records)\n//\n// NOTE: the `eventfullyManagedCheckInStations` LIST query returns the generic\n// `EventfullyManagedSimpleEntityList`, while the station mutations return the\n// typed `EventfullyManagedCheckInStation`. The selection sets differ accordingly.\n// ---------------------------------------------------------------------------\n\nexport const LIST_CHECK_IN_STATIONS = `\n query EventfullymanagedListCheckInStations(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedCheckInStations(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_CHECK_IN_STATION = `\n mutation EventfullymanagedCreateCheckInStation(\n $input: EventfullyManagedCheckInStationInput!\n ) {\n eventfullyManagedCreateCheckInStation(input: $input) {\n ${CHECK_IN_STATION_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_CHECK_IN_STATION = `\n mutation EventfullymanagedUpdateCheckInStation(\n $id: ID!\n $input: EventfullyManagedCheckInStationInput!\n ) {\n eventfullyManagedUpdateCheckInStation(id: $id, input: $input) {\n ${CHECK_IN_STATION_FIELDS}\n }\n }\n`;\n\nexport const DELETE_CHECK_IN_STATION = `\n mutation EventfullymanagedDeleteCheckInStation($id: ID!) {\n eventfullyManagedDeleteCheckInStation(id: $id)\n }\n`;\n\nexport const LIST_CHECK_IN_RECORDS = `\n query EventfullymanagedListCheckInRecords(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedCheckInRecords(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${CHECK_IN_RECORD_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_CHECK_IN_RECORD = `\n mutation EventfullymanagedCreateCheckInRecord(\n $input: EventfullyManagedCheckInRecordInput!\n ) {\n eventfullyManagedCreateCheckInRecord(input: $input) {\n ${CHECK_IN_RECORD_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_CHECK_IN_RECORD = `\n mutation EventfullymanagedUpdateCheckInRecord(\n $id: ID!\n $input: EventfullyManagedCheckInRecordInput!\n ) {\n eventfullyManagedUpdateCheckInRecord(id: $id, input: $input) {\n ${CHECK_IN_RECORD_FIELDS}\n }\n }\n`;\n\nexport const DELETE_CHECK_IN_RECORD = `\n mutation EventfullymanagedDeleteCheckInRecord($id: ID!) {\n eventfullyManagedDeleteCheckInRecord(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Networking (profiles + matches + meetings)\n//\n// NOTE: the `eventfullyManagedNetworkingMatches` and `eventfullyManagedMeetings`\n// LIST queries return `EventfullyManagedSimpleEntityList`; their mutations\n// return the typed `EventfullyManagedNetworkingMatch` / `EventfullyManagedMeeting`.\n// ---------------------------------------------------------------------------\n\nexport const LIST_NETWORKING_PROFILES = `\n query EventfullymanagedListNetworkingProfiles(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedNetworkingProfiles(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${NETWORKING_PROFILE_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_NETWORKING_PROFILE = `\n mutation EventfullymanagedCreateNetworkingProfile(\n $input: EventfullyManagedNetworkingProfileInput!\n ) {\n eventfullyManagedCreateNetworkingProfile(input: $input) {\n ${NETWORKING_PROFILE_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_NETWORKING_PROFILE = `\n mutation EventfullymanagedUpdateNetworkingProfile(\n $id: ID!\n $input: EventfullyManagedNetworkingProfileInput!\n ) {\n eventfullyManagedUpdateNetworkingProfile(id: $id, input: $input) {\n ${NETWORKING_PROFILE_FIELDS}\n }\n }\n`;\n\nexport const DELETE_NETWORKING_PROFILE = `\n mutation EventfullymanagedDeleteNetworkingProfile($id: ID!) {\n eventfullyManagedDeleteNetworkingProfile(id: $id)\n }\n`;\n\nexport const LIST_NETWORKING_MATCHES = `\n query EventfullymanagedListNetworkingMatches(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedNetworkingMatches(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_NETWORKING_MATCH = `\n mutation EventfullymanagedCreateNetworkingMatch(\n $input: EventfullyManagedNetworkingMatchInput!\n ) {\n eventfullyManagedCreateNetworkingMatch(input: $input) {\n ${NETWORKING_MATCH_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_NETWORKING_MATCH = `\n mutation EventfullymanagedUpdateNetworkingMatch(\n $id: ID!\n $input: EventfullyManagedNetworkingMatchInput!\n ) {\n eventfullyManagedUpdateNetworkingMatch(id: $id, input: $input) {\n ${NETWORKING_MATCH_FIELDS}\n }\n }\n`;\n\nexport const DELETE_NETWORKING_MATCH = `\n mutation EventfullymanagedDeleteNetworkingMatch($id: ID!) {\n eventfullyManagedDeleteNetworkingMatch(id: $id)\n }\n`;\n\nexport const LIST_MEETINGS = `\n query EventfullymanagedListMeetings(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedMeetings(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const CREATE_MEETING = `\n mutation EventfullymanagedCreateMeeting($input: EventfullyManagedMeetingInput!) {\n eventfullyManagedCreateMeeting(input: $input) {\n ${MEETING_FIELDS}\n }\n }\n`;\n\nexport const UPDATE_MEETING = `\n mutation EventfullymanagedUpdateMeeting($id: ID!, $input: EventfullyManagedMeetingInput!) {\n eventfullyManagedUpdateMeeting(id: $id, input: $input) {\n ${MEETING_FIELDS}\n }\n }\n`;\n\nexport const DELETE_MEETING = `\n mutation EventfullymanagedDeleteMeeting($id: ID!) {\n eventfullyManagedDeleteMeeting(id: $id)\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Operational content — generic \"simple entity\" surfaces (list + upsert)\n// ---------------------------------------------------------------------------\n\nexport const LIST_ANNOUNCEMENTS = `\n query EventfullymanagedListAnnouncements(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedAnnouncements(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_ANNOUNCEMENT = `\n mutation EventfullymanagedUpsertAnnouncement(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertAnnouncement(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\nexport const LIST_AUTOMATION_RULES = `\n query EventfullymanagedListAutomationRules(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedAutomationRules(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_AUTOMATION_RULE = `\n mutation EventfullymanagedUpsertAutomationRule(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertAutomationRule(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\nexport const LIST_COMMUNICATION_CAMPAIGNS = `\n query EventfullymanagedListCommunicationCampaigns(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedCommunicationCampaigns(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_COMMUNICATION_CAMPAIGN = `\n mutation EventfullymanagedUpsertCommunicationCampaign(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertCommunicationCampaign(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\nexport const LIST_WORKFLOW_TEMPLATES = `\n query EventfullymanagedListWorkflowTemplates(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedWorkflowTemplates(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_WORKFLOW_TEMPLATE = `\n mutation EventfullymanagedUpsertWorkflowTemplate(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertWorkflowTemplate(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\nexport const LIST_ANALYTICS_SNAPSHOTS = `\n query EventfullymanagedListAnalyticsSnapshots(\n $eventId: ID\n $workspaceId: ID\n $limit: Int\n $offset: Int\n ) {\n eventfullyManagedAnalyticsSnapshots(\n eventId: $eventId\n workspaceId: $workspaceId\n limit: $limit\n offset: $offset\n ) {\n items { ${SIMPLE_ENTITY_FIELDS} }\n total\n }\n }\n`;\n\nexport const UPSERT_ANALYTICS_SNAPSHOT = `\n mutation EventfullymanagedUpsertAnalyticsSnapshot(\n $id: ID\n $input: EventfullyManagedSimpleEntityInput!\n ) {\n eventfullyManagedUpsertAnalyticsSnapshot(id: $id, input: $input) {\n ${SIMPLE_ENTITY_FIELDS}\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Dashboard\n// ---------------------------------------------------------------------------\n\nexport const DASHBOARD_SUMMARY = `\n query EventfullymanagedDashboardSummary($workspaceId: ID) {\n eventfullyManagedDashboardSummary(workspaceId: $workspaceId) {\n ${DASHBOARD_SUMMARY_FIELDS}\n }\n }\n`;\n","/**\n * Shared zod schemas + helpers for the Eventfullymanaged tool surface.\n *\n * Unlike kadaikodi, the Eventfullymanaged event-management subgraph models\n * status/type/visibility/level/direction/method/discountType as free-form\n * `String` (not GraphQL enums), so those are exposed as `z.string()` with a\n * descriptive hint rather than tight zod enums. JSON scalar inputs (metadata,\n * profile, openingHours, pricing, dimensions, interactiveAreas, socialLinks,\n * metrics, kioskConfig) are modelled as permissive object records — the backend\n * accepts arbitrary JSON, but a record shape gives the LLM a typed hint.\n */\n\nimport { z } from 'zod';\n\n/** Permissive JSON-object schema for `JSON` scalar inputs. */\nexport const JsonObject = z.record(z.string(), z.unknown());\n\n/** Standard pagination + workspace/event scoping args shared by list tools. */\nexport const PaginationShape = {\n workspaceId: z\n .string()\n .optional()\n .describe('Optional workspace ID filter (defaults to the gateway-bound workspace)'),\n limit: z.number().int().optional().describe('Page size'),\n offset: z.number().int().optional().describe('Pagination offset (default 0)'),\n};\n\n/**\n * Build the variables object for a list query, threading through only the\n * args that were actually provided (so server-side defaults apply otherwise).\n */\nexport function listVars(\n args: Record<string, unknown>,\n keys: readonly string[],\n): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const k of keys) {\n if (args[k] !== undefined) out[k] = args[k];\n }\n return out;\n}\n\n/**\n * Copy the provided (non-undefined) keys from `args` into a fresh GraphQL\n * input object. Used to assemble create/update/upsert mutation inputs while\n * preserving the \"omit-if-undefined\" discipline.\n */\nexport function buildInput(\n args: Record<string, unknown>,\n keys: readonly string[],\n): Record<string, unknown> {\n const input: Record<string, unknown> = {};\n for (const k of keys) {\n if (args[k] !== undefined) input[k] = args[k];\n }\n return input;\n}\n","/**\n * Eventfullymanaged event tools — the top-level event lifecycle.\n *\n * Surface (5): events_{list,get,create,update,delete}.\n * The backend reuses `EventfullyManagedEventInput` for create AND update, so\n * both tools share the same required-field contract (update also takes `id`).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst EVENT_INPUT_KEYS = [\n 'name',\n 'description',\n 'type',\n 'status',\n 'visibility',\n 'timezone',\n 'startAt',\n 'endAt',\n 'capacity',\n 'metadata',\n] as const;\n\nexport function registerEventTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_list')),\n {\n title: 'List Events',\n description:\n 'List events in the bound workspace, optionally filtered by free-text search, with pagination. Returns items + total.',\n inputSchema: {\n search: z.string().optional().describe('Free-text search across event name/description'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedEvents: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_EVENTS, listVars(args, ['search', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedEvents);\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_list failed', { error: String(error) });\n return errorResult(\n `Failed to list events: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_get')),\n {\n title: 'Get Event',\n description: 'Fetch a single event by ID.',\n inputSchema: { id: z.string().describe('Event ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedEvent: Record<string, unknown> | null;\n }>(ops.GET_EVENT, { id });\n if (!data.eventfullyManagedEvent) return errorResult(`Event ${id} not found`);\n return jsonResult(data.eventfullyManagedEvent);\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_get failed', { error: String(error) });\n return errorResult(\n `Failed to get event: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_create')),\n {\n title: 'Create Event',\n description:\n 'Create an event. `startAt`/`endAt` are ISO-8601 timestamps; `timezone` is an IANA tz (e.g. \"Asia/Kolkata\"); `type` is e.g. \"conference\"/\"workshop\"/\"webinar\".',\n inputSchema: {\n name: z.string().min(1).describe('Event name'),\n type: z.string().min(1).describe('Event type, e.g. \"conference\", \"workshop\", \"webinar\"'),\n timezone: z.string().min(1).describe('IANA timezone, e.g. \"Asia/Kolkata\"'),\n startAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n description: z.string().optional().describe('Event description'),\n status: z.string().optional().describe('Lifecycle status, e.g. \"draft\", \"published\"'),\n visibility: z.string().optional().describe('Visibility, e.g. \"public\", \"private\"'),\n capacity: z.number().int().optional().describe('Maximum capacity'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, EVENT_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateEvent: Record<string, unknown>;\n }>(ops.CREATE_EVENT, { input });\n return jsonResult(data.eventfullyManagedCreateEvent);\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_create failed', { error: String(error) });\n return errorResult(\n `Failed to create event: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_update')),\n {\n title: 'Update Event',\n description:\n 'Update an event. The backend reuses the full event input, so the required fields (name, type, timezone, startAt, endAt) must be re-supplied.',\n inputSchema: {\n id: z.string().describe('Event ID'),\n name: z.string().min(1).describe('Event name'),\n type: z.string().min(1).describe('Event type'),\n timezone: z.string().min(1).describe('IANA timezone'),\n startAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n description: z.string().optional().describe('Event description'),\n status: z.string().optional().describe('Lifecycle status'),\n visibility: z.string().optional().describe('Visibility'),\n capacity: z.number().int().optional().describe('Maximum capacity'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, EVENT_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateEvent: Record<string, unknown>;\n }>(ops.UPDATE_EVENT, { id, input });\n return jsonResult(data.eventfullyManagedUpdateEvent);\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_update failed', { error: String(error) });\n return errorResult(\n `Failed to update event: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'events_delete')),\n {\n title: 'Delete Event',\n description: 'Delete an event by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Event ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteEvent: boolean }>(\n ops.DELETE_EVENT,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteEvent, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged events_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete event: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged venue + floor-plan tools.\n *\n * Surface (8): venues_{list,get,create,update,delete},\n * floor_plans_{list,create,update}. Venues reuse `EventfullyManagedVenueInput`\n * for create + update; floor plans reuse `EventfullyManagedFloorPlanInput`.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst VENUE_INPUT_KEYS = [\n 'name',\n 'description',\n 'addressLine1',\n 'city',\n 'state',\n 'country',\n 'postalCode',\n 'capacity',\n 'amenities',\n 'status',\n 'openingHours',\n 'pricing',\n 'metadata',\n] as const;\n\nconst FLOOR_PLAN_INPUT_KEYS = [\n 'name',\n 'venueId',\n 'imageUrl',\n 'dimensions',\n 'interactiveAreas',\n] as const;\n\nexport function registerVenueTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Venues ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_list')),\n {\n title: 'List Venues',\n description: 'List venues, optionally filtered by free-text search, with pagination.',\n inputSchema: {\n search: z.string().optional().describe('Free-text search across venue name/address'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedVenues: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_VENUES, listVars(args, ['search', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedVenues);\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_list failed', { error: String(error) });\n return errorResult(\n `Failed to list venues: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_get')),\n {\n title: 'Get Venue',\n description: 'Fetch a single venue by ID.',\n inputSchema: { id: z.string().describe('Venue ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedVenue: Record<string, unknown> | null;\n }>(ops.GET_VENUE, { id });\n if (!data.eventfullyManagedVenue) return errorResult(`Venue ${id} not found`);\n return jsonResult(data.eventfullyManagedVenue);\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_get failed', { error: String(error) });\n return errorResult(\n `Failed to get venue: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_create')),\n {\n title: 'Create Venue',\n description:\n 'Create a venue. Only `name` is required; address/capacity/JSON fields are optional.',\n inputSchema: {\n name: z.string().min(1).describe('Venue name'),\n description: z.string().optional().describe('Venue description'),\n addressLine1: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City'),\n state: z.string().optional().describe('State/region'),\n country: z.string().optional().describe('Country'),\n postalCode: z.string().optional().describe('Postal code'),\n capacity: z.number().int().optional().describe('Maximum capacity'),\n amenities: z.array(z.string()).optional().describe('Amenity tags'),\n status: z.string().optional().describe('Status, e.g. \"active\", \"inactive\"'),\n openingHours: JsonObject.optional().describe('Opening-hours JSON'),\n pricing: JsonObject.optional().describe('Pricing JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, VENUE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateVenue: Record<string, unknown>;\n }>(ops.CREATE_VENUE, { input });\n return jsonResult(data.eventfullyManagedCreateVenue);\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_create failed', { error: String(error) });\n return errorResult(\n `Failed to create venue: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_update')),\n {\n title: 'Update Venue',\n description:\n 'Update a venue. `name` is required by the backend input; other fields are optional.',\n inputSchema: {\n id: z.string().describe('Venue ID'),\n name: z.string().min(1).describe('Venue name'),\n description: z.string().optional().describe('Venue description'),\n addressLine1: z.string().optional().describe('Street address'),\n city: z.string().optional().describe('City'),\n state: z.string().optional().describe('State/region'),\n country: z.string().optional().describe('Country'),\n postalCode: z.string().optional().describe('Postal code'),\n capacity: z.number().int().optional().describe('Maximum capacity'),\n amenities: z.array(z.string()).optional().describe('Amenity tags'),\n status: z.string().optional().describe('Status'),\n openingHours: JsonObject.optional().describe('Opening-hours JSON'),\n pricing: JsonObject.optional().describe('Pricing JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, VENUE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateVenue: Record<string, unknown>;\n }>(ops.UPDATE_VENUE, { id, input });\n return jsonResult(data.eventfullyManagedUpdateVenue);\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_update failed', { error: String(error) });\n return errorResult(\n `Failed to update venue: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'venues_delete')),\n {\n title: 'Delete Venue',\n description: 'Delete a venue by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Venue ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteVenue: boolean }>(\n ops.DELETE_VENUE,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteVenue, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged venues_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete venue: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Floor plans ─────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'floor_plans_list')),\n {\n title: 'List Floor Plans',\n description: 'List floor plans, optionally filtered by venue, with pagination.',\n inputSchema: {\n venueId: z.string().optional().describe('Filter by venue ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedFloorPlans: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_FLOOR_PLANS, listVars(args, ['venueId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedFloorPlans);\n } catch (error) {\n ctx.logger.error('eventfullymanaged floor_plans_list failed', { error: String(error) });\n return errorResult(\n `Failed to list floor plans: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'floor_plans_create')),\n {\n title: 'Create Floor Plan',\n description:\n 'Create a floor plan for a venue. `dimensions` and `interactiveAreas` are JSON describing the layout.',\n inputSchema: {\n name: z.string().min(1).describe('Floor-plan name'),\n venueId: z.string().min(1).describe('Owning venue ID'),\n imageUrl: z.string().optional().describe('Background image URL'),\n dimensions: JsonObject.optional().describe('Dimensions JSON ({ width, height, ... })'),\n interactiveAreas: z\n .union([JsonObject, z.array(z.unknown())])\n .optional()\n .describe('Interactive-areas JSON (clickable booths/zones)'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, FLOOR_PLAN_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateFloorPlan: Record<string, unknown>;\n }>(ops.CREATE_FLOOR_PLAN, { input });\n return jsonResult(data.eventfullyManagedCreateFloorPlan);\n } catch (error) {\n ctx.logger.error('eventfullymanaged floor_plans_create failed', { error: String(error) });\n return errorResult(\n `Failed to create floor plan: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'floor_plans_update')),\n {\n title: 'Update Floor Plan',\n description: 'Update a floor plan. `name` and `venueId` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Floor-plan ID'),\n name: z.string().min(1).describe('Floor-plan name'),\n venueId: z.string().min(1).describe('Owning venue ID'),\n imageUrl: z.string().optional().describe('Background image URL'),\n dimensions: JsonObject.optional().describe('Dimensions JSON'),\n interactiveAreas: z\n .union([JsonObject, z.array(z.unknown())])\n .optional()\n .describe('Interactive-areas JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, FLOOR_PLAN_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateFloorPlan: Record<string, unknown>;\n }>(ops.UPDATE_FLOOR_PLAN, { id, input });\n return jsonResult(data.eventfullyManagedUpdateFloorPlan);\n } catch (error) {\n ctx.logger.error('eventfullymanaged floor_plans_update failed', { error: String(error) });\n return errorResult(\n `Failed to update floor plan: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged agenda tools — event sessions + speakers.\n *\n * Surface (6): sessions_{list,create,update}, speakers_{list,create,update}.\n * \"sessions\" here are agenda/program sessions (`EventfullyManagedEventSession`),\n * distinct from the vibecontrols-style dev sessions. Create + update reuse the\n * same backend input per entity.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst SESSION_INPUT_KEYS = [\n 'eventId',\n 'title',\n 'description',\n 'sessionType',\n 'track',\n 'status',\n 'startsAt',\n 'endsAt',\n 'capacity',\n 'venueId',\n 'metadata',\n] as const;\n\nconst SPEAKER_INPUT_KEYS = [\n 'fullName',\n 'title',\n 'organization',\n 'bio',\n 'email',\n 'phone',\n 'avatarUrl',\n 'socialLinks',\n] as const;\n\nexport function registerAgendaTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Agenda sessions ─────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sessions_list')),\n {\n title: 'List Agenda Sessions',\n description:\n 'List agenda/program sessions, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedEventSessions: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_EVENT_SESSIONS, listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedEventSessions);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sessions_list failed', { error: String(error) });\n return errorResult(\n `Failed to list agenda sessions: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sessions_create')),\n {\n title: 'Create Agenda Session',\n description:\n 'Create an agenda session for an event. `sessionType` is e.g. \"keynote\"/\"talk\"/\"panel\"/\"break\".',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n title: z.string().min(1).describe('Session title'),\n sessionType: z.string().min(1).describe('Session type, e.g. \"keynote\", \"talk\", \"panel\"'),\n startsAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endsAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n description: z.string().optional().describe('Session description'),\n track: z.string().optional().describe('Agenda track/room'),\n status: z.string().optional().describe('Status, e.g. \"scheduled\", \"cancelled\"'),\n capacity: z.number().int().optional().describe('Session capacity'),\n venueId: z.string().optional().describe('Venue/room ID'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, SESSION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateEventSession: Record<string, unknown>;\n }>(ops.CREATE_EVENT_SESSION, { input });\n return jsonResult(data.eventfullyManagedCreateEventSession);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sessions_create failed', { error: String(error) });\n return errorResult(\n `Failed to create agenda session: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sessions_update')),\n {\n title: 'Update Agenda Session',\n description:\n 'Update an agenda session. The backend reuses the full session input, so `eventId`, `title`, `sessionType`, `startsAt`, `endsAt` must be re-supplied.',\n inputSchema: {\n id: z.string().describe('Agenda session ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n title: z.string().min(1).describe('Session title'),\n sessionType: z.string().min(1).describe('Session type'),\n startsAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endsAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n description: z.string().optional().describe('Session description'),\n track: z.string().optional().describe('Agenda track/room'),\n status: z.string().optional().describe('Status'),\n capacity: z.number().int().optional().describe('Session capacity'),\n venueId: z.string().optional().describe('Venue/room ID'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, SESSION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateEventSession: Record<string, unknown>;\n }>(ops.UPDATE_EVENT_SESSION, { id, input });\n return jsonResult(data.eventfullyManagedUpdateEventSession);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sessions_update failed', { error: String(error) });\n return errorResult(\n `Failed to update agenda session: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Speakers ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'speakers_list')),\n {\n title: 'List Speakers',\n description: 'List speakers in the workspace, with pagination. Returns items + total.',\n inputSchema: { ...PaginationShape },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedSpeakers: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_SPEAKERS, listVars(args, ['workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedSpeakers);\n } catch (error) {\n ctx.logger.error('eventfullymanaged speakers_list failed', { error: String(error) });\n return errorResult(\n `Failed to list speakers: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'speakers_create')),\n {\n title: 'Create Speaker',\n description: 'Create a speaker profile. Only `fullName` is required.',\n inputSchema: {\n fullName: z.string().min(1).describe('Speaker full name'),\n title: z.string().optional().describe('Job title'),\n organization: z.string().optional().describe('Organization/company'),\n bio: z.string().optional().describe('Speaker bio'),\n email: z.string().optional().describe('Contact email'),\n phone: z.string().optional().describe('Contact phone'),\n avatarUrl: z.string().optional().describe('Avatar image URL'),\n socialLinks: JsonObject.optional().describe(\n 'Social links JSON ({ twitter, linkedin, ... })',\n ),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, SPEAKER_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateSpeaker: Record<string, unknown>;\n }>(ops.CREATE_SPEAKER, { input });\n return jsonResult(data.eventfullyManagedCreateSpeaker);\n } catch (error) {\n ctx.logger.error('eventfullymanaged speakers_create failed', { error: String(error) });\n return errorResult(\n `Failed to create speaker: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'speakers_update')),\n {\n title: 'Update Speaker',\n description: 'Update a speaker profile. `fullName` is required by the backend input.',\n inputSchema: {\n id: z.string().describe('Speaker ID'),\n fullName: z.string().min(1).describe('Speaker full name'),\n title: z.string().optional().describe('Job title'),\n organization: z.string().optional().describe('Organization/company'),\n bio: z.string().optional().describe('Speaker bio'),\n email: z.string().optional().describe('Contact email'),\n phone: z.string().optional().describe('Contact phone'),\n avatarUrl: z.string().optional().describe('Avatar image URL'),\n socialLinks: JsonObject.optional().describe('Social links JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, SPEAKER_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateSpeaker: Record<string, unknown>;\n }>(ops.UPDATE_SPEAKER, { id, input });\n return jsonResult(data.eventfullyManagedUpdateSpeaker);\n } catch (error) {\n ctx.logger.error('eventfullymanaged speakers_update failed', { error: String(error) });\n return errorResult(\n `Failed to update speaker: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged attendee + registration tools.\n *\n * Surface (6): attendees_{list,create,update}, registrations_{list,create,update}.\n * Create + update reuse the same backend input per entity.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst ATTENDEE_INPUT_KEYS = [\n 'eventId',\n 'fullName',\n 'email',\n 'phone',\n 'company',\n 'role',\n 'tags',\n 'profile',\n 'metadata',\n] as const;\n\nconst REGISTRATION_INPUT_KEYS = [\n 'eventId',\n 'attendeeId',\n 'ticketTypeId',\n 'status',\n 'quantity',\n 'totalAmount',\n 'currency',\n 'metadata',\n] as const;\n\nexport function registerAttendeeTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Attendees ───────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'attendees_list')),\n {\n title: 'List Attendees',\n description:\n 'List attendees, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedAttendees: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_ATTENDEES, listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedAttendees);\n } catch (error) {\n ctx.logger.error('eventfullymanaged attendees_list failed', { error: String(error) });\n return errorResult(\n `Failed to list attendees: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'attendees_create')),\n {\n title: 'Create Attendee',\n description:\n 'Register an attendee record for an event. `eventId`, `fullName`, `email` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n fullName: z.string().min(1).describe('Attendee full name'),\n email: z.string().min(1).describe('Attendee email'),\n phone: z.string().optional().describe('Contact phone'),\n company: z.string().optional().describe('Company/organization'),\n role: z.string().optional().describe('Role/job title'),\n tags: z.array(z.string()).optional().describe('Attendee tags'),\n profile: JsonObject.optional().describe('Extended profile JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, ATTENDEE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateAttendee: Record<string, unknown>;\n }>(ops.CREATE_ATTENDEE, { input });\n return jsonResult(data.eventfullyManagedCreateAttendee);\n } catch (error) {\n ctx.logger.error('eventfullymanaged attendees_create failed', { error: String(error) });\n return errorResult(\n `Failed to create attendee: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'attendees_update')),\n {\n title: 'Update Attendee',\n description:\n 'Update an attendee. `eventId`, `fullName`, `email` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Attendee ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n fullName: z.string().min(1).describe('Attendee full name'),\n email: z.string().min(1).describe('Attendee email'),\n phone: z.string().optional().describe('Contact phone'),\n company: z.string().optional().describe('Company/organization'),\n role: z.string().optional().describe('Role/job title'),\n tags: z.array(z.string()).optional().describe('Attendee tags'),\n profile: JsonObject.optional().describe('Extended profile JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, ATTENDEE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateAttendee: Record<string, unknown>;\n }>(ops.UPDATE_ATTENDEE, { id, input });\n return jsonResult(data.eventfullyManagedUpdateAttendee);\n } catch (error) {\n ctx.logger.error('eventfullymanaged attendees_update failed', { error: String(error) });\n return errorResult(\n `Failed to update attendee: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Registrations ─────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'registrations_list')),\n {\n title: 'List Registrations',\n description:\n 'List ticket registrations, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedRegistrations: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_REGISTRATIONS, listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedRegistrations);\n } catch (error) {\n ctx.logger.error('eventfullymanaged registrations_list failed', { error: String(error) });\n return errorResult(\n `Failed to list registrations: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'registrations_create')),\n {\n title: 'Create Registration',\n description:\n 'Create a registration tying an attendee to an event/ticket type. Only `eventId` is required; `totalAmount` is a decimal string.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeId: z.string().optional().describe('Attendee ID'),\n ticketTypeId: z.string().optional().describe('Ticket type ID'),\n status: z.string().optional().describe('Status, e.g. \"pending\", \"confirmed\", \"cancelled\"'),\n quantity: z.number().int().optional().describe('Number of tickets'),\n totalAmount: z.string().optional().describe('Total amount as a decimal string'),\n currency: z.string().optional().describe('ISO currency code, e.g. \"INR\", \"USD\"'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, REGISTRATION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateRegistration: Record<string, unknown>;\n }>(ops.CREATE_REGISTRATION, { input });\n return jsonResult(data.eventfullyManagedCreateRegistration);\n } catch (error) {\n ctx.logger.error('eventfullymanaged registrations_create failed', { error: String(error) });\n return errorResult(\n `Failed to create registration: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'registrations_update')),\n {\n title: 'Update Registration',\n description: 'Update a registration. `eventId` is required by the backend input.',\n inputSchema: {\n id: z.string().describe('Registration ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeId: z.string().optional().describe('Attendee ID'),\n ticketTypeId: z.string().optional().describe('Ticket type ID'),\n status: z.string().optional().describe('Status'),\n quantity: z.number().int().optional().describe('Number of tickets'),\n totalAmount: z.string().optional().describe('Total amount as a decimal string'),\n currency: z.string().optional().describe('ISO currency code'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, REGISTRATION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateRegistration: Record<string, unknown>;\n }>(ops.UPDATE_REGISTRATION, { id, input });\n return jsonResult(data.eventfullyManagedUpdateRegistration);\n } catch (error) {\n ctx.logger.error('eventfullymanaged registrations_update failed', { error: String(error) });\n return errorResult(\n `Failed to update registration: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged ticketing tools — ticket types + promo codes.\n *\n * Surface (8): tickets_{list,create,update,delete},\n * promo_codes_{list,create,update,delete}. Create + update reuse the same\n * backend input per entity. Monetary fields (price, discountValue, totalAmount)\n * are decimal STRINGS in this schema.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst TICKET_TYPE_INPUT_KEYS = [\n 'eventId',\n 'name',\n 'description',\n 'price',\n 'currency',\n 'capacity',\n 'isActive',\n 'salesStartAt',\n 'salesEndAt',\n 'metadata',\n] as const;\n\nconst PROMO_CODE_INPUT_KEYS = [\n 'eventId',\n 'code',\n 'description',\n 'discountType',\n 'discountValue',\n 'maxUses',\n 'isActive',\n 'startsAt',\n 'endsAt',\n 'metadata',\n] as const;\n\nexport function registerTicketingTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Ticket types ──────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'tickets_list')),\n {\n title: 'List Ticket Types',\n description:\n 'List ticket types, optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across ticket name'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedTicketTypes: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_TICKET_TYPES,\n listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedTicketTypes);\n } catch (error) {\n ctx.logger.error('eventfullymanaged tickets_list failed', { error: String(error) });\n return errorResult(\n `Failed to list ticket types: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'tickets_create')),\n {\n title: 'Create Ticket Type',\n description:\n 'Create a ticket type for an event. `eventId`, `name`, `price` are required; `price` is a decimal string (e.g. \"499.00\").',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Ticket type name'),\n price: z.string().min(1).describe('Price as a decimal string, e.g. \"499.00\"'),\n description: z.string().optional().describe('Ticket description'),\n currency: z.string().optional().describe('ISO currency code, e.g. \"INR\"'),\n capacity: z.number().int().optional().describe('Number available'),\n isActive: z.boolean().optional().describe('Whether the ticket is on sale'),\n salesStartAt: z.string().optional().describe('Sales-start timestamp (ISO-8601)'),\n salesEndAt: z.string().optional().describe('Sales-end timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, TICKET_TYPE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateTicketType: Record<string, unknown>;\n }>(ops.CREATE_TICKET_TYPE, { input });\n return jsonResult(data.eventfullyManagedCreateTicketType);\n } catch (error) {\n ctx.logger.error('eventfullymanaged tickets_create failed', { error: String(error) });\n return errorResult(\n `Failed to create ticket type: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'tickets_update')),\n {\n title: 'Update Ticket Type',\n description:\n 'Update a ticket type. `eventId`, `name`, `price` are required by the backend input. Use `isActive` to open/close sales.',\n inputSchema: {\n id: z.string().describe('Ticket type ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Ticket type name'),\n price: z.string().min(1).describe('Price as a decimal string'),\n description: z.string().optional().describe('Ticket description'),\n currency: z.string().optional().describe('ISO currency code'),\n capacity: z.number().int().optional().describe('Number available'),\n isActive: z.boolean().optional().describe('Whether the ticket is on sale'),\n salesStartAt: z.string().optional().describe('Sales-start timestamp (ISO-8601)'),\n salesEndAt: z.string().optional().describe('Sales-end timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, TICKET_TYPE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateTicketType: Record<string, unknown>;\n }>(ops.UPDATE_TICKET_TYPE, { id, input });\n return jsonResult(data.eventfullyManagedUpdateTicketType);\n } catch (error) {\n ctx.logger.error('eventfullymanaged tickets_update failed', { error: String(error) });\n return errorResult(\n `Failed to update ticket type: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'tickets_delete')),\n {\n title: 'Delete Ticket Type',\n description: 'Delete a ticket type by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Ticket type ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteTicketType: boolean;\n }>(ops.DELETE_TICKET_TYPE, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteTicketType, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged tickets_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete ticket type: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Promo codes ───────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'promo_codes_list')),\n {\n title: 'List Promo Codes',\n description:\n 'List promo codes, optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across code'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedPromoCodes: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_PROMO_CODES,\n listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedPromoCodes);\n } catch (error) {\n ctx.logger.error('eventfullymanaged promo_codes_list failed', { error: String(error) });\n return errorResult(\n `Failed to list promo codes: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'promo_codes_create')),\n {\n title: 'Create Promo Code',\n description:\n 'Create a promo code. `eventId`, `code`, `discountType`, `discountValue` are required. `discountType` is e.g. \"percentage\"/\"fixed\"; `discountValue` is a decimal string.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n code: z.string().min(1).describe('Promo code string (unique per event)'),\n discountType: z.string().min(1).describe('Discount type, e.g. \"percentage\", \"fixed\"'),\n discountValue: z.string().min(1).describe('Discount value as a decimal string'),\n description: z.string().optional().describe('Promo description'),\n maxUses: z.number().int().optional().describe('Maximum redemptions'),\n isActive: z.boolean().optional().describe('Whether the code is active'),\n startsAt: z.string().optional().describe('Valid-from timestamp (ISO-8601)'),\n endsAt: z.string().optional().describe('Valid-until timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, PROMO_CODE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreatePromoCode: Record<string, unknown>;\n }>(ops.CREATE_PROMO_CODE, { input });\n return jsonResult(data.eventfullyManagedCreatePromoCode);\n } catch (error) {\n ctx.logger.error('eventfullymanaged promo_codes_create failed', { error: String(error) });\n return errorResult(\n `Failed to create promo code: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'promo_codes_update')),\n {\n title: 'Update Promo Code',\n description:\n 'Update a promo code. `eventId`, `code`, `discountType`, `discountValue` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Promo code ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n code: z.string().min(1).describe('Promo code string'),\n discountType: z.string().min(1).describe('Discount type'),\n discountValue: z.string().min(1).describe('Discount value as a decimal string'),\n description: z.string().optional().describe('Promo description'),\n maxUses: z.number().int().optional().describe('Maximum redemptions'),\n isActive: z.boolean().optional().describe('Whether the code is active'),\n startsAt: z.string().optional().describe('Valid-from timestamp (ISO-8601)'),\n endsAt: z.string().optional().describe('Valid-until timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, PROMO_CODE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdatePromoCode: Record<string, unknown>;\n }>(ops.UPDATE_PROMO_CODE, { id, input });\n return jsonResult(data.eventfullyManagedUpdatePromoCode);\n } catch (error) {\n ctx.logger.error('eventfullymanaged promo_codes_update failed', { error: String(error) });\n return errorResult(\n `Failed to update promo code: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'promo_codes_delete')),\n {\n title: 'Delete Promo Code',\n description: 'Delete a promo code by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Promo code ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeletePromoCode: boolean;\n }>(ops.DELETE_PROMO_CODE, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeletePromoCode, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged promo_codes_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete promo code: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged sponsorship tools — sponsors + exhibitors + leads.\n *\n * Surface (13): sponsors_{list,get,create,update,delete},\n * exhibitors_{list,create,update,delete}, leads_{list,create,update,delete}.\n * Create + update reuse the same backend input per entity.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst SPONSOR_INPUT_KEYS = [\n 'eventId',\n 'name',\n 'level',\n 'logoUrl',\n 'website',\n 'contactName',\n 'contactEmail',\n 'contactPhone',\n 'metrics',\n 'metadata',\n] as const;\n\nconst EXHIBITOR_INPUT_KEYS = [\n 'eventId',\n 'name',\n 'category',\n 'boothCode',\n 'contactName',\n 'contactEmail',\n 'status',\n 'metadata',\n] as const;\n\nconst LEAD_INPUT_KEYS = [\n 'eventId',\n 'attendeeName',\n 'attendeeEmail',\n 'exhibitorId',\n 'sponsorId',\n 'score',\n 'status',\n 'notes',\n 'capturedAt',\n 'metadata',\n] as const;\n\nexport function registerSponsorshipTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Sponsors ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_list')),\n {\n title: 'List Sponsors',\n description:\n 'List sponsors, optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across sponsor name'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedSponsors: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_SPONSORS,\n listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedSponsors);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_list failed', { error: String(error) });\n return errorResult(\n `Failed to list sponsors: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_get')),\n {\n title: 'Get Sponsor',\n description: 'Fetch a single sponsor by ID.',\n inputSchema: { id: z.string().describe('Sponsor ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedSponsor: Record<string, unknown> | null;\n }>(ops.GET_SPONSOR, { id });\n if (!data.eventfullyManagedSponsor) return errorResult(`Sponsor ${id} not found`);\n return jsonResult(data.eventfullyManagedSponsor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_get failed', { error: String(error) });\n return errorResult(\n `Failed to get sponsor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_create')),\n {\n title: 'Create Sponsor',\n description:\n 'Create a sponsor for an event. `eventId`, `name`, `level` are required (`level` is e.g. \"platinum\"/\"gold\"/\"silver\").',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Sponsor name'),\n level: z.string().min(1).describe('Sponsorship level, e.g. \"platinum\", \"gold\"'),\n logoUrl: z.string().optional().describe('Logo image URL'),\n website: z.string().optional().describe('Sponsor website'),\n contactName: z.string().optional().describe('Primary contact name'),\n contactEmail: z.string().optional().describe('Primary contact email'),\n contactPhone: z.string().optional().describe('Primary contact phone'),\n metrics: JsonObject.optional().describe('Sponsorship metrics JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, SPONSOR_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateSponsor: Record<string, unknown>;\n }>(ops.CREATE_SPONSOR, { input });\n return jsonResult(data.eventfullyManagedCreateSponsor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_create failed', { error: String(error) });\n return errorResult(\n `Failed to create sponsor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_update')),\n {\n title: 'Update Sponsor',\n description:\n 'Update a sponsor. `eventId`, `name`, `level` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Sponsor ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Sponsor name'),\n level: z.string().min(1).describe('Sponsorship level'),\n logoUrl: z.string().optional().describe('Logo image URL'),\n website: z.string().optional().describe('Sponsor website'),\n contactName: z.string().optional().describe('Primary contact name'),\n contactEmail: z.string().optional().describe('Primary contact email'),\n contactPhone: z.string().optional().describe('Primary contact phone'),\n metrics: JsonObject.optional().describe('Sponsorship metrics JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, SPONSOR_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateSponsor: Record<string, unknown>;\n }>(ops.UPDATE_SPONSOR, { id, input });\n return jsonResult(data.eventfullyManagedUpdateSponsor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_update failed', { error: String(error) });\n return errorResult(\n `Failed to update sponsor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'sponsors_delete')),\n {\n title: 'Delete Sponsor',\n description: 'Delete a sponsor by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Sponsor ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteSponsor: boolean }>(\n ops.DELETE_SPONSOR,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteSponsor, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged sponsors_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete sponsor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Exhibitors ──────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'exhibitors_list')),\n {\n title: 'List Exhibitors',\n description:\n 'List exhibitors, optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across exhibitor name'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedExhibitors: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_EXHIBITORS,\n listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedExhibitors);\n } catch (error) {\n ctx.logger.error('eventfullymanaged exhibitors_list failed', { error: String(error) });\n return errorResult(\n `Failed to list exhibitors: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'exhibitors_create')),\n {\n title: 'Create Exhibitor',\n description: 'Create an exhibitor for an event. `eventId`, `name` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Exhibitor name'),\n category: z.string().optional().describe('Exhibitor category'),\n boothCode: z.string().optional().describe('Assigned booth code'),\n contactName: z.string().optional().describe('Primary contact name'),\n contactEmail: z.string().optional().describe('Primary contact email'),\n status: z.string().optional().describe('Status, e.g. \"confirmed\", \"pending\"'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, EXHIBITOR_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateExhibitor: Record<string, unknown>;\n }>(ops.CREATE_EXHIBITOR, { input });\n return jsonResult(data.eventfullyManagedCreateExhibitor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged exhibitors_create failed', { error: String(error) });\n return errorResult(\n `Failed to create exhibitor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'exhibitors_update')),\n {\n title: 'Update Exhibitor',\n description: 'Update an exhibitor. `eventId`, `name` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Exhibitor ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Exhibitor name'),\n category: z.string().optional().describe('Exhibitor category'),\n boothCode: z.string().optional().describe('Assigned booth code'),\n contactName: z.string().optional().describe('Primary contact name'),\n contactEmail: z.string().optional().describe('Primary contact email'),\n status: z.string().optional().describe('Status'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, EXHIBITOR_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateExhibitor: Record<string, unknown>;\n }>(ops.UPDATE_EXHIBITOR, { id, input });\n return jsonResult(data.eventfullyManagedUpdateExhibitor);\n } catch (error) {\n ctx.logger.error('eventfullymanaged exhibitors_update failed', { error: String(error) });\n return errorResult(\n `Failed to update exhibitor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'exhibitors_delete')),\n {\n title: 'Delete Exhibitor',\n description: 'Delete an exhibitor by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Exhibitor ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteExhibitor: boolean;\n }>(ops.DELETE_EXHIBITOR, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteExhibitor, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged exhibitors_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete exhibitor: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Leads ───────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'leads_list')),\n {\n title: 'List Leads',\n description:\n 'List captured leads (booth/sponsor lead-capture), optionally filtered by event and free-text search, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n search: z.string().optional().describe('Free-text search across lead name/email'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedLeads: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_LEADS, listVars(args, ['eventId', 'search', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedLeads);\n } catch (error) {\n ctx.logger.error('eventfullymanaged leads_list failed', { error: String(error) });\n return errorResult(\n `Failed to list leads: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'leads_create')),\n {\n title: 'Create Lead',\n description:\n 'Capture a lead at an event (tied to an exhibitor or sponsor). `eventId`, `attendeeName`, `attendeeEmail` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeName: z.string().min(1).describe('Lead/attendee name'),\n attendeeEmail: z.string().min(1).describe('Lead/attendee email'),\n exhibitorId: z.string().optional().describe('Capturing exhibitor ID'),\n sponsorId: z.string().optional().describe('Capturing sponsor ID'),\n score: z.number().int().optional().describe('Lead score'),\n status: z.string().optional().describe('Status, e.g. \"new\", \"qualified\", \"contacted\"'),\n notes: z.string().optional().describe('Free-text notes'),\n capturedAt: z.string().optional().describe('Capture timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, LEAD_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateLead: Record<string, unknown>;\n }>(ops.CREATE_LEAD, { input });\n return jsonResult(data.eventfullyManagedCreateLead);\n } catch (error) {\n ctx.logger.error('eventfullymanaged leads_create failed', { error: String(error) });\n return errorResult(\n `Failed to create lead: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'leads_update')),\n {\n title: 'Update Lead',\n description:\n 'Update a lead. `eventId`, `attendeeName`, `attendeeEmail` are required by the backend input. Use `status`/`score` to progress the lead.',\n inputSchema: {\n id: z.string().describe('Lead ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeName: z.string().min(1).describe('Lead/attendee name'),\n attendeeEmail: z.string().min(1).describe('Lead/attendee email'),\n exhibitorId: z.string().optional().describe('Capturing exhibitor ID'),\n sponsorId: z.string().optional().describe('Capturing sponsor ID'),\n score: z.number().int().optional().describe('Lead score'),\n status: z.string().optional().describe('Status'),\n notes: z.string().optional().describe('Free-text notes'),\n capturedAt: z.string().optional().describe('Capture timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, LEAD_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateLead: Record<string, unknown>;\n }>(ops.UPDATE_LEAD, { id, input });\n return jsonResult(data.eventfullyManagedUpdateLead);\n } catch (error) {\n ctx.logger.error('eventfullymanaged leads_update failed', { error: String(error) });\n return errorResult(\n `Failed to update lead: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'leads_delete')),\n {\n title: 'Delete Lead',\n description: 'Delete a lead by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Lead ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteLead: boolean }>(\n ops.DELETE_LEAD,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteLead, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged leads_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete lead: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged check-in tools — stations + records.\n *\n * Surface (8): checkin_stations_{list,create,update,delete},\n * checkin_records_{list,create,update,delete}. The station LIST query returns\n * the generic SimpleEntity shape (see operations.ts), while station mutations\n * return the typed station; the selection sets differ accordingly.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst STATION_INPUT_KEYS = [\n 'eventId',\n 'name',\n 'code',\n 'location',\n 'isActive',\n 'kioskConfig',\n 'metadata',\n] as const;\n\nconst RECORD_INPUT_KEYS = [\n 'eventId',\n 'registrationId',\n 'attendeeId',\n 'stationId',\n 'direction',\n 'method',\n 'status',\n 'recordedAt',\n 'metadata',\n] as const;\n\nexport function registerCheckinTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Stations ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_stations_list')),\n {\n title: 'List Check-in Stations',\n description:\n 'List check-in stations/kiosks, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCheckInStations: {\n items: Array<Record<string, unknown>>;\n total: number;\n };\n }>(\n ops.LIST_CHECK_IN_STATIONS,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedCheckInStations);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_stations_list failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to list check-in stations: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_stations_create')),\n {\n title: 'Create Check-in Station',\n description: 'Create a check-in station/kiosk. `eventId`, `name`, `code` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Station name'),\n code: z.string().min(1).describe('Station code (unique per event)'),\n location: z.string().optional().describe('Physical location/description'),\n isActive: z.boolean().optional().describe('Whether the station is active'),\n kioskConfig: JsonObject.optional().describe('Kiosk configuration JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, STATION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateCheckInStation: Record<string, unknown>;\n }>(ops.CREATE_CHECK_IN_STATION, { input });\n return jsonResult(data.eventfullyManagedCreateCheckInStation);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_stations_create failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to create check-in station: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_stations_update')),\n {\n title: 'Update Check-in Station',\n description:\n 'Update a check-in station. `eventId`, `name`, `code` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Check-in station ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n name: z.string().min(1).describe('Station name'),\n code: z.string().min(1).describe('Station code'),\n location: z.string().optional().describe('Physical location/description'),\n isActive: z.boolean().optional().describe('Whether the station is active'),\n kioskConfig: JsonObject.optional().describe('Kiosk configuration JSON'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, STATION_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateCheckInStation: Record<string, unknown>;\n }>(ops.UPDATE_CHECK_IN_STATION, { id, input });\n return jsonResult(data.eventfullyManagedUpdateCheckInStation);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_stations_update failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to update check-in station: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_stations_delete')),\n {\n title: 'Delete Check-in Station',\n description: 'Delete a check-in station by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Check-in station ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteCheckInStation: boolean;\n }>(ops.DELETE_CHECK_IN_STATION, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteCheckInStation, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_stations_delete failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to delete check-in station: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Records ─────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_records_list')),\n {\n title: 'List Check-in Records',\n description:\n 'List check-in/check-out records, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCheckInRecords: { items: Array<Record<string, unknown>>; total: number };\n }>(\n ops.LIST_CHECK_IN_RECORDS,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedCheckInRecords);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_records_list failed', { error: String(error) });\n return errorResult(\n `Failed to list check-in records: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_records_create')),\n {\n title: 'Create Check-in Record',\n description:\n 'Record a check-in/check-out scan. `eventId` is required; `direction` is e.g. \"in\"/\"out\", `method` is e.g. \"qr\"/\"manual\".',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n registrationId: z.string().optional().describe('Related registration ID'),\n attendeeId: z.string().optional().describe('Attendee ID'),\n stationId: z.string().optional().describe('Capturing station ID'),\n direction: z.string().optional().describe('Direction, e.g. \"in\", \"out\"'),\n method: z.string().optional().describe('Method, e.g. \"qr\", \"nfc\", \"manual\"'),\n status: z.string().optional().describe('Status, e.g. \"success\", \"denied\"'),\n recordedAt: z.string().optional().describe('Recorded timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, RECORD_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateCheckInRecord: Record<string, unknown>;\n }>(ops.CREATE_CHECK_IN_RECORD, { input });\n return jsonResult(data.eventfullyManagedCreateCheckInRecord);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_records_create failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to create check-in record: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_records_update')),\n {\n title: 'Update Check-in Record',\n description: 'Update a check-in record. `eventId` is required by the backend input.',\n inputSchema: {\n id: z.string().describe('Check-in record ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n registrationId: z.string().optional().describe('Related registration ID'),\n attendeeId: z.string().optional().describe('Attendee ID'),\n stationId: z.string().optional().describe('Capturing station ID'),\n direction: z.string().optional().describe('Direction, e.g. \"in\", \"out\"'),\n method: z.string().optional().describe('Method, e.g. \"qr\", \"nfc\", \"manual\"'),\n status: z.string().optional().describe('Status'),\n recordedAt: z.string().optional().describe('Recorded timestamp (ISO-8601)'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, RECORD_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateCheckInRecord: Record<string, unknown>;\n }>(ops.UPDATE_CHECK_IN_RECORD, { id, input });\n return jsonResult(data.eventfullyManagedUpdateCheckInRecord);\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_records_update failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to update check-in record: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'checkin_records_delete')),\n {\n title: 'Delete Check-in Record',\n description: 'Delete a check-in record by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Check-in record ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteCheckInRecord: boolean;\n }>(ops.DELETE_CHECK_IN_RECORD, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteCheckInRecord, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged checkin_records_delete failed', {\n error: String(error),\n });\n return errorResult(\n `Failed to delete check-in record: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged networking tools — profiles + matches + meetings.\n *\n * Surface (12): profiles_{list,create,update,delete},\n * matches_{list,create,update,delete}, meetings_{list,create,update,delete}.\n * The matches and meetings LIST queries return the generic SimpleEntity shape\n * (see operations.ts), while their mutations return the typed entity.\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst PROFILE_INPUT_KEYS = [\n 'eventId',\n 'attendeeId',\n 'industry',\n 'role',\n 'interests',\n 'lookingFor',\n 'visibility',\n 'metadata',\n] as const;\n\nconst MATCH_INPUT_KEYS = [\n 'eventId',\n 'sourceProfileId',\n 'targetProfileId',\n 'score',\n 'reason',\n 'status',\n 'metadata',\n] as const;\n\nconst MEETING_INPUT_KEYS = [\n 'eventId',\n 'title',\n 'sourceProfileId',\n 'targetProfileId',\n 'status',\n 'location',\n 'notes',\n 'startsAt',\n 'endsAt',\n 'metadata',\n] as const;\n\nexport function registerNetworkingTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n // ── Profiles ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'profiles_list')),\n {\n title: 'List Networking Profiles',\n description:\n 'List networking profiles, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedNetworkingProfiles: {\n items: Array<Record<string, unknown>>;\n total: number;\n };\n }>(\n ops.LIST_NETWORKING_PROFILES,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedNetworkingProfiles);\n } catch (error) {\n ctx.logger.error('eventfullymanaged profiles_list failed', { error: String(error) });\n return errorResult(\n `Failed to list networking profiles: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'profiles_create')),\n {\n title: 'Create Networking Profile',\n description:\n 'Create a networking profile for an attendee. `eventId`, `attendeeId` are required. `interests`/`lookingFor` are string arrays.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeId: z.string().min(1).describe('Attendee ID this profile belongs to'),\n industry: z.string().optional().describe('Industry'),\n role: z.string().optional().describe('Professional role'),\n interests: z.array(z.string()).optional().describe('Topics of interest'),\n lookingFor: z.array(z.string()).optional().describe('What the attendee is looking for'),\n visibility: z.string().optional().describe('Visibility, e.g. \"public\", \"private\"'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, PROFILE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateNetworkingProfile: Record<string, unknown>;\n }>(ops.CREATE_NETWORKING_PROFILE, { input });\n return jsonResult(data.eventfullyManagedCreateNetworkingProfile);\n } catch (error) {\n ctx.logger.error('eventfullymanaged profiles_create failed', { error: String(error) });\n return errorResult(\n `Failed to create networking profile: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'profiles_update')),\n {\n title: 'Update Networking Profile',\n description:\n 'Update a networking profile. `eventId`, `attendeeId` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Networking profile ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n attendeeId: z.string().min(1).describe('Attendee ID this profile belongs to'),\n industry: z.string().optional().describe('Industry'),\n role: z.string().optional().describe('Professional role'),\n interests: z.array(z.string()).optional().describe('Topics of interest'),\n lookingFor: z.array(z.string()).optional().describe('What the attendee is looking for'),\n visibility: z.string().optional().describe('Visibility'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, PROFILE_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateNetworkingProfile: Record<string, unknown>;\n }>(ops.UPDATE_NETWORKING_PROFILE, { id, input });\n return jsonResult(data.eventfullyManagedUpdateNetworkingProfile);\n } catch (error) {\n ctx.logger.error('eventfullymanaged profiles_update failed', { error: String(error) });\n return errorResult(\n `Failed to update networking profile: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'profiles_delete')),\n {\n title: 'Delete Networking Profile',\n description: 'Delete a networking profile by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Networking profile ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteNetworkingProfile: boolean;\n }>(ops.DELETE_NETWORKING_PROFILE, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteNetworkingProfile, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged profiles_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete networking profile: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Matches ─────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'matches_list')),\n {\n title: 'List Networking Matches',\n description:\n 'List suggested networking matches, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedNetworkingMatches: {\n items: Array<Record<string, unknown>>;\n total: number;\n };\n }>(\n ops.LIST_NETWORKING_MATCHES,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data.eventfullyManagedNetworkingMatches);\n } catch (error) {\n ctx.logger.error('eventfullymanaged matches_list failed', { error: String(error) });\n return errorResult(\n `Failed to list networking matches: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'matches_create')),\n {\n title: 'Create Networking Match',\n description:\n 'Create a networking match between two profiles. `eventId`, `sourceProfileId`, `targetProfileId`, `score` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n sourceProfileId: z.string().min(1).describe('Source networking profile ID'),\n targetProfileId: z.string().min(1).describe('Target networking profile ID'),\n score: z.number().int().describe('Match score'),\n reason: z.string().optional().describe('Why the match was suggested'),\n status: z.string().optional().describe('Status, e.g. \"suggested\", \"accepted\", \"declined\"'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, MATCH_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateNetworkingMatch: Record<string, unknown>;\n }>(ops.CREATE_NETWORKING_MATCH, { input });\n return jsonResult(data.eventfullyManagedCreateNetworkingMatch);\n } catch (error) {\n ctx.logger.error('eventfullymanaged matches_create failed', { error: String(error) });\n return errorResult(\n `Failed to create networking match: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'matches_update')),\n {\n title: 'Update Networking Match',\n description:\n 'Update a networking match. `eventId`, `sourceProfileId`, `targetProfileId`, `score` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Networking match ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n sourceProfileId: z.string().min(1).describe('Source networking profile ID'),\n targetProfileId: z.string().min(1).describe('Target networking profile ID'),\n score: z.number().int().describe('Match score'),\n reason: z.string().optional().describe('Why the match was suggested'),\n status: z.string().optional().describe('Status'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, MATCH_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateNetworkingMatch: Record<string, unknown>;\n }>(ops.UPDATE_NETWORKING_MATCH, { id, input });\n return jsonResult(data.eventfullyManagedUpdateNetworkingMatch);\n } catch (error) {\n ctx.logger.error('eventfullymanaged matches_update failed', { error: String(error) });\n return errorResult(\n `Failed to update networking match: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'matches_delete')),\n {\n title: 'Delete Networking Match',\n description: 'Delete a networking match by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Networking match ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDeleteNetworkingMatch: boolean;\n }>(ops.DELETE_NETWORKING_MATCH, { id });\n return jsonResult({ deleted: data.eventfullyManagedDeleteNetworkingMatch, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged matches_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete networking match: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n // ── Meetings ────────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'meetings_list')),\n {\n title: 'List Meetings',\n description:\n 'List scheduled 1:1 networking meetings, optionally filtered by event, with pagination. Returns items + total.',\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedMeetings: { items: Array<Record<string, unknown>>; total: number };\n }>(ops.LIST_MEETINGS, listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']));\n return jsonResult(data.eventfullyManagedMeetings);\n } catch (error) {\n ctx.logger.error('eventfullymanaged meetings_list failed', { error: String(error) });\n return errorResult(\n `Failed to list meetings: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'meetings_create')),\n {\n title: 'Create Meeting',\n description:\n 'Schedule a 1:1 networking meeting. `eventId`, `title`, `startsAt`, `endsAt` are required.',\n inputSchema: {\n eventId: z.string().min(1).describe('Owning event ID'),\n title: z.string().min(1).describe('Meeting title'),\n startsAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endsAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n sourceProfileId: z.string().optional().describe('Requesting profile ID'),\n targetProfileId: z.string().optional().describe('Invited profile ID'),\n status: z.string().optional().describe('Status, e.g. \"requested\", \"confirmed\", \"declined\"'),\n location: z.string().optional().describe('Meeting location'),\n notes: z.string().optional().describe('Free-text notes'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async (args) => {\n try {\n const input = buildInput(args, MEETING_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedCreateMeeting: Record<string, unknown>;\n }>(ops.CREATE_MEETING, { input });\n return jsonResult(data.eventfullyManagedCreateMeeting);\n } catch (error) {\n ctx.logger.error('eventfullymanaged meetings_create failed', { error: String(error) });\n return errorResult(\n `Failed to create meeting: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'meetings_update')),\n {\n title: 'Update Meeting',\n description:\n 'Update a networking meeting. `eventId`, `title`, `startsAt`, `endsAt` are required by the backend input.',\n inputSchema: {\n id: z.string().describe('Meeting ID'),\n eventId: z.string().min(1).describe('Owning event ID'),\n title: z.string().min(1).describe('Meeting title'),\n startsAt: z.string().min(1).describe('Start timestamp (ISO-8601 DateTime)'),\n endsAt: z.string().min(1).describe('End timestamp (ISO-8601 DateTime)'),\n sourceProfileId: z.string().optional().describe('Requesting profile ID'),\n targetProfileId: z.string().optional().describe('Invited profile ID'),\n status: z.string().optional().describe('Status'),\n location: z.string().optional().describe('Meeting location'),\n notes: z.string().optional().describe('Free-text notes'),\n metadata: JsonObject.optional().describe('Arbitrary metadata JSON'),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, MEETING_INPUT_KEYS);\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedUpdateMeeting: Record<string, unknown>;\n }>(ops.UPDATE_MEETING, { id, input });\n return jsonResult(data.eventfullyManagedUpdateMeeting);\n } catch (error) {\n ctx.logger.error('eventfullymanaged meetings_update failed', { error: String(error) });\n return errorResult(\n `Failed to update meeting: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, 'meetings_delete')),\n {\n title: 'Delete Meeting',\n description: 'Delete a networking meeting by ID. Returns true on success.',\n inputSchema: { id: z.string().describe('Meeting ID') },\n },\n async ({ id }) => {\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedDeleteMeeting: boolean }>(\n ops.DELETE_MEETING,\n { id },\n );\n return jsonResult({ deleted: data.eventfullyManagedDeleteMeeting, id });\n } catch (error) {\n ctx.logger.error('eventfullymanaged meetings_delete failed', { error: String(error) });\n return errorResult(\n `Failed to delete meeting: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","/**\n * Eventfullymanaged operational-content + dashboard tools.\n *\n * Surface (11): announcements_{list,upsert}, automation_rules_{list,upsert},\n * communication_campaigns_{list,upsert}, workflow_templates_{list,upsert},\n * analytics_snapshots_{list,upsert}, dashboard_summary.\n *\n * The five content surfaces are backed by the generic\n * `EventfullyManagedSimpleEntity` record (list) + the `Upsert*` mutations that\n * take an optional `id` (create when absent, update when present) plus a\n * `EventfullyManagedSimpleEntityInput` (all fields optional).\n */\n\nimport { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { jsonResult, errorResult, mcpToolName, type McpContext } from '../../../core/index.js';\nimport * as ops from '../operations.js';\nimport { JsonObject, PaginationShape, listVars, buildInput } from './shared.js';\n\nconst SIMPLE_ENTITY_INPUT_KEYS = ['name', 'title', 'status', 'eventId', 'metadata'] as const;\n\ninterface SimpleSurface {\n /** tool-name suffix for the list tool, e.g. 'announcements_list' */\n listSuffix: string;\n /** tool-name suffix for the upsert tool, e.g. 'announcements_upsert' */\n upsertSuffix: string;\n /** human label, e.g. 'announcements' */\n label: string;\n /** root field on the list response, e.g. 'eventfullyManagedAnnouncements' */\n listRoot: string;\n /** root field on the upsert response, e.g. 'eventfullyManagedUpsertAnnouncement' */\n upsertRoot: string;\n listOp: string;\n upsertOp: string;\n}\n\nconst SURFACES: readonly SimpleSurface[] = [\n {\n listSuffix: 'announcements_list',\n upsertSuffix: 'announcements_upsert',\n label: 'announcements',\n listRoot: 'eventfullyManagedAnnouncements',\n upsertRoot: 'eventfullyManagedUpsertAnnouncement',\n listOp: ops.LIST_ANNOUNCEMENTS,\n upsertOp: ops.UPSERT_ANNOUNCEMENT,\n },\n {\n listSuffix: 'automation_rules_list',\n upsertSuffix: 'automation_rules_upsert',\n label: 'automation rules',\n listRoot: 'eventfullyManagedAutomationRules',\n upsertRoot: 'eventfullyManagedUpsertAutomationRule',\n listOp: ops.LIST_AUTOMATION_RULES,\n upsertOp: ops.UPSERT_AUTOMATION_RULE,\n },\n {\n listSuffix: 'communication_campaigns_list',\n upsertSuffix: 'communication_campaigns_upsert',\n label: 'communication campaigns',\n listRoot: 'eventfullyManagedCommunicationCampaigns',\n upsertRoot: 'eventfullyManagedUpsertCommunicationCampaign',\n listOp: ops.LIST_COMMUNICATION_CAMPAIGNS,\n upsertOp: ops.UPSERT_COMMUNICATION_CAMPAIGN,\n },\n {\n listSuffix: 'workflow_templates_list',\n upsertSuffix: 'workflow_templates_upsert',\n label: 'workflow templates',\n listRoot: 'eventfullyManagedWorkflowTemplates',\n upsertRoot: 'eventfullyManagedUpsertWorkflowTemplate',\n listOp: ops.LIST_WORKFLOW_TEMPLATES,\n upsertOp: ops.UPSERT_WORKFLOW_TEMPLATE,\n },\n {\n listSuffix: 'analytics_snapshots_list',\n upsertSuffix: 'analytics_snapshots_upsert',\n label: 'analytics snapshots',\n listRoot: 'eventfullyManagedAnalyticsSnapshots',\n upsertRoot: 'eventfullyManagedUpsertAnalyticsSnapshot',\n listOp: ops.LIST_ANALYTICS_SNAPSHOTS,\n upsertOp: ops.UPSERT_ANALYTICS_SNAPSHOT,\n },\n];\n\nexport function registerContentTools(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n for (const s of SURFACES) {\n server.registerTool(\n track(mcpToolName(ctx.productName, s.listSuffix)),\n {\n title: `List ${s.label}`,\n description: `List ${s.label}, optionally filtered by event, with pagination. Returns items + total.`,\n inputSchema: {\n eventId: z.string().optional().describe('Filter by event ID'),\n ...PaginationShape,\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<Record<string, unknown>>(\n s.listOp,\n listVars(args, ['eventId', 'workspaceId', 'limit', 'offset']),\n );\n return jsonResult(data[s.listRoot]);\n } catch (error) {\n ctx.logger.error(`eventfullymanaged ${s.listSuffix} failed`, { error: String(error) });\n return errorResult(\n `Failed to list ${s.label}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n\n server.registerTool(\n track(mcpToolName(ctx.productName, s.upsertSuffix)),\n {\n title: `Upsert ${s.label.replace(/s$/, '')}`,\n description: `Create or update a ${s.label.replace(/s$/, '')} record. Omit \\`id\\` to create; pass \\`id\\` to update. All content fields are optional.`,\n inputSchema: {\n id: z.string().optional().describe('Record ID — omit to create, pass to update'),\n name: z.string().optional().describe('Record name'),\n title: z.string().optional().describe('Record title'),\n status: z.string().optional().describe('Record status'),\n eventId: z.string().optional().describe('Associated event ID'),\n metadata: JsonObject.optional().describe(\n 'Arbitrary payload JSON (the real config lives here)',\n ),\n },\n },\n async ({ id, ...rest }) => {\n try {\n const input = buildInput(rest, SIMPLE_ENTITY_INPUT_KEYS);\n const vars: Record<string, unknown> = { input };\n if (id !== undefined) vars.id = id;\n const data = await ctx.gql.workspace.request<Record<string, unknown>>(s.upsertOp, vars);\n return jsonResult(data[s.upsertRoot]);\n } catch (error) {\n ctx.logger.error(`eventfullymanaged ${s.upsertSuffix} failed`, { error: String(error) });\n return errorResult(\n `Failed to upsert ${s.label.replace(/s$/, '')}: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n },\n );\n }\n\n // ── Dashboard ───────────────────────────────────────────────────────────────\n server.registerTool(\n track(mcpToolName(ctx.productName, 'dashboard_summary')),\n {\n title: 'Dashboard Summary',\n description:\n 'Headline event-management KPIs: total/active events, venues, registrations, attendees, sponsors, upcoming sessions, and the latest events.',\n inputSchema: {\n workspaceId: z\n .string()\n .optional()\n .describe('Optional workspace ID (defaults to the gateway-bound workspace)'),\n },\n },\n async (args) => {\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDashboardSummary: Record<string, unknown>;\n }>(ops.DASHBOARD_SUMMARY, listVars(args, ['workspaceId']));\n return jsonResult(data.eventfullyManagedDashboardSummary);\n } catch (error) {\n ctx.logger.error('eventfullymanaged dashboard_summary failed', { error: String(error) });\n return errorResult(\n `Failed to get dashboard summary: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n },\n );\n}\n","import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpResourceUri, type McpContext } from '../../core/index.js';\nimport { DASHBOARD_SUMMARY, LIST_EVENTS, LIST_VENUES } from './operations.js';\n\n/**\n * Read-only Eventfullymanaged MCP resources. URIs are product-prefixed via\n * mcpResourceUri so they don't collide when multiple MCP servers run side by\n * side. Each is tracked at function entry so the shell manifest reflects what\n * was registered even though registration is imperative.\n */\nexport function registerEventfullymanagedResources(\n server: McpServer,\n ctx: McpContext,\n track: (uri: string) => string,\n): void {\n const schemaUri = track(mcpResourceUri(ctx.productName, 'schema'));\n const dashboardUri = track(mcpResourceUri(ctx.productName, 'dashboard'));\n const eventsUri = track(mcpResourceUri(ctx.productName, 'events'));\n const venuesUri = track(mcpResourceUri(ctx.productName, 'venues'));\n\n // <product>://schema — domain overview\n server.registerResource(\n 'eventfullymanaged-schema',\n schemaUri,\n {\n title: 'Eventfullymanaged Domain Schema',\n description:\n 'Overview of the Eventfullymanaged event-management domain — entities, free-form status conventions, and the per-entity tool surface.',\n mimeType: 'text/plain',\n },\n async () => {\n ctx.logger.debug(`Resource ${schemaUri} requested`);\n const schema = `# Eventfullymanaged Domain (Overview)\n\nEnd-to-end event-management platform: plan events, sell tickets, run check-in,\npower networking, and operate the show.\n\n## Entities\n- EventfullyManagedEvent — the top-level event\n- EventfullyManagedVenue (+ EventfullyManagedFloorPlan) — physical venues + floor plans\n- EventfullyManagedEventSession — agenda/program sessions\n- EventfullyManagedSpeaker — speaker profiles\n- EventfullyManagedAttendee — attendee records\n- EventfullyManagedRegistration — ticket registrations\n- EventfullyManagedTicketType — ticket types (price as decimal string)\n- EventfullyManagedPromoCode — discount codes\n- EventfullyManagedSponsor — event sponsors\n- EventfullyManagedExhibitor — expo exhibitors\n- EventfullyManagedLead — captured booth/sponsor leads\n- EventfullyManagedCheckInStation / EventfullyManagedCheckInRecord — check-in kiosks + scans\n- EventfullyManagedNetworkingProfile / NetworkingMatch / Meeting — attendee networking\n- \"Simple entity\" surfaces (upsertable): announcements, automation rules,\n communication campaigns, workflow templates, analytics snapshots\n\n## Conventions\n- status / type / visibility / level / direction / method / discountType are\n FREE-FORM strings (no GraphQL enums) — use the values your event app expects.\n- Monetary fields (ticket price, promo discountValue, registration totalAmount)\n are DECIMAL STRINGS, not numbers.\n- The create and update mutations share one input type per entity, so update\n requires the same required fields as create (plus the id).\n- All operations run against the WORKSPACE gateway and are workspace-scoped via\n gateway headers; list queries also accept an OPTIONAL workspaceId filter.\n\n## Tool groups\nevents; venues + floor_plans; sessions + speakers (agenda); attendees +\nregistrations; tickets + promo_codes; sponsors + exhibitors + leads; checkin\n(stations + records); networking (profiles + matches + meetings); content\n(announcements / automation_rules / communication_campaigns / workflow_templates\n/ analytics_snapshots) + dashboard_summary.\n`;\n return {\n contents: [{ uri: schemaUri, text: schema, mimeType: 'text/plain' }],\n };\n },\n );\n\n // <product>://dashboard — headline KPIs\n server.registerResource(\n 'eventfullymanaged-dashboard',\n dashboardUri,\n {\n title: 'Eventfullymanaged Dashboard Summary',\n description:\n 'Live headline KPIs (events, venues, registrations, attendees, sponsors, upcoming sessions, latest events).',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${dashboardUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{\n eventfullyManagedDashboardSummary: unknown;\n }>(DASHBOARD_SUMMARY, {});\n return {\n contents: [\n {\n uri: dashboardUri,\n text: JSON.stringify(data.eventfullyManagedDashboardSummary, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: dashboardUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://events — recent events\n server.registerResource(\n 'eventfullymanaged-events',\n eventsUri,\n {\n title: 'Eventfullymanaged Event Directory',\n description: 'The first 50 events in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${eventsUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedEvents: unknown }>(\n LIST_EVENTS,\n { limit: 50, offset: 0 },\n );\n return {\n contents: [\n {\n uri: eventsUri,\n text: JSON.stringify(data.eventfullyManagedEvents, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: eventsUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n\n // <product>://venues — venue directory\n server.registerResource(\n 'eventfullymanaged-venues',\n venuesUri,\n {\n title: 'Eventfullymanaged Venue Directory',\n description: 'The first 50 venues in the bound workspace.',\n mimeType: 'application/json',\n },\n async () => {\n ctx.logger.debug(`Resource ${venuesUri} requested`);\n try {\n const data = await ctx.gql.workspace.request<{ eventfullyManagedVenues: unknown }>(\n LIST_VENUES,\n { limit: 50, offset: 0 },\n );\n return {\n contents: [\n {\n uri: venuesUri,\n text: JSON.stringify(data.eventfullyManagedVenues, null, 2),\n mimeType: 'application/json',\n },\n ],\n };\n } catch (error) {\n return {\n contents: [\n {\n uri: venuesUri,\n text: JSON.stringify({\n error: error instanceof Error ? error.message : String(error),\n }),\n mimeType: 'application/json',\n },\n ],\n };\n }\n },\n );\n}\n","import { z } from 'zod';\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { mcpPromptName, type McpContext } from '../../core/index.js';\n\n/**\n * Eventfullymanaged MCP prompts — guided multi-step workflows. Names are\n * product-prefixed via mcpPromptName and tracked at function entry.\n */\nexport function registerEventfullymanagedPrompts(\n server: McpServer,\n ctx: McpContext,\n track: (n: string) => string,\n): void {\n const p = ctx.productName;\n const setupName = track(mcpPromptName(p, 'event-setup'));\n const opsName = track(mcpPromptName(p, 'event-ops'));\n\n // <product>-event-setup — stand up a new event end to end\n server.registerPrompt(\n setupName,\n {\n title: 'Event Setup',\n description:\n 'Guide for standing up a new event end to end: create the event, pick/create a venue, build the agenda, define ticket types, and open registration.',\n argsSchema: {\n name: z.string().optional().describe('Event name'),\n type: z.string().optional().describe('Event type (conference, workshop, webinar, ...)'),\n },\n },\n ({ name, type }) => {\n ctx.logger.debug(`Prompt ${setupName} called`, { name, type });\n const nameNote = name ? `Use the event name \"${name}\".` : 'Ask the user for the event name.';\n const typeNote = type ? `Use type ${type}.` : 'Help the user pick an event type.';\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Help me set up a new Eventfullymanaged event.\n\n1. **Create Event**: Use ${p}_events_create. ${nameNote} ${typeNote} Provide a timezone (IANA, e.g. \"Asia/Kolkata\") and startAt/endAt ISO-8601 timestamps.\n2. **Venue**: Use ${p}_venues_list to reuse an existing venue, or ${p}_venues_create for a new one. Optionally add a layout with ${p}_floor_plans_create.\n3. **Agenda**: Add program sessions with ${p}_sessions_create (eventId, title, sessionType, startsAt/endsAt) and speakers with ${p}_speakers_create.\n4. **Tickets**: Define ticket types with ${p}_tickets_create (price is a decimal string). Optionally add discounts with ${p}_promo_codes_create.\n5. **Sponsors / Exhibitors**: Use ${p}_sponsors_create and ${p}_exhibitors_create as needed.\n6. **Open Registration**: Confirm ticket types are isActive, then publish the event via ${p}_events_update with status=\"published\".\n\nShow results at each step and confirm before publishing.`,\n },\n },\n ],\n };\n },\n );\n\n // <product>-event-ops — run a live event day\n server.registerPrompt(\n opsName,\n {\n title: 'Event Operations',\n description:\n 'Live event-day operations: review KPIs, manage registrations + check-in, drive sponsor/exhibitor lead capture, and power attendee networking.',\n argsSchema: {\n eventId: z.string().optional().describe('Event ID to operate'),\n },\n },\n ({ eventId }) => {\n ctx.logger.debug(`Prompt ${opsName} called`, { eventId });\n const eventNote = eventId\n ? `Operate event \"${eventId}\".`\n : `First list events with ${p}_events_list and pick one.`;\n return {\n messages: [\n {\n role: 'user' as const,\n content: {\n type: 'text' as const,\n text: `Run live Eventfullymanaged operations. ${eventNote}\n\n1. **KPIs**: Use ${p}_dashboard_summary for headline numbers.\n2. **Registrations**: Use ${p}_registrations_list (filter by eventId) to track sign-ups; create walk-ins with ${p}_attendees_create + ${p}_registrations_create.\n3. **Check-in**: Ensure stations are live with ${p}_checkin_stations_list; log scans with ${p}_checkin_records_create (direction \"in\"/\"out\").\n4. **Sponsors & Leads**: Capture booth leads with ${p}_leads_create and progress them with ${p}_leads_update (status/score).\n5. **Networking**: Review ${p}_matches_list and confirm 1:1s with ${p}_meetings_update.\n6. **Comms**: Push updates by upserting an announcement with ${p}_announcements_upsert.\n\nSummarize what needs attention after each step.`,\n },\n },\n ],\n };\n },\n );\n}\n","/**\n * Eventfullymanaged module — domain module for the future-products ecosystem program.\n *\n * Covers the event-management domain of wspace-eventfullymanaged-svc grouped\n * into per-entity sub-APIs: events, venues (+ floor plans), agenda (event\n * sessions + speakers), attendees (+ registrations), ticketing (ticket types +\n * promo codes), sponsorship (sponsors + exhibitors + leads), check-in (stations\n * + records), networking (profiles + matches + meetings), and operational\n * content (announcements / automation rules / communication campaigns /\n * workflow templates / analytics snapshots) + a dashboard summary. Mirrors the\n * rich kadaikodi/crewfoundry modules' structure (tools/<entity>.ts +\n * resources.ts + prompts.ts) and the canonical typing discipline.\n *\n * Backend: ~/products/wspace/eventfullymanaged/wspace-eventfullymanaged-svc/\n * (Hive service name `eventfullymanaged`). All operations run against the\n * WORKSPACE gateway. The subgraph exposes only the federation noop `_empty`\n * (no @public health field), so there is intentionally NO health tool.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport type { McpContext, McpModule, ModuleRegistration } from '../../core/index.js';\nimport { registerEventTools } from './tools/events.js';\nimport { registerVenueTools } from './tools/venues.js';\nimport { registerAgendaTools } from './tools/agenda.js';\nimport { registerAttendeeTools } from './tools/attendees.js';\nimport { registerTicketingTools } from './tools/ticketing.js';\nimport { registerSponsorshipTools } from './tools/sponsorship.js';\nimport { registerCheckinTools } from './tools/checkin.js';\nimport { registerNetworkingTools } from './tools/networking.js';\nimport { registerContentTools } from './tools/content.js';\nimport { registerEventfullymanagedResources } from './resources.js';\nimport { registerEventfullymanagedPrompts } from './prompts.js';\n\nconst eventfullymanagedModule: McpModule = {\n id: 'eventfullymanaged',\n version: '0.0.1',\n displayName: 'Eventfullymanaged',\n dependsOn: ['auth'],\n capabilities: { tools: {}, resources: {}, prompts: {} },\n\n register(server: McpServer, ctx: McpContext): ModuleRegistration {\n const tools: string[] = [];\n const resources: string[] = [];\n const prompts: string[] = [];\n\n const trackTool = (n: string): string => {\n tools.push(n);\n return n;\n };\n const trackResource = (uri: string): string => {\n resources.push(uri);\n return uri;\n };\n const trackPrompt = (n: string): string => {\n prompts.push(n);\n return n;\n };\n\n registerEventTools(server, ctx, trackTool);\n registerVenueTools(server, ctx, trackTool);\n registerAgendaTools(server, ctx, trackTool);\n registerAttendeeTools(server, ctx, trackTool);\n registerTicketingTools(server, ctx, trackTool);\n registerSponsorshipTools(server, ctx, trackTool);\n registerCheckinTools(server, ctx, trackTool);\n registerNetworkingTools(server, ctx, trackTool);\n registerContentTools(server, ctx, trackTool);\n\n registerEventfullymanagedResources(server, ctx, trackResource);\n registerEventfullymanagedPrompts(server, ctx, trackPrompt);\n\n return { tools, resources, prompts };\n },\n};\n\nexport default eventfullymanagedModule;\n"]}