@agent-deck/backend 1.8.1 → 1.9.0

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 (182) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cli-runtime.d.ts.map +1 -1
  3. package/dist/cli-runtime.js +5 -5
  4. package/dist/cli-runtime.js.map +1 -1
  5. package/dist/config/mcp-endpoint.d.ts +6 -0
  6. package/dist/config/mcp-endpoint.d.ts.map +1 -0
  7. package/dist/config/mcp-endpoint.js +19 -0
  8. package/dist/config/mcp-endpoint.js.map +1 -0
  9. package/dist/export-import/import-bundle.d.ts +12 -1
  10. package/dist/export-import/import-bundle.d.ts.map +1 -1
  11. package/dist/export-import/import-bundle.js +11 -3
  12. package/dist/export-import/import-bundle.js.map +1 -1
  13. package/dist/lib/agent-deck-context.d.ts +1 -1
  14. package/dist/lib/agent-deck-context.d.ts.map +1 -1
  15. package/dist/lib/agent-deck-context.js +4 -17
  16. package/dist/lib/agent-deck-context.js.map +1 -1
  17. package/dist/lib/backend-api-error.d.ts.map +1 -1
  18. package/dist/lib/backend-api-error.js +0 -1
  19. package/dist/lib/backend-api-error.js.map +1 -1
  20. package/dist/lib/bound-deck-scope.d.ts.map +1 -1
  21. package/dist/lib/bound-deck-scope.js +0 -4
  22. package/dist/lib/bound-deck-scope.js.map +1 -1
  23. package/dist/lib/http-auth.d.ts +0 -14
  24. package/dist/lib/http-auth.d.ts.map +1 -1
  25. package/dist/lib/http-auth.js +0 -25
  26. package/dist/lib/http-auth.js.map +1 -1
  27. package/dist/lib/invalid-deck-id-path-segment.d.ts +6 -0
  28. package/dist/lib/invalid-deck-id-path-segment.d.ts.map +1 -0
  29. package/dist/lib/invalid-deck-id-path-segment.js +11 -0
  30. package/dist/lib/invalid-deck-id-path-segment.js.map +1 -0
  31. package/dist/lib/route-policy.js +2 -2
  32. package/dist/lib/route-policy.js.map +1 -1
  33. package/dist/mcp-server.d.ts +11 -13
  34. package/dist/mcp-server.d.ts.map +1 -1
  35. package/dist/mcp-server.js +124 -161
  36. package/dist/mcp-server.js.map +1 -1
  37. package/dist/mcp-session-binding.d.ts +7 -15
  38. package/dist/mcp-session-binding.d.ts.map +1 -1
  39. package/dist/mcp-session-binding.js +14 -30
  40. package/dist/mcp-session-binding.js.map +1 -1
  41. package/dist/mcp-tools/policy.d.ts +0 -3
  42. package/dist/mcp-tools/policy.d.ts.map +1 -1
  43. package/dist/mcp-tools/policy.js +6 -43
  44. package/dist/mcp-tools/policy.js.map +1 -1
  45. package/dist/mcp-tools/register.d.ts +1 -5
  46. package/dist/mcp-tools/register.d.ts.map +1 -1
  47. package/dist/mcp-tools/register.js +100 -104
  48. package/dist/mcp-tools/register.js.map +1 -1
  49. package/dist/mcp-tools/test-harness.d.ts +22 -5
  50. package/dist/mcp-tools/test-harness.d.ts.map +1 -1
  51. package/dist/mcp-tools/test-harness.js +64 -23
  52. package/dist/mcp-tools/test-harness.js.map +1 -1
  53. package/dist/models/database.d.ts +2 -0
  54. package/dist/models/database.d.ts.map +1 -1
  55. package/dist/models/database.js +16 -0
  56. package/dist/models/database.js.map +1 -1
  57. package/dist/playbooks/playbook-manager.d.ts.map +1 -1
  58. package/dist/playbooks/playbook-manager.js +9 -4
  59. package/dist/playbooks/playbook-manager.js.map +1 -1
  60. package/dist/playbooks/stub-sync.d.ts +9 -0
  61. package/dist/playbooks/stub-sync.d.ts.map +1 -1
  62. package/dist/playbooks/stub-sync.js +51 -12
  63. package/dist/playbooks/stub-sync.js.map +1 -1
  64. package/dist/routes/decks.d.ts.map +1 -1
  65. package/dist/routes/decks.js +8 -52
  66. package/dist/routes/decks.js.map +1 -1
  67. package/dist/routes/export-import.d.ts.map +1 -1
  68. package/dist/routes/export-import.js +3 -5
  69. package/dist/routes/export-import.js.map +1 -1
  70. package/dist/routes/launch.d.ts +8 -0
  71. package/dist/routes/launch.d.ts.map +1 -0
  72. package/dist/routes/launch.js +35 -0
  73. package/dist/routes/launch.js.map +1 -0
  74. package/dist/routes/scope.d.ts.map +1 -1
  75. package/dist/routes/scope.js +1 -39
  76. package/dist/routes/scope.js.map +1 -1
  77. package/dist/routes/services.d.ts.map +1 -1
  78. package/dist/routes/services.js +1 -7
  79. package/dist/routes/services.js.map +1 -1
  80. package/dist/routes/trusted-session.d.ts.map +1 -1
  81. package/dist/routes/trusted-session.js +50 -152
  82. package/dist/routes/trusted-session.js.map +1 -1
  83. package/dist/scope/live-display-registry.d.ts +0 -2
  84. package/dist/scope/live-display-registry.d.ts.map +1 -1
  85. package/dist/scope/live-display-registry.js +0 -1
  86. package/dist/scope/live-display-registry.js.map +1 -1
  87. package/dist/server/index.d.ts +0 -2
  88. package/dist/server/index.d.ts.map +1 -1
  89. package/dist/server/index.js +2 -5
  90. package/dist/server/index.js.map +1 -1
  91. package/dist/services/service-manager.d.ts +5 -1
  92. package/dist/services/service-manager.d.ts.map +1 -1
  93. package/dist/services/service-manager.js +27 -3
  94. package/dist/services/service-manager.js.map +1 -1
  95. package/dist/store/deck-file.d.ts +55 -0
  96. package/dist/store/deck-file.d.ts.map +1 -0
  97. package/dist/store/deck-file.js +163 -0
  98. package/dist/store/deck-file.js.map +1 -0
  99. package/dist/store/index.d.ts +1 -0
  100. package/dist/store/index.d.ts.map +1 -1
  101. package/dist/store/index.js +1 -0
  102. package/dist/store/index.js.map +1 -1
  103. package/dist/store/migrate.d.ts.map +1 -1
  104. package/dist/store/migrate.js +2 -12
  105. package/dist/store/migrate.js.map +1 -1
  106. package/dist/test/auth-fixtures.d.ts +1 -1
  107. package/dist/test/auth-fixtures.d.ts.map +1 -1
  108. package/dist/test/auth-fixtures.js +2 -11
  109. package/dist/test/auth-fixtures.js.map +1 -1
  110. package/dist/trusted-session/auth.d.ts +1 -7
  111. package/dist/trusted-session/auth.d.ts.map +1 -1
  112. package/dist/trusted-session/auth.js +7 -54
  113. package/dist/trusted-session/auth.js.map +1 -1
  114. package/dist/trusted-session/policy-hook.d.ts.map +1 -1
  115. package/dist/trusted-session/policy-hook.js +1 -51
  116. package/dist/trusted-session/policy-hook.js.map +1 -1
  117. package/dist/trusted-session/route-policy-registry.d.ts.map +1 -1
  118. package/dist/trusted-session/route-policy-registry.js +5 -56
  119. package/dist/trusted-session/route-policy-registry.js.map +1 -1
  120. package/dist/trusted-session/store.d.ts +12 -45
  121. package/dist/trusted-session/store.d.ts.map +1 -1
  122. package/dist/trusted-session/store.js +66 -208
  123. package/dist/trusted-session/store.js.map +1 -1
  124. package/dist/vault/credential-manager.d.ts +6 -2
  125. package/dist/vault/credential-manager.d.ts.map +1 -1
  126. package/dist/vault/credential-manager.js +21 -14
  127. package/dist/vault/credential-manager.js.map +1 -1
  128. package/package.json +2 -2
  129. package/static-ui/assets/{index-DhP_UPyM.js → index-Bb9ckehB.js} +1 -1
  130. package/static-ui/index.html +1 -1
  131. package/dist/execution-authority/bearer.d.ts +0 -15
  132. package/dist/execution-authority/bearer.d.ts.map +0 -1
  133. package/dist/execution-authority/bearer.js +0 -35
  134. package/dist/execution-authority/bearer.js.map +0 -1
  135. package/dist/execution-authority/index.d.ts +0 -6
  136. package/dist/execution-authority/index.d.ts.map +0 -1
  137. package/dist/execution-authority/index.js +0 -8
  138. package/dist/execution-authority/index.js.map +0 -1
  139. package/dist/execution-authority/ledger.d.ts +0 -85
  140. package/dist/execution-authority/ledger.d.ts.map +0 -1
  141. package/dist/execution-authority/ledger.js +0 -507
  142. package/dist/execution-authority/ledger.js.map +0 -1
  143. package/dist/execution-authority/store.d.ts +0 -55
  144. package/dist/execution-authority/store.d.ts.map +0 -1
  145. package/dist/execution-authority/store.js +0 -256
  146. package/dist/execution-authority/store.js.map +0 -1
  147. package/dist/execution-authority/types.d.ts +0 -119
  148. package/dist/execution-authority/types.d.ts.map +0 -1
  149. package/dist/execution-authority/types.js +0 -9
  150. package/dist/execution-authority/types.js.map +0 -1
  151. package/dist/lib/execution-authority-http.d.ts +0 -23
  152. package/dist/lib/execution-authority-http.d.ts.map +0 -1
  153. package/dist/lib/execution-authority-http.js +0 -101
  154. package/dist/lib/execution-authority-http.js.map +0 -1
  155. package/dist/mcp-stdio.d.ts +0 -2
  156. package/dist/mcp-stdio.d.ts.map +0 -1
  157. package/dist/mcp-stdio.js.map +0 -1
  158. package/dist/playbooks/playbook-parser.d.ts +0 -8
  159. package/dist/playbooks/playbook-parser.d.ts.map +0 -1
  160. package/dist/playbooks/playbook-parser.js +0 -76
  161. package/dist/playbooks/playbook-parser.js.map +0 -1
  162. package/dist/playbooks/playbook-service.d.ts +0 -9
  163. package/dist/playbooks/playbook-service.d.ts.map +0 -1
  164. package/dist/playbooks/playbook-service.js +0 -107
  165. package/dist/playbooks/playbook-service.js.map +0 -1
  166. package/dist/routes/execution-authority.d.ts +0 -8
  167. package/dist/routes/execution-authority.d.ts.map +0 -1
  168. package/dist/routes/execution-authority.js +0 -506
  169. package/dist/routes/execution-authority.js.map +0 -1
  170. package/dist/scope/bindings-sidecar.d.ts +0 -9
  171. package/dist/scope/bindings-sidecar.d.ts.map +0 -1
  172. package/dist/scope/bindings-sidecar.js +0 -57
  173. package/dist/scope/bindings-sidecar.js.map +0 -1
  174. package/dist/scope/repo-deck.d.ts +0 -10
  175. package/dist/scope/repo-deck.d.ts.map +0 -1
  176. package/dist/scope/repo-deck.js +0 -63
  177. package/dist/scope/repo-deck.js.map +0 -1
  178. package/dist/test-local-mcp-e2e.d.ts +0 -3
  179. package/dist/test-local-mcp-e2e.d.ts.map +0 -1
  180. package/dist/test-local-mcp-e2e.js +0 -104
  181. package/dist/test-local-mcp-e2e.js.map +0 -1
  182. package/static-ui/favicon.png +0 -0
@@ -11,8 +11,6 @@ const shared_1 = require("@agent-deck/shared");
11
11
  const express_1 = __importDefault(require("express"));
12
12
  const node_crypto_1 = require("node:crypto");
13
13
  const version_1 = require("./lib/version");
14
- const http_auth_1 = require("./lib/http-auth");
15
- const bearer_1 = require("./execution-authority/bearer");
16
14
  const backend_api_error_1 = require("./lib/backend-api-error");
17
15
  const policy_1 = require("./mcp-tools/policy");
18
16
  const mcp_session_binding_1 = require("./mcp-session-binding");
@@ -24,10 +22,16 @@ function readWorkspaceRootHeader(req) {
24
22
  const value = typeof raw === 'string' ? raw.trim() : '';
25
23
  return value || undefined;
26
24
  }
25
+ function readLaunchDeckHeader(req) {
26
+ const raw = req.headers[shared_1.AGENT_DECK_DECK_ID_HEADER];
27
+ const value = typeof raw === 'string' ? raw.trim() : '';
28
+ return value || undefined;
29
+ }
27
30
  class AgentDeckMCPServer {
28
31
  port;
29
32
  host;
30
33
  app;
34
+ httpServer = null;
31
35
  backendUrl;
32
36
  toolProfile;
33
37
  sessions = new Map();
@@ -38,6 +42,8 @@ class AgentDeckMCPServer {
38
42
  /** Session badge from the backend registry (POST /api/scope/live-display response). */
39
43
  badgeBySession = new Map();
40
44
  lastTouchAtMs = new Map();
45
+ /** In-flight live-display unregisters so `stop()` can drain them before closing. */
46
+ unregisterTasks = new Map();
41
47
  get server() {
42
48
  if (!this.mcpServerForRegistration) {
43
49
  throw new Error('Internal: MCP server not in registration context');
@@ -57,6 +63,10 @@ class AgentDeckMCPServer {
57
63
  deckId: process.env.AGENT_DECK_DECK_ID,
58
64
  });
59
65
  }
66
+ /** Actual listening port (resolves OS-assigned `port: 0` after `start()`). */
67
+ getPort() {
68
+ return this.port;
69
+ }
60
70
  /**
61
71
  * One McpServer per transport session. Tools/resources close over `sessionId`
62
72
  * so concurrent requests cannot steal another session's backend authority.
@@ -102,10 +112,6 @@ class AgentDeckMCPServer {
102
112
  };
103
113
  }
104
114
  async registerLiveDisplay(sessionId) {
105
- // Unattended execution authority must not mutate global live-display state.
106
- if (this.sessionBinding.getExecutionAuthority?.(sessionId)) {
107
- return;
108
- }
109
115
  const snapshot = this.sessionBinding.getBinding(sessionId);
110
116
  // A deck bind is what makes a session live; the workspace may be absent
111
117
  // (header/auto-bound sessions surface in the dashboard without a folder).
@@ -135,9 +141,6 @@ class AgentDeckMCPServer {
135
141
  static TOUCH_DEBOUNCE_MS = 5_000;
136
142
  /** Fire-and-forget lastActivityAt bump; only for sessions the registry knows. */
137
143
  touchLiveDisplay(sessionId) {
138
- if (this.sessionBinding.getExecutionAuthority?.(sessionId)) {
139
- return;
140
- }
141
144
  if (!this.badgeBySession.has(sessionId)) {
142
145
  return;
143
146
  }
@@ -165,9 +168,6 @@ class AgentDeckMCPServer {
165
168
  : AgentDeckMCPServer.UNREGISTER_TIMEOUT_MS;
166
169
  }
167
170
  async unregisterLiveDisplay(sessionId) {
168
- if (this.sessionBinding.getExecutionAuthority(sessionId)) {
169
- return;
170
- }
171
171
  const controller = new AbortController();
172
172
  const timer = setTimeout(() => controller.abort(), AgentDeckMCPServer.unregisterTimeoutMs());
173
173
  try {
@@ -237,6 +237,7 @@ class AgentDeckMCPServer {
237
237
  const summaries = (await this.callBackendAPI('/api/playbooks/summaries', {}, sessionId));
238
238
  const stubs = (0, stub_sync_1.syncPlaybookStubs)(workspaceRoot, summaries ?? []);
239
239
  const manifestPath = (0, stub_sync_1.healUseManifest)(workspaceRoot, deck);
240
+ (0, shared_1.ensureGitExcluded)(workspaceRoot);
240
241
  await this.callBackendAPI('/api/scope/deck-workspace', {
241
242
  method: 'POST',
242
243
  headers: { 'Content-Type': 'application/json' },
@@ -513,9 +514,6 @@ class AgentDeckMCPServer {
513
514
  }
514
515
  async refreshRuntimeSession(sessionId) {
515
516
  const binding = this.sessionBinding.getBinding(sessionId);
516
- if (binding.authorityId && binding.deckId) {
517
- return { mode: 'normal', deckId: binding.deckId };
518
- }
519
517
  if (!binding.runtimeSessionId) {
520
518
  throw new Error('GRANT_REQUIRED');
521
519
  }
@@ -530,18 +528,6 @@ class AgentDeckMCPServer {
530
528
  });
531
529
  return { mode, deckId };
532
530
  }
533
- parseGrantBearer(req) {
534
- const raw = (0, http_auth_1.parseBearerToken)({ headers: req.headers });
535
- if (!raw)
536
- return null;
537
- if ((0, bearer_1.parseAuthorityBearer)(raw))
538
- return null;
539
- return (0, http_auth_1.parseWorkspaceGrantBearer)(raw);
540
- }
541
- parseAuthorityBearerCreds(req) {
542
- const raw = (0, http_auth_1.parseBearerToken)({ headers: req.headers });
543
- return raw ? (0, bearer_1.parseAuthorityBearer)(raw) : null;
544
- }
545
531
  sendGrantRequired(res) {
546
532
  res.status(401).json({
547
533
  jsonrpc: '2.0',
@@ -549,136 +535,96 @@ class AgentDeckMCPServer {
549
535
  id: null,
550
536
  });
551
537
  }
552
- sendAuthorityError(res, code) {
553
- res.status(401).json({
554
- jsonrpc: '2.0',
555
- error: { code: -32001, message: code },
556
- id: null,
557
- });
558
- }
559
- async authenticateExecutionAuthority(sessionId, req) {
560
- const creds = this.parseAuthorityBearerCreds(req);
561
- if (!creds) {
562
- throw new Error('AUTHORITY_SECRET_INVALID');
563
- }
564
- const response = await fetch(`${this.backendUrl}/api/execution-authority/mcp/connect`, {
565
- method: 'POST',
566
- headers: {
567
- 'Content-Type': 'application/json',
568
- Accept: 'application/json',
569
- Authorization: `Bearer ${creds.authorityId}:${creds.secret}`,
570
- },
571
- body: JSON.stringify({
572
- authorityId: creds.authorityId,
573
- authoritySecret: creds.secret,
574
- audience: 'dealer-worker',
575
- }),
576
- });
577
- const body = (await response.json());
578
- if (!response.ok || !body.ok || !body.data) {
579
- throw new Error(body.error_code ?? 'AUTHORITY_SECRET_INVALID');
538
+ async authenticateLaunchDeck(sessionId, req) {
539
+ const deckId = readLaunchDeckHeader(req);
540
+ if (!deckId) {
541
+ throw new Error('GRANT_REQUIRED');
580
542
  }
581
543
  const existing = this.sessionBinding.getBinding(sessionId);
582
- const workspaceRoot = readWorkspaceRootHeader(req) ??
583
- existing.workspaceRoot ??
584
- (process.env.AGENT_DECK_WORKSPACE?.trim() || undefined);
585
- this.sessionBinding.setExecutionAuthority(sessionId, {
586
- authorityId: body.data.authorityId,
587
- authoritySecret: creds.secret,
588
- deckId: body.data.deckId,
589
- audience: body.data.audience,
590
- workspaceRoot,
591
- });
592
- }
593
- async authenticateTrustedSession(sessionId, req) {
594
- const grant = this.parseGrantBearer(req);
595
- if (!grant) {
596
- throw new Error('GRANT_REQUIRED');
544
+ // Follow-up after elevated assignment switch (NOT-108): the launcher may still
545
+ // send the old deck header until reconnect. Keep the runtime session and refresh.
546
+ if (this.sessionBinding.isLaunchSession(sessionId) && existing.runtimeSessionId) {
547
+ await this.refreshRuntimeSession(sessionId);
548
+ const workspaceRoot = readWorkspaceRootHeader(req) ??
549
+ existing.workspaceRoot ??
550
+ (process.env.AGENT_DECK_WORKSPACE?.trim() || undefined);
551
+ if (workspaceRoot) {
552
+ this.sessionBinding.setWorkspace(sessionId, workspaceRoot);
553
+ }
554
+ return;
597
555
  }
598
- const response = await fetch(`${this.backendUrl}/api/trusted-session/mcp/connect`, {
556
+ const response = await fetch(`${this.backendUrl}/api/trusted-session/mcp/connect-deck`, {
599
557
  method: 'POST',
600
558
  headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
601
559
  body: JSON.stringify({
602
- grantSecret: grant.secret,
560
+ deckId,
603
561
  mcpSessionId: sessionId,
604
- ...(grant.claimedGrantId ? { claimedGrantId: grant.claimedGrantId } : {}),
605
562
  }),
606
563
  });
607
564
  const body = (await response.json());
608
565
  if (!response.ok || !body.success || !body.data) {
609
- throw new Error(body.error ?? 'GRANT_REQUIRED');
566
+ throw new Error(body.error ?? 'LAUNCH_DECK_INVALID');
610
567
  }
611
- const existing = this.sessionBinding.getBinding(sessionId);
612
568
  const workspaceRoot = readWorkspaceRootHeader(req) ??
613
569
  existing.workspaceRoot ??
614
570
  (process.env.AGENT_DECK_WORKSPACE?.trim() || undefined);
615
- this.sessionBinding.setTrustedSession(sessionId, {
571
+ this.sessionBinding.setLaunchSession(sessionId, {
616
572
  runtimeSessionId: body.data.sessionId,
617
573
  deckId: body.data.deckId,
618
- // Prefer client header (mcp-launch); keep prior bind; server env is last resort.
619
574
  workspaceRoot,
620
575
  mode: body.data.mode,
621
576
  });
622
577
  }
623
- async disconnectTrustedSession(sessionId, req) {
624
- const grant = this.parseGrantBearer(req);
625
- if (!grant) {
626
- return;
627
- }
628
- try {
629
- await fetch(`${this.backendUrl}/api/trusted-session/mcp/disconnect`, {
630
- method: 'POST',
631
- headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
632
- body: JSON.stringify({ grantSecret: grant.secret, mcpSessionId: sessionId }),
633
- });
634
- }
635
- catch {
636
- // best-effort cleanup
578
+ async disconnectTrustedSession(sessionId, _req) {
579
+ if (this.sessionBinding.isLaunchSession(sessionId)) {
580
+ try {
581
+ await fetch(`${this.backendUrl}/api/trusted-session/mcp/disconnect-deck`, {
582
+ method: 'POST',
583
+ headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
584
+ body: JSON.stringify({ mcpSessionId: sessionId }),
585
+ });
586
+ }
587
+ catch {
588
+ // best-effort cleanup
589
+ }
637
590
  }
638
591
  }
639
592
  /**
640
- * Re-validate workspace grant or execution authority on every follow-up MCP HTTP request.
641
- * Fail closed with 401 — do not destroy the transport session so a correct
642
- * Bearer on the next attempt can succeed.
643
- * AGENT_DECK_MCP_SKIP_GRANT_AUTH=1 only relaxes *missing* Bearer (unit tests).
593
+ * Re-validate launch deck on every follow-up MCP HTTP request.
594
+ * Fail closed with 401 — do not destroy the transport session so a
595
+ * correct credential on the next attempt can succeed.
596
+ * AGENT_DECK_MCP_SKIP_GRANT_AUTH=1 only relaxes *missing* deck header (unit tests).
644
597
  */
645
598
  async requireFollowUpGrant(sessionId, req, res) {
646
599
  const skipGrantAuth = process.env.AGENT_DECK_MCP_SKIP_GRANT_AUTH === '1';
647
- const authority = this.parseAuthorityBearerCreds(req);
648
- if (authority) {
600
+ const launchDeck = readLaunchDeckHeader(req);
601
+ if (launchDeck) {
649
602
  try {
650
- await this.authenticateExecutionAuthority(sessionId, req);
603
+ await this.authenticateLaunchDeck(sessionId, req);
651
604
  return true;
652
605
  }
653
606
  catch (error) {
654
- console.warn('[agent-deck] Follow-up authority auth failed (transport kept):', error instanceof Error ? error.message : error);
655
- this.sendAuthorityError(res, error instanceof Error ? error.message : 'AUTHORITY_SECRET_INVALID');
607
+ console.warn('[agent-deck] Follow-up launch-deck auth failed (transport kept):', error instanceof Error ? error.message : error);
608
+ this.sendLaunchDeckInvalid(res, error instanceof Error ? error.message : 'LAUNCH_DECK_INVALID');
656
609
  return false;
657
610
  }
658
611
  }
659
- const grant = this.parseGrantBearer(req);
660
- if (!grant) {
661
- if (skipGrantAuth) {
662
- return true;
663
- }
612
+ if (this.sessionBinding.isLaunchSession(sessionId)) {
664
613
  this.sendGrantRequired(res);
665
614
  return false;
666
615
  }
667
- try {
668
- await this.authenticateTrustedSession(sessionId, req);
616
+ if (skipGrantAuth) {
669
617
  return true;
670
618
  }
671
- catch (error) {
672
- console.warn('[agent-deck] Follow-up grant auth failed (transport kept):', error instanceof Error ? error.message : error);
673
- this.sendGrantRequired(res);
674
- return false;
675
- }
619
+ this.sendGrantRequired(res);
620
+ return false;
676
621
  }
677
- /**
678
- * @deprecated Legacy pre-bind from deck header — replaced by grant authentication.
679
- */
680
- preBindSessionDeck(_sessionId, _req) {
681
- // no-op — grant auth handled in authenticateTrustedSession
622
+ sendLaunchDeckInvalid(res, message) {
623
+ res.status(401).json({
624
+ jsonrpc: '2.0',
625
+ error: { code: -32001, message: `LAUNCH_DECK_INVALID: ${message}` },
626
+ id: null,
627
+ });
682
628
  }
683
629
  async handleMcpPost(req, res) {
684
630
  const sessionIdHeader = this.getSessionIdHeader(req);
@@ -704,36 +650,21 @@ class AgentDeckMCPServer {
704
650
  });
705
651
  return;
706
652
  }
707
- const authorityCreds = this.parseAuthorityBearerCreds(req);
708
- const grant = this.parseGrantBearer(req);
653
+ const launchDeck = readLaunchDeckHeader(req);
709
654
  const skipGrantAuth = process.env.AGENT_DECK_MCP_SKIP_GRANT_AUTH === '1';
710
- if (!grant && !authorityCreds && !skipGrantAuth) {
655
+ if (!launchDeck && !skipGrantAuth) {
711
656
  this.sendGrantRequired(res);
712
657
  return;
713
658
  }
714
- // Authenticate before advertising mcp-session-id. Previously we initialized
715
- // first, then deleted the session on grant failure — clients kept a dead id
716
- // and saw "No valid session ID provided" on the next request.
717
- // SKIP_GRANT_AUTH only allows *missing* Bearer (unit tests); a present Bearer
718
- // is always validated.
659
+ // Authenticate before advertising mcp-session-id.
719
660
  const sessionId = (0, node_crypto_1.randomUUID)();
720
- if (authorityCreds) {
661
+ if (launchDeck) {
721
662
  try {
722
- await this.authenticateExecutionAuthority(sessionId, req);
663
+ await this.authenticateLaunchDeck(sessionId, req);
723
664
  }
724
665
  catch (error) {
725
- console.warn('[agent-deck] Authority auth failed before MCP init:', error instanceof Error ? error.message : error);
726
- this.sendAuthorityError(res, error instanceof Error ? error.message : 'AUTHORITY_SECRET_INVALID');
727
- return;
728
- }
729
- }
730
- else if (grant) {
731
- try {
732
- await this.authenticateTrustedSession(sessionId, req);
733
- }
734
- catch (error) {
735
- console.warn('[agent-deck] Grant auth failed before MCP init:', error instanceof Error ? error.message : error);
736
- this.sendGrantRequired(res);
666
+ console.warn('[agent-deck] Launch-deck auth failed before MCP init:', error instanceof Error ? error.message : error);
667
+ this.sendLaunchDeckInvalid(res, error instanceof Error ? error.message : 'LAUNCH_DECK_INVALID');
737
668
  return;
738
669
  }
739
670
  }
@@ -753,11 +684,13 @@ class AgentDeckMCPServer {
753
684
  this.sessions.delete(closedSessionId);
754
685
  // Unregister while session headers still resolve — clearSession would drop
755
686
  // the runtime session id and live-display DELETE would 401.
756
- void this.unregisterLiveDisplay(closedSessionId).finally(() => {
687
+ const task = this.unregisterLiveDisplay(closedSessionId).finally(() => {
757
688
  this.sessionBinding.clearSession(closedSessionId);
758
689
  this.badgeBySession.delete(closedSessionId);
759
690
  this.lastTouchAtMs.delete(closedSessionId);
691
+ this.unregisterTasks.delete(closedSessionId);
760
692
  });
693
+ this.unregisterTasks.set(closedSessionId, task);
761
694
  }
762
695
  };
763
696
  try {
@@ -767,8 +700,8 @@ class AgentDeckMCPServer {
767
700
  catch (error) {
768
701
  console.warn('[agent-deck] MCP initialize failed after grant auth — revoking runtime session:', error instanceof Error ? error.message : error);
769
702
  this.sessions.delete(sessionId);
770
- this.sessionBinding.clearSession(sessionId);
771
703
  await this.disconnectTrustedSession(sessionId, req);
704
+ this.sessionBinding.clearSession(sessionId);
772
705
  if (!res.headersSent) {
773
706
  res.status(500).json({
774
707
  jsonrpc: '2.0',
@@ -803,32 +736,45 @@ class AgentDeckMCPServer {
803
736
  await session.transport.handleRequest(req, res);
804
737
  }
805
738
  async start() {
739
+ if (this.httpServer) {
740
+ throw new Error('MCP server already started');
741
+ }
806
742
  try {
807
- console.log(`🚀 Starting Agent Deck MCP Server on port ${this.port}...`);
743
+ console.log(`🚀 Starting Agent Deck MCP Server on port ${this.port === 0 ? '(OS-assigned)' : this.port}...`);
808
744
  console.log(`🔗 Backend API URL: ${this.backendUrl}`);
809
- this.app.listen(this.port, this.host, () => {
810
- console.log(`✅ Agent Deck MCP Server is ready to accept connections`);
811
- console.log(`📋 Available tools:`);
812
- console.log(` - bind_workspace: Bind session to workspace + deck (deckId required)`);
813
- console.log(` - switch_bound_deck: Switch deck for this session only`);
814
- console.log(` - get_session_binding: Show session workspace + effective deck`);
815
- console.log(` - get_bound_deck: Get session-bound deck`);
816
- console.log(` - list_service_tools: List tools for a specific service`);
817
- console.log(` - call_service_tool: Call a tool on a service`);
818
- console.log(`📋 Available resources:`);
819
- console.log(` - agent-deck://decks: List of all available decks`);
820
- console.log(` - agent-deck://active-deck: The currently active deck`);
821
- console.log(` - agent-deck://active-deck/credentials: API keys on the active deck`);
822
- console.log(` - agent-deck://active-deck/services: Services in the active deck`);
823
- console.log(`🌐 Server running on http://${this.host}:${this.port}`);
824
- console.log(`🔧 MCP endpoint: http://${this.host}:${this.port}/mcp`);
825
- console.log(`❤️ Health check: http://${this.host}:${this.port}/health`);
826
- console.log(`🔗 Backend status: http://${this.host}:${this.port}/backend-status`);
827
- console.log(`📝 Architecture: MCP Server Backend API → Active Deck Services`);
745
+ await new Promise((resolve, reject) => {
746
+ const httpServer = this.app.listen(this.port, this.host, () => {
747
+ const address = httpServer.address();
748
+ if (typeof address === 'object' && address && typeof address.port === 'number') {
749
+ this.port = address.port;
750
+ }
751
+ console.log(`✅ Agent Deck MCP Server is ready to accept connections`);
752
+ console.log(`📋 Available tools:`);
753
+ console.log(` - bind_workspace: Bind session to workspace + deck (deckId required)`);
754
+ console.log(` - switch_bound_deck: Switch deck for this session only`);
755
+ console.log(` - get_session_binding: Show session workspace + effective deck`);
756
+ console.log(` - get_bound_deck: Get session-bound deck`);
757
+ console.log(` - list_service_tools: List tools for a specific service`);
758
+ console.log(` - call_service_tool: Call a tool on a service`);
759
+ console.log(`📋 Available resources:`);
760
+ console.log(` - agent-deck://decks: List of all available decks`);
761
+ console.log(` - agent-deck://active-deck: The currently active deck`);
762
+ console.log(` - agent-deck://active-deck/credentials: API keys on the active deck`);
763
+ console.log(` - agent-deck://active-deck/services: Services in the active deck`);
764
+ console.log(`🌐 Server running on http://${this.host}:${this.port}`);
765
+ console.log(`🔧 MCP endpoint: http://${this.host}:${this.port}/mcp`);
766
+ console.log(`❤️ Health check: http://${this.host}:${this.port}/health`);
767
+ console.log(`🔗 Backend status: http://${this.host}:${this.port}/backend-status`);
768
+ console.log(`📝 Architecture: MCP Server → Backend API → Active Deck Services`);
769
+ resolve();
770
+ });
771
+ httpServer.once('error', reject);
772
+ this.httpServer = httpServer;
828
773
  });
829
774
  return this.app;
830
775
  }
831
776
  catch (error) {
777
+ this.httpServer = null;
832
778
  console.error(`❌ Failed to start MCP server:`, error);
833
779
  throw error;
834
780
  }
@@ -844,10 +790,27 @@ class AgentDeckMCPServer {
844
790
  }
845
791
  }
846
792
  this.sessions.clear();
793
+ // Drain fire-and-forget live-display unregisters before tearing down HTTP —
794
+ // otherwise tests close the stub backend and see ECONNRESET console.error noise.
795
+ await Promise.all([...this.unregisterTasks.values()]);
796
+ if (this.httpServer) {
797
+ const httpServer = this.httpServer;
798
+ this.httpServer = null;
799
+ await new Promise((resolve, reject) => {
800
+ httpServer.close((error) => {
801
+ if (error) {
802
+ reject(error);
803
+ return;
804
+ }
805
+ resolve();
806
+ });
807
+ });
808
+ }
847
809
  console.log(`🛑 MCP server stopped`);
848
810
  }
849
811
  catch (error) {
850
812
  console.error(`❌ Error stopping MCP server:`, error);
813
+ throw error;
851
814
  }
852
815
  }
853
816
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAoE;AACpE,0FAAmG;AACnG,iEAAyE;AACzE,+CAM4B;AAC5B,sDAAqD;AACrD,6CAAyC;AAGzC,2CAAoD;AACpD,+DAAiF;AACjF,+CAAwD;AACxD,+DAG+B;AAC/B,mDAAwD;AACxD,iDAA4E;AAC5E,qDAO+B;AAE/B,SAAS,uBAAuB,CAAC,GAAY;IAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,oCAA2B,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kCAAyB,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAOD,MAAa,kBAAkB;IACrB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,GAAG,CAAsB;IACzB,UAAU,GAAsB,IAAI,CAAC;IACrC,UAAU,CAAS;IACnB,WAAW,CAAiB;IAC5B,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IACjD,mFAAmF;IAC3E,wBAAwB,CAAwB;IACxD,mFAAmF;IAC3E,cAAc,CAAyB;IAC/C,uFAAuF;IAC/E,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,oFAAoF;IAC5E,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE3D,IAAY,MAAM;QAChB,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAED,YACE,OAAe,IAAI,EACnB,aAAqB,uBAAuB,EAC5C,WAA4B,EAC5B,OAAe,WAAW;QAE1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAA,+BAAqB,GAAE,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,cAAc,GAAG,IAAI,4CAAsB,CAAC;YAC/C,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;YAC3C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SACvC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,eAAe,CAAC,SAAiB;QACvC,IAAI,CAAC,wBAAwB,GAAG,IAAI,kBAAS,CAAC;YAC5C,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,IAAA,6BAAmB,GAAE;SAC/B,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC;QAC7C,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;QAC1C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,MAAc,EACd,SAAiB;QAEjB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,cAAc,MAAM,EAAE,EAAE;YACjE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAK9B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YAChD,MAAM,IAAA,yCAAqB,EACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACpB,IAAI,CAAC,MAAM,CACZ,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM;YAC1B,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;YAClD,CAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAA,uBAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;QAC1F,OAAO;YACL,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAW;YAChD,SAAS,EAAE,IAAI,EAAE,IAAc;YAC/B,WAAW,EAAE,IAAA,8CAAwB,EAAC,QAAQ,CAAC;YAC/C,qBAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC;YAC5E,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,QAAQ;YAC/B,kBAAkB,EAAE,QAAQ,CAAC,gBAAgB;YAC7C,KAAK;YACL,eAAe,EAAE,IAAA,0BAAiB,EAAC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC;SAC9E,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,SAAiB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3D,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC;QACxF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CACtC,yBAAyB,EACzB;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,YAAY,EAAE,SAAS;gBACvB,aAAa,EAAE,QAAQ,CAAC,aAAa;gBACrC,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,IAAA,8CAAwB,EAAC,QAAQ,CAAC;gBAC1C,UAAU;gBACV,UAAU,EAAE,IAAA,uBAAc,EAAC,IAAI,CAAC;gBAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;SACH,EACD,SAAS,CACV,CAAC;QACF,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,MAAM,CAAU,iBAAiB,GAAG,KAAK,CAAC;IAElD,iFAAiF;IACzE,gBAAgB,CAAC,SAAiB;QACxC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;YAC1F,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACvC,KAAK,IAAI,CAAC,cAAc,CACtB,2BAA2B,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAChE;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;SACvD,EACD,SAAS,CACV,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACpB,CAAC;IAEO,MAAM,CAAU,qBAAqB,GAAG,KAAK,CAAC;IAEtD,mFAAmF;IAC3E,MAAM,CAAC,mBAAmB;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC;QAC7D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,kBAAkB,CAAC,qBAAqB,CAAC;QAClD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAC1C,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,kBAAkB,CAAC,qBAAqB,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QACnD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,kBAAkB,CAAC,mBAAmB,EAAE,CACzC,CAAC;QACF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,cAAc,CACvB,2BAA2B,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAC1D,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,EAC/C,SAAS,CACV,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;QAC1E,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,QAAgB,EAChB,OAAoB,EAAE,EACtB,SAAiB;QAEjB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,EAAE,EAAE;gBAC5D,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;iBACxB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,IAAA,yCAAqB,EAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEnC,sDAAsD;YACtD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACnE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,gFAAgF;oBAChF,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC3C,CAAC;gBACD,MAAM,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;gBAC/E,MAAM,SAAS,GACb,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,UAA2C,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1G,MAAM,IAAI,mCAAe,CACvB,OAAO,EACP,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EACnC,SAAS,CACV,CAAC;YACJ,CAAC;YAED,wCAAwC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,SAAiB;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,IAAI,CAAC,EAAY,CAAC;IAC3B,CAAC;IAEO,UAAU,CAAC,IAAa;QAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAEO,SAAS,CAAC,KAAc;QAC9B,OAAO,IAAA,2BAAkB,EAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,6EAA6E;IACrE,YAAY,CAClB,IAAY,EACZ,MAAyF,EACzF,OAAyC;QAExC,IAAI,CAAC,MAA4D,CAAC,YAAY,CAC7E,IAAI,EACJ,MAAM,EACN,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,aAAqB,EACrB,IAAkC,EAClC,SAAiB;QAEjB,IAAI,CAAC,IAAA,6BAAiB,GAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAC1C,0BAA0B,EAC1B,EAAE,EACF,SAAS,CACV,CAAwB,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAA,6BAAiB,EAAC,aAAa,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,IAAA,2BAAe,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAA,0BAAiB,EAAC,aAAa,CAAC,CAAC;QAEjC,MAAM,IAAI,CAAC,cAAc,CACvB,2BAA2B,EAC3B;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;SACzD,EACD,SAAS,CACV,CAAC;QAEF,OAAO;YACL,KAAK;YACL,oBAAoB,EAAE,IAAA,2BAAe,EAAC,KAAK,CAAC;YAC5C,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,SAAiB;QAClC,IAAA,2BAAgB,EAAC;YACf,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;YACjF,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;YAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,QAAQ;YACjE,qBAAqB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC;YAClE,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC;YACrE,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YACpD,cAAc,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC;YACxF,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;YACxD,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzD,mBAAmB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACzD,mBAAmB,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAC3C,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,CAAC;YAC1D,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC;IAGO,cAAc,CAAC,SAAiB;QACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,EAAE,iCAAiC,EAAE;YAC5E,WAAW,EAAE,iEAAiE;YAC9E,QAAQ,EAAE,YAAY;SACvB,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBACzE,MAAM,OAAO,GAAG,IAAA,0BAAiB,EAAC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAA,uBAAc,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;gBAElF,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,iCAAiC;4BACtC,QAAQ,EAAE,YAAY;4BACtB,IAAI,EAAE,OAAO;yBACd,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,iCAAiC;4BACtC,QAAQ,EAAE,YAAY;4BACtB,IAAI,EAAE,IAAA,0BAAiB,EAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;yBACxE,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,EAAE,kCAAkC,EAAE;YAC9E,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,kBAAkB;SAC7B,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBACzE,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;gBAEtC,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,kCAAkC;4BACvC,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;yBACxC,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,kCAAkC;4BACvC,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sCAAsC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBACxF,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,mCAAmC,EAAE;YAChF,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,kBAAkB;SAC7B,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBACzE,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC;gBAEtC,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,mCAAmC;4BACxC,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;yBACxC,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,mCAAmC;4BACxC,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sCAAsC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBACxF,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,qCAAqC,EAAE;YACpF,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,kBAAkB;SAC7B,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBAEjF,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,qCAAqC;4BAC1C,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC3C,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,qCAAqC;4BAC1C,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yCAAyC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC3F,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,EAAE,sCAAsC,EAAE;YACtF,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,kBAAkB;SAC7B,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBAEjF,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,sCAAsC;4BAC3C,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC3C,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,sCAAsC;4BAC3C,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yCAAyC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC3F,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,EAAE;YAC5D,WAAW,EAAE,gCAAgC;YAC7C,QAAQ,EAAE,kBAAkB;SAC7B,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBAEzE,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,yBAAyB;4BAC9B,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;yBACpC,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,yBAAyB;4BAC9B,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,6BAA6B,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC/E,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,EAAE;YAC9D,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,kBAAkB;SAC7B,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBAEzE,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,0BAA0B;4BAC/B,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;yBACpC,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,0BAA0B;4BAC/B,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,6BAA6B,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC/E,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE;YAClD,WAAW,EAAE,6BAA6B;YAC1C,QAAQ,EAAE,kBAAkB;SAC7B,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;gBAErE,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,oBAAoB;4BACzB,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;yBACrC,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,QAAQ,EAAE,CAAC;4BACT,GAAG,EAAE,oBAAoB;4BACzB,QAAQ,EAAE,kBAAkB;4BAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wBAAwB,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC1E,CAAC;iBACH,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;YAC1D,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;YACzD,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;YAC5D,MAAM,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;YACtD,GAAG,CAAC,IAAI,CAAC;gBACP,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,uBAAuB;gBAChC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;YACpE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,SAAS,CAAC,CAAC;gBAC1D,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC5C,GAAG,CAAC,IAAI,CAAC;oBACP,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,aAAa;oBACtB,SAAS,EAAE,QAAQ,CAAC,EAAE;iBACvB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC;oBACP,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,aAAa;oBACtB,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CAAC,GAAY;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,SAAiB;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,sCAAsC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9F,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,QAAQ,CAA6B,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,SAAS,EAAE;YAC/C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,MAAM;YACN,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,IAAI;SACL,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAEO,iBAAiB,CAAC,GAAa;QACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE;YAClD,EAAE,EAAE,IAAI;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,GAAY;QAClE,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3D,+EAA+E;QAC/E,kFAAkF;QAClF,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAChF,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,aAAa,GACjB,uBAAuB,CAAC,GAAG,CAAC;gBAC5B,QAAQ,CAAC,aAAa;gBACtB,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC;YAC1D,IAAI,aAAa,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,uCAAuC,EAAE;YACtF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAC3E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM;gBACN,YAAY,EAAE,SAAS;aACxB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CASlC,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,qBAAqB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,aAAa,GACjB,uBAAuB,CAAC,GAAG,CAAC;YAC5B,QAAQ,CAAC,aAAa;YACtB,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC;QAE1D,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,EAAE;YAC9C,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YACrC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,aAAa;YACb,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,SAAiB,EAAE,IAAa;QACrE,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,0CAA0C,EAAE;oBACxE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;oBAC3E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;iBAClD,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,GAAY,EAAE,GAAa;QAC/E,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,GAAG,CAAC;QAEzE,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CACV,kEAAkE,EAClE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;gBACF,IAAI,CAAC,qBAAqB,CACxB,GAAG,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAC/D,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,qBAAqB,CAAC,GAAa,EAAE,OAAe;QAC1D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,wBAAwB,OAAO,EAAE,EAAE;YACnE,EAAE,EAAE,IAAI;SACT,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAY,EAAE,GAAa;QACrD,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAElF,IAAI,QAAQ,IAAI,eAAe,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;gBAClE,OAAO;YACT,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACvC,MAAM,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,MAAM,MAAM,GACV,IAAI;YACJ,OAAO,IAAI,KAAK,QAAQ;YACxB,CAAC,IAAA,8BAAmB,EAAC,IAAI,CAAC;gBACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,8BAAmB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE;gBAC7E,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,GAAG,CAAC;QACzE,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,kDAAkD;QAClD,MAAM,SAAS,GAAG,IAAA,wBAAU,GAAE,CAAC;QAC/B,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;gBACF,IAAI,CAAC,qBAAqB,CACxB,GAAG,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAC/D,CAAC;gBACF,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,YAAoC,CAAC;QAEzC,MAAM,SAAS,GAAG,IAAI,iDAA6B,CAAC;YAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,SAAS;YACnC,kBAAkB,EAAE,IAAI;YACxB,oBAAoB,EAAE,CAAC,oBAAoB,EAAE,EAAE;gBAC7C,YAAY,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;YACxD,CAAC;SACF,CAAC,CAAC;QAEH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;YACvB,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC;YAC5C,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACtC,2EAA2E;gBAC3E,4DAA4D;gBAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;oBACpE,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;oBAClD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;oBAC5C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;oBAC3C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBAC/C,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CACV,iFAAiF,EACjF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE;oBACzD,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC;YACL,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,SAAS,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACxB,KAAK,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,GAAY,EAAE,GAAa;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CACT,6CAA6C,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAChG,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAEtD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;oBAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;oBACrC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC/E,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC3B,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;oBACtE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBACnC,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;oBACvF,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;oBACjF,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;oBAC1E,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;oBAChE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;oBACvC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;oBACtF,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;oBACnF,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC;oBACrE,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;oBACzE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;oBAClF,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;oBAChF,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC/B,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjD,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACtB,4EAA4E;YAC5E,iFAAiF;YACjF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAEtD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;wBACzB,IAAI,KAAK,EAAE,CAAC;4BACV,MAAM,CAAC,KAAK,CAAC,CAAC;4BACd,OAAO;wBACT,CAAC;wBACD,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;;AAl7BH,gDAm7BC"}