@getmarrow/mcp 3.9.81 → 3.9.83

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.
@@ -39,10 +39,21 @@ const INTERVENTION_DISPOSITIONS = new Set(['followed', 'ignored', 'overridden'])
39
39
  const LIFECYCLE_SOURCES = new Set(['client_self_reported']);
40
40
  const MAX_EVENTS = 1000;
41
41
  const MAX_RECORD_BYTES = 4096;
42
+ // Maximum parsed metadata is 227 bytes: bounded attempts/status, two canonical
43
+ // ISO dates (at most 27 bytes each), enums and one boolean. Keep event admission
44
+ // independent of this local-only envelope so legacy near-limit rows can retry.
45
+ const MAX_DELIVERY_METADATA_BYTES = 256;
46
+ const DELIVERY_METADATA_FIELDS = ['attempts', 'delivery_state', 'last_status',
47
+ 'last_attempt_at', 'next_attempt_at', 'retry_reason', 'retry_blocked'];
42
48
  const MAX_SPOOL_BYTES = 2 * 1024 * 1024;
43
49
  const MAX_NAMESPACE_FILES = 128;
44
50
  const MAX_NAMESPACE_DIRECTORY_ENTRIES = 1024;
45
- const MAX_ATTEMPTS = 3;
51
+ const MAX_ATTEMPTS = 1_000_000;
52
+ const RETRY_BASE_MS = 1_000;
53
+ const RETRY_MAX_MS = 60_000;
54
+ const MAX_SERVER_RETRY_MS = 7 * 24 * 60 * 60 * 1_000;
55
+ const RETRY_REASONS = new Set(['network_error', 'ack_timeout', 'transient_http', 'rate_limited',
56
+ 'authentication_rejected', 'schema_rejected', 'permanent_http', 'retry_after_invalid']);
46
57
  const PASSIVE_DELIVERY_REQUEST_TIMEOUT_MS = 750;
47
58
  const DRAIN_REQUEST_TIMEOUT_MS = 4_000;
48
59
  const DELIVERY_DRAIN_BUDGET_MS = 30_000;
@@ -203,6 +214,19 @@ function withLock(path, ownsParent, operation) {
203
214
  catch { /* lock already removed */ }
204
215
  }
205
216
  }
217
+ function eventPayload(stored) {
218
+ const payload = { ...stored };
219
+ for (const field of DELIVERY_METADATA_FIELDS)
220
+ delete payload[field];
221
+ return payload;
222
+ }
223
+ function reservedSpoolBytes(events) {
224
+ // The ARRAY already contains payload braces and separators. Merging a metadata
225
+ // object into each nonempty payload replaces its closing brace with a comma
226
+ // and metadata interior: metadata JSON length minus one additional byte.
227
+ return Buffer.byteLength(JSON.stringify(events.map(eventPayload)), 'utf8')
228
+ + events.length * (MAX_DELIVERY_METADATA_BYTES - 1);
229
+ }
206
230
  function validateStoredEvent(value) {
207
231
  if (!value || typeof value !== 'object' || Array.isArray(value))
208
232
  throw new Error('invalid lifecycle spool record');
@@ -219,6 +243,13 @@ function validateStoredEvent(value) {
219
243
  throw new Error('invalid lifecycle source');
220
244
  if (event.action_changed != null && typeof event.action_changed !== 'boolean')
221
245
  throw new Error('invalid lifecycle action_changed');
246
+ if (event.last_status != null && (!Number.isInteger(event.last_status)
247
+ || Number(event.last_status) < 0 || Number(event.last_status) > 599))
248
+ throw new Error('invalid lifecycle last_status');
249
+ if (event.retry_reason != null && !RETRY_REASONS.has(event.retry_reason))
250
+ throw new Error('invalid lifecycle retry_reason');
251
+ if (event.retry_blocked != null && typeof event.retry_blocked !== 'boolean')
252
+ throw new Error('invalid lifecycle retry_blocked');
222
253
  const surfaces = surfaceList(event.surfaces);
223
254
  const stored = {
224
255
  event_id: safeId(event.event_id) || (() => { throw new Error('invalid lifecycle event_id'); })(),
@@ -242,10 +273,19 @@ function validateStoredEvent(value) {
242
273
  attempts: Number.isInteger(event.attempts) && Number(event.attempts) >= 0 ? Math.min(Number(event.attempts), MAX_ATTEMPTS) : 0,
243
274
  delivery_state: event.delivery_state === 'dead_letter' ? 'dead_letter' : 'queued',
244
275
  ...(Number.isInteger(event.last_status) ? { last_status: Number(event.last_status) } : {}),
276
+ ...(event.last_attempt_at != null ? { last_attempt_at: canonicalTimestamp(event.last_attempt_at) } : {}),
277
+ ...(event.next_attempt_at != null ? { next_attempt_at: canonicalTimestamp(event.next_attempt_at) } : {}),
278
+ ...(RETRY_REASONS.has(event.retry_reason) ? { retry_reason: event.retry_reason } : {}),
279
+ ...(event.retry_blocked === true ? { retry_blocked: true } : {}),
245
280
  };
246
- if (Buffer.byteLength(JSON.stringify(stored), 'utf8') > MAX_RECORD_BYTES) {
281
+ if (Buffer.byteLength(JSON.stringify(eventPayload(stored)), 'utf8') > MAX_RECORD_BYTES) {
247
282
  throw new Error('lifecycle spool record exceeds byte limit');
248
283
  }
284
+ const metadata = Object.fromEntries(DELIVERY_METADATA_FIELDS
285
+ .filter((field) => stored[field] !== undefined).map((field) => [field, stored[field]]));
286
+ if (Buffer.byteLength(JSON.stringify(metadata), 'utf8') > MAX_DELIVERY_METADATA_BYTES) {
287
+ throw new Error('lifecycle delivery metadata exceeds byte limit');
288
+ }
249
289
  return stored;
250
290
  }
251
291
  function compact(input) {
@@ -352,12 +392,29 @@ function snapshot(path, ownsParent) {
352
392
  return withLock(path, ownsParent, () => readUnlocked(path));
353
393
  }
354
394
  function retryable(status) {
355
- return status === 0 || [408, 425, 429, 500, 502, 503, 504].includes(status);
395
+ return status === 0 || [408, 425, 429].includes(status) || (status >= 500 && status <= 599);
396
+ }
397
+ function retryAfter(response) {
398
+ const value = response.headers.get('retry-after');
399
+ if (value == null)
400
+ return {};
401
+ const trimmed = value.trim();
402
+ const milliseconds = /^\d+$/.test(trimmed)
403
+ ? Number(trimmed) * 1_000
404
+ : /^[A-Za-z]{3}, /.test(trimmed) ? Date.parse(trimmed) - Date.now() : NaN;
405
+ // Never turn an invalid or excessive server minimum into an earlier retry.
406
+ if (!Number.isFinite(milliseconds) || milliseconds > MAX_SERVER_RETRY_MS)
407
+ return { retryBlocked: true };
408
+ return { retryAfterMs: Math.max(0, milliseconds) };
409
+ }
410
+ function dueAt(event) {
411
+ return event.retry_blocked ? Infinity : event.next_attempt_at ? Date.parse(event.next_attempt_at) : 0;
356
412
  }
357
413
  async function deliver(baseUrl, apiKey, queued, timeoutMs) {
358
414
  const controller = new AbortController();
359
415
  let timeout;
360
- const wireEvent = { ...queued };
416
+ let timedOut = false;
417
+ const wireEvent = eventPayload(queued);
361
418
  if (queued.agent_id === 'unknown')
362
419
  delete wireEvent.agent_id;
363
420
  try {
@@ -376,12 +433,24 @@ async function deliver(baseUrl, apiKey, queued, timeoutMs) {
376
433
  }),
377
434
  new Promise((_resolve, reject) => {
378
435
  timeout = setTimeout(() => {
436
+ timedOut = true;
379
437
  controller.abort();
380
438
  reject(new Error('lifecycle delivery timeout'));
381
439
  }, timeoutMs);
382
440
  }),
383
441
  ]);
384
- return response.status;
442
+ const status = response.status;
443
+ if (status >= 200 && status < 300)
444
+ return { status };
445
+ const guidance = retryable(status) ? retryAfter(response) : {};
446
+ return { status, ...guidance, reason: guidance.retryBlocked ? 'retry_after_invalid'
447
+ : status === 401 || status === 403 ? 'authentication_rejected'
448
+ : status === 400 || status === 422 ? 'schema_rejected'
449
+ : status === 429 ? 'rate_limited'
450
+ : retryable(status) ? 'transient_http' : 'permanent_http' };
451
+ }
452
+ catch {
453
+ return { status: 0, reason: timedOut ? 'ack_timeout' : 'network_error' };
385
454
  }
386
455
  finally {
387
456
  if (timeout)
@@ -521,8 +590,16 @@ function lifecycleSpoolStatus(input) {
521
590
  const failureStatuses = failed.map((event) => event.last_status).filter((status) => status != null);
522
591
  const authFailure = failureStatuses.some((status) => status === 401 || status === 403);
523
592
  const transportFailure = failureStatuses.some((status) => status === 0 || status === 408 || status >= 500);
593
+ const now = Date.now();
594
+ const retryBlocked = queued.filter((event) => event.retry_blocked).length;
595
+ const capacityBlocked = reservedSpoolBytes(current.events) > MAX_SPOOL_BYTES ? current.events.length : 0;
596
+ const retryReasons = {};
597
+ for (const event of current.events) {
598
+ if (event.retry_reason)
599
+ retryReasons[event.retry_reason] = (retryReasons[event.retry_reason] || 0) + 1;
600
+ }
524
601
  return {
525
- state: failed.length > 0 ? 'attention_required' : queued.length > 0 ? 'pending' : 'clear',
602
+ state: failed.length > 0 || retryBlocked > 0 || capacityBlocked > 0 ? 'attention_required' : queued.length > 0 ? 'pending' : 'clear',
526
603
  pending: queued.length,
527
604
  failed: failed.length,
528
605
  oldest_pending_at: queued.map((event) => event.occurred_at).sort()[0] || null,
@@ -530,26 +607,36 @@ function lifecycleSpoolStatus(input) {
530
607
  capacity: MAX_EVENTS,
531
608
  available: Math.max(0, MAX_EVENTS - current.events.length),
532
609
  recovered_corruption: current.recoveredCorruption,
533
- exact_fix: failed.length > 0
534
- ? authFailure
535
- ? 'The server rejected delivery authentication or authorization. Restore the credential and agent binding, then run npx -y --package=@getmarrow/mcp@latest marrow-mcp drain-spool.'
536
- : transportFailure
537
- ? 'Lifecycle delivery timed out or the service was unavailable. Keep the credential unchanged, verify reachability, then run npx -y --package=@getmarrow/mcp@latest marrow-mcp drain-spool.'
538
- : 'Inspect the lifecycle event compatibility error, then run npx -y --package=@getmarrow/mcp@latest marrow-mcp drain-spool.'
539
- : queued.length > 0
540
- ? 'Keep MCP activity running so a later event can retry, or run npx -y --package=@getmarrow/mcp@latest marrow-mcp drain-spool.'
541
- : null,
610
+ retry: {
611
+ due: queued.filter((event) => dueAt(event) <= now).length,
612
+ scheduled: queued.filter((event) => Number.isFinite(dueAt(event)) && dueAt(event) > now).length,
613
+ blocked: retryBlocked,
614
+ capacity_blocked: capacityBlocked,
615
+ next_attempt_at: queued.filter((event) => !event.retry_blocked && event.next_attempt_at)
616
+ .map((event) => event.next_attempt_at).sort()[0] || null,
617
+ reasons: retryReasons,
618
+ },
619
+ exact_fix: capacityBlocked > 0
620
+ ? 'The legacy spool has insufficient reserved space for durable retry metadata. No delivery will start. Preserve every record and the original credential/agent binding; arrange an explicitly reviewed capacity repair before draining. Do not delete queued evidence.'
621
+ : retryBlocked > 0
622
+ ? 'The server Retry-After value could not be safely scheduled. Preserve the queued event and original credential/agent binding; inspect server retry guidance before an explicitly approved repair. Automatic delivery will not retry early.'
623
+ : failed.length > 0
624
+ ? authFailure
625
+ ? 'The server rejected delivery authentication or authorization. Restore the credential and agent binding, then run npx -y --package=@getmarrow/mcp@latest marrow-mcp drain-spool.'
626
+ : transportFailure
627
+ ? 'Lifecycle delivery timed out or the service was unavailable. Keep the credential unchanged, verify reachability, then run npx -y --package=@getmarrow/mcp@latest marrow-mcp drain-spool.'
628
+ : 'Inspect the lifecycle event compatibility error, then run npx -y --package=@getmarrow/mcp@latest marrow-mcp drain-spool.'
629
+ : queued.length > 0
630
+ ? 'Transient delivery remains queued with a persisted retry schedule. A bounded background owner or later MCP activity/restart retries when due; no delivery is promised while the host is stopped. An explicit drain also respects the schedule.'
631
+ : null,
542
632
  other_namespaces: otherNamespaces,
543
633
  };
544
634
  }
545
635
  async function attemptQueuedDelivery(input) {
546
- let status = 0;
547
- try {
548
- status = await deliver(input.baseUrl, input.apiKey, input.event, input.timeoutMs);
549
- }
550
- catch {
551
- status = 0;
552
- }
636
+ if (reservedSpoolBytes(snapshot(input.path, input.ownsParent).events) > MAX_SPOOL_BYTES)
637
+ return -1;
638
+ const result = await deliver(input.baseUrl, input.apiKey, input.event, input.timeoutMs);
639
+ const { status } = result;
553
640
  mutate(input.path, input.ownsParent, (events) => {
554
641
  const current = events.find((row) => row.event_id === input.event.event_id);
555
642
  if (!current || current.delivery_state !== 'queued')
@@ -558,11 +645,25 @@ async function attemptQueuedDelivery(input) {
558
645
  events.splice(events.indexOf(current), 1);
559
646
  return;
560
647
  }
561
- current.attempts += 1;
648
+ current.attempts = Math.min(MAX_ATTEMPTS, current.attempts + 1);
562
649
  current.last_status = status;
563
- if (!retryable(status) || current.attempts >= MAX_ATTEMPTS) {
650
+ current.last_attempt_at = new Date().toISOString();
651
+ // Concurrent owners may finish out of order. Merge against the locked
652
+ // persisted row so a later failure cannot shorten a server minimum or
653
+ // clear guidance that requires explicit recovery.
654
+ if (!current.retry_blocked)
655
+ current.retry_reason = result.reason;
656
+ if (!retryable(status)) {
564
657
  current.delivery_state = 'dead_letter';
565
658
  }
659
+ else if (result.retryBlocked || current.retry_blocked) {
660
+ current.retry_blocked = true;
661
+ }
662
+ else {
663
+ const backoffMs = Math.min(RETRY_MAX_MS, RETRY_BASE_MS * 2 ** Math.min(current.attempts - 1, 16));
664
+ const existingMinimum = current.next_attempt_at ? Date.parse(current.next_attempt_at) : 0;
665
+ current.next_attempt_at = new Date(Math.max(existingMinimum, Date.now() + Math.max(backoffMs, result.retryAfterMs || 0))).toISOString();
666
+ }
566
667
  });
567
668
  return status;
568
669
  }
@@ -640,6 +741,7 @@ function nudgeLifecycleSpool(input) {
640
741
  budgetMs: NUDGE_DRAIN_BUDGET_MS,
641
742
  requestTimeoutMs: PASSIVE_DELIVERY_REQUEST_TIMEOUT_MS,
642
743
  retryDeadLetters: false,
744
+ retryWithinBudget: true,
643
745
  })
644
746
  .then(() => undefined)
645
747
  .catch(() => undefined)
@@ -649,20 +751,25 @@ function nudgeLifecycleSpool(input) {
649
751
  }
650
752
  async function drainLifecycleSpool(input) {
651
753
  const location = spoolPath(input.apiKey, input.agentId);
754
+ if (reservedSpoolBytes(snapshot(location.path, location.ownsParent).events) > MAX_SPOOL_BYTES) {
755
+ return lifecycleSpoolStatus({ apiKey: input.apiKey, agentId: input.agentId });
756
+ }
652
757
  const retryDeadLetters = input.retryDeadLetters !== false;
653
758
  const maxEvents = Number.isInteger(input.maxEvents)
654
759
  ? Math.max(1, Math.min(MAX_EVENTS, Number(input.maxEvents)))
655
760
  : retryDeadLetters ? MAX_EVENTS : NUDGE_MAX_EVENTS;
656
761
  const budgetMs = Number.isInteger(input.budgetMs)
657
- ? Math.max(1, Number(input.budgetMs))
762
+ ? Math.max(1, Math.min(DELIVERY_DRAIN_BUDGET_MS, Number(input.budgetMs)))
658
763
  : retryDeadLetters ? DELIVERY_DRAIN_BUDGET_MS : NUDGE_DRAIN_BUDGET_MS;
659
764
  const requestTimeoutMs = Number.isInteger(input.requestTimeoutMs)
660
- ? Math.max(1, Number(input.requestTimeoutMs))
765
+ ? Math.max(1, Math.min(DRAIN_REQUEST_TIMEOUT_MS, Number(input.requestTimeoutMs)))
661
766
  : DRAIN_REQUEST_TIMEOUT_MS;
662
767
  const deliveryDeadline = Date.now() + budgetMs;
663
768
  const attempted = new Set();
664
- for (let delivered = 0; delivered < maxEvents; delivered += 1) {
665
- let queued = snapshot(location.path, location.ownsParent).events.find((row) => (row.delivery_state === 'queued' && !attempted.has(row.event_id)));
769
+ let delivered = 0;
770
+ while (delivered < maxEvents && Date.now() < deliveryDeadline) {
771
+ const candidates = snapshot(location.path, location.ownsParent).events.filter((row) => (row.delivery_state === 'queued' && (input.retryWithinBudget || !attempted.has(row.event_id))));
772
+ let queued = candidates.find((row) => dueAt(row) <= Date.now());
666
773
  if (!queued && retryDeadLetters) {
667
774
  queued = mutate(location.path, location.ownsParent, (events) => {
668
775
  const failed = events.find((row) => row.delivery_state === 'dead_letter' && !attempted.has(row.event_id));
@@ -671,16 +778,28 @@ async function drainLifecycleSpool(input) {
671
778
  failed.delivery_state = 'queued';
672
779
  failed.attempts = 0;
673
780
  delete failed.last_status;
781
+ delete failed.last_attempt_at;
782
+ delete failed.next_attempt_at;
783
+ delete failed.retry_reason;
784
+ delete failed.retry_blocked;
674
785
  return { ...failed };
675
786
  }).result;
676
787
  }
677
- if (!queued)
678
- break;
788
+ if (!queued) {
789
+ const earliest = Math.min(...candidates.map(dueAt));
790
+ if (!Number.isFinite(earliest) || earliest >= deliveryDeadline)
791
+ break;
792
+ const waitMs = earliest - Date.now();
793
+ if (waitMs > 0)
794
+ await new Promise((resolve) => setTimeout(resolve, waitMs));
795
+ continue;
796
+ }
679
797
  attempted.add(queued.event_id);
680
798
  const remainingMs = Math.min(requestTimeoutMs, deliveryDeadline - Date.now());
681
799
  if (remainingMs <= 0)
682
800
  break;
683
- await attemptQueuedDelivery({
801
+ delivered += 1;
802
+ const deliveredStatus = await attemptQueuedDelivery({
684
803
  path: location.path,
685
804
  ownsParent: location.ownsParent,
686
805
  apiKey: input.apiKey,
@@ -688,16 +807,8 @@ async function drainLifecycleSpool(input) {
688
807
  event: queued,
689
808
  timeoutMs: remainingMs,
690
809
  });
691
- }
692
- if (retryDeadLetters) {
693
- mutate(location.path, location.ownsParent, (events) => {
694
- for (const event of events) {
695
- if (event.delivery_state === 'queued') {
696
- event.delivery_state = 'dead_letter';
697
- event.last_status = event.last_status ?? 0;
698
- }
699
- }
700
- });
810
+ if (deliveredStatus === -1)
811
+ break;
701
812
  }
702
813
  return lifecycleSpoolStatus({ apiKey: input.apiKey, agentId: input.agentId });
703
814
  }
@@ -707,6 +818,9 @@ async function recordLifecycleEvent(input) {
707
818
  const queued = mutate(location.path, location.ownsParent, (events) => {
708
819
  const index = events.findIndex((row) => row.event_id === event.event_id);
709
820
  if (index < 0) {
821
+ if (reservedSpoolBytes([...events, event]) > MAX_SPOOL_BYTES) {
822
+ throw new Error('lifecycle spool capacity insufficient for durable retry metadata; receipt was not accepted');
823
+ }
710
824
  events.push(event);
711
825
  return event;
712
826
  }
@@ -714,7 +828,7 @@ async function recordLifecycleEvent(input) {
714
828
  });
715
829
  let recoveredCorruption = queued.recoveredCorruption;
716
830
  let deliveryStatus = 0;
717
- if (!input.deferDelivery && queued.result.delivery_state === 'queued')
831
+ if (!input.deferDelivery && queued.result.delivery_state === 'queued' && dueAt(queued.result) <= Date.now())
718
832
  deliveryStatus = await attemptQueuedDelivery({
719
833
  path: location.path,
720
834
  ownsParent: location.ownsParent,
@@ -724,7 +838,7 @@ async function recordLifecycleEvent(input) {
724
838
  timeoutMs: PASSIVE_DELIVERY_REQUEST_TIMEOUT_MS,
725
839
  });
726
840
  if (deliveryStatus >= 200 && deliveryStatus < 300) {
727
- const previous = snapshot(location.path, location.ownsParent).events.find((row) => (row.delivery_state === 'queued' && row.event_id !== event.event_id));
841
+ const previous = snapshot(location.path, location.ownsParent).events.find((row) => (row.delivery_state === 'queued' && row.event_id !== event.event_id && dueAt(row) <= Date.now()));
728
842
  if (previous) {
729
843
  try {
730
844
  await attemptQueuedDelivery({
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle-spool.js","sourceRoot":"","sources":["../src/lifecycle-spool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle-spool.js","sourceRoot":"","sources":["../src/lifecycle-spool.ts"],"names":[],"mappings":";;;AA6mBA,oDAiDC;AA2CD,gEAwDC;AAID,kDAoBC;AAED,kDAqEC;AAED,oDAmEC;AAr6BD,6CAAqD;AACrD,qCAiBiB;AACjB,qCAAkC;AAClC,yCAAyE;AACzE,qCAA+C;AAElC,QAAA,qBAAqB,GAAG;IACnC,+BAA+B;IAC/B,kBAAkB;IAClB,cAAc;IACd,oBAAoB;IACpB,qBAAqB;IACrB,gBAAgB;IAChB,aAAa;IACb,mBAAmB;IACnB,gBAAgB;IAChB,6BAA6B;IAC7B,oBAAoB;IACpB,mBAAmB;IACnB,0BAA0B;IAC1B,gBAAgB;IAChB,oBAAoB;IACpB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;CACX,CAAC;AAiCX,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,6BAAqB,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AACvD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAC9E,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACjF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC5D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,MAAM,2BAA2B,GAAG,GAAG,CAAC;AACxC,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,aAAa;IAC3E,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,eAAe,CAAU,CAAC;AAClF,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACxC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAC7C,MAAM,YAAY,GAAG,SAAS,CAAC;AAC/B,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AACrD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAc,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc;IAC1G,yBAAyB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAC1F,MAAM,mCAAmC,GAAG,GAAG,CAAC;AAChD,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AACxC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AACrC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AACrD,MAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAC3D,MAAM,YAAY,GAAG,EAAE,CAAC;AACxB,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,SAAS,MAAM,CAAC,KAAc,EAAE,QAAiB;IAC/C,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,OAAO,UAAU,IAAI,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrF,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,KAAa;IAC/C,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,IAAI,GAAG,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,IAAI,uBAAuB,CAAC,CAAC;SACvE,OAAO,CAAC,qDAAqD,EAAE,kBAAkB,CAAC;SAClF,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;SAC/C,OAAO,CAAC,oCAAoC,EAAE,kBAAkB,CAAC;SACjE,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC;SACtC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC;IACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IACxF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,GAAG,QAAoB,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,SAAS,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,OAAgB;IACjD,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC;QACxC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC1E,CAAC;IACD,MAAM,SAAS,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9G,OAAO,EAAE,IAAI,EAAE,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,SAAS,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAClG,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxE,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,KAAa;IACjD,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO;IAC9B,MAAM,IAAI,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,yBAAyB,CAAC,CAAC;IAC1G,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,oCAAoC,CAAC,CAAC;IAC9G,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,uCAAuC,CAAC,CAAC;AAC5G,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,UAAmB;IACrD,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAA,iBAAK,EAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClF,OAAO,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,IAAA,mBAAS,EAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAC;QACrC,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAA,sBAAY,EAAC,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,mBAAS,EAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACrH,IAAA,mBAAS,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,QAAQ,CAAI,IAAY,EAAE,UAAmB,EAAE,SAAkB;IACxE,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC;IAChC,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,aAAa,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,UAAU,GAAG,IAAA,kBAAQ,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,IAAI,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAC;YACnC,IAAI,CAAC;gBACH,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBACvC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,kBAAQ,EAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,aAAa;oBAAE,IAAA,oBAAU,EAAC,QAAQ,CAAC,CAAC;YACpF,CAAC;YAAC,OAAO,eAAe,EAAE,CAAC;gBACzB,MAAM,cAAc,GAAG,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,MAAM,IAAI,eAAe;oBACxG,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC9B,CAAC,CAAC,EAAE,CAAC;gBACP,IAAI,cAAc,KAAK,QAAQ;oBAAE,MAAM,eAAe,CAAC;YACzD,CAAC;YACD,KAAK,CAAC,YAAY,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IACD,IAAI,UAAU,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACxE,IAAI,CAAC;QACH,OAAO,SAAS,EAAE,CAAC;IACrB,CAAC;YAAS,CAAC;QACT,IAAA,mBAAS,EAAC,UAAU,CAAC,CAAC;QACtB,IAAI,CAAC;YAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAmB;IACvC,MAAM,OAAO,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IACvD,KAAK,MAAM,KAAK,IAAI,wBAAwB;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAqB;IAC/C,+EAA+E;IAC/E,4EAA4E;IAC5E,yEAAyE;IACzE,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC;UACtE,MAAM,CAAC,MAAM,GAAG,CAAC,2BAA2B,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACnH,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChG,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5H,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACxI,IAAI,KAAK,CAAC,wBAAwB,IAAI,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACpL,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACtH,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACnI,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;WACjE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACzH,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,YAA2B,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC3I,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChI,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAgB;QAC1B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAChG,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAuB;QAC1D,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,QAAQ;QACpD,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,SAAS;QACxD,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,MAAM,EAAE,sBAAsB;QAC9B,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAA+C,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7J,GAAG,CAAC,OAAO,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAiC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAoC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,WAAW,EAAE,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;QAClD,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9H,cAAc,EAAE,KAAK,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ;QACjF,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,YAA2B,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,YAA2B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpH,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;IACF,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,wBAAwB;SACzD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,GAAG,2BAA2B,EAAE,CAAC;QACtF,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,KAAqB;IACpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACpF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAChG,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACpH,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChI,IAAI,KAAK,CAAC,wBAAwB,IAAI,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5K,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9G,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACnI,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAA,wBAAU,GAAE,CAAC;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,QAAQ,CAAC;IACjE,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,SAAS,CAAC;IACpE,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,gBAAgB,CAAC;WACnE,UAAU;WACV,UAAU;WACV,SAAS;WACT,OAAO,CAAC;IACb,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO,mBAAmB,CAAC;QACzB,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,OAAO;QACP,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;QACnC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,cAAc,EAAE,aAAa;QAC7B,MAAM,EAAE,sBAAsB;QAC9B,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvG,GAAG,CAAC,OAAO,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,WAAW,EAAE,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;QAClD,QAAQ,EAAE,CAAC;QACX,cAAc,EAAE,QAAQ;KACzB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;IACzE,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACvE,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC1F,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,GAAG,GAAG,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,IAAI,IAAA,wBAAU,GAAE,EAAE,CAAC;QACnE,IAAA,oBAAU,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,MAAqB;IACxD,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,eAAe,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IACD,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,IAAA,wBAAU,GAAE,MAAM,CAAC;IAC/D,IAAI,CAAC;QACH,IAAA,uBAAa,EAAC,SAAS,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,IAAA,mBAAS,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5B,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnC,IAAA,oBAAU,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAA,mBAAS,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAI,IAAY,EAAE,UAAmB,EAAE,SAAuC;IAC3F,OAAO,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,UAAmB;IACjD,OAAO,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC;AAC9F,CAAC;AAID,SAAS,UAAU,CAAC,QAAkB;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK;QACzB,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5E,2EAA2E;IAC3E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,mBAAmB;QAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IACxG,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,KAAK,CAAC,KAAkB;IAC/B,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,MAAc,EAAE,MAAmB,EAAE,SAAiB;IAC5F,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,OAAkD,CAAC;IACvD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAClC,KAAK,CAAC,GAAG,OAAO,+BAA+B,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,MAAM,EAAE;oBACjC,cAAc,EAAE,kBAAkB;oBAClC,iBAAiB,EAAE,KAAK;oBACxB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1E,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnF;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gBAC/B,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC;YACF,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACtC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxB,QAAQ,GAAG,IAAI,CAAC;oBAChB,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBAClD,CAAC,EAAE,SAAS,CAAC,CAAC;YAChB,CAAC,CAAC;SACH,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB;gBACjF,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,yBAAyB;oBAC9D,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,iBAAiB;wBACtD,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc;4BACjC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAC3E,CAAC;YAAS,CAAC;QACT,IAAI,OAAO;YAAE,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAwCD,SAAS,yBAAyB;IAChC,OAAO;QACL,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,CAAC;QACR,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,mBAAmB;QAC/B,yBAAyB,EAAE,CAAC;QAC5B,qBAAqB,EAAE,+BAA+B;QACtD,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,kBAAkB,EAAE,IAAI;QACxB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,KAAK;QAChB,wBAAwB,EAAE,KAAK;QAC/B,SAAS,EAAE,IAAI;QACf,oBAAoB,EAAE,IAAI;QAC1B,sBAAsB,EAAE,IAAI;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,IAAI,GAAG,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,IAAA,kBAAQ,EAAC,IAAI,EAAE,mBAAS,CAAC,QAAQ,GAAG,mBAAS,CAAC,UAAU,GAAG,mBAAS,CAAC,UAAU,CAAC,CAAC;IACpG,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,UAAU,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAClH,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC9G,IAAI,MAAM,CAAC,IAAI,GAAG,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACrG,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;YAAS,CAAC;QACT,IAAA,mBAAS,EAAC,UAAU,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB,EAAE,UAAmB;IACpE,IAAI,CAAC,UAAU;QAAE,OAAO,yBAAyB,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,IAAA,oBAAU,EAAC,MAAM,CAAC;QAAE,OAAO,yBAAyB,EAAE,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAA,oBAAQ,EAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAChC,IAAI,yBAAyB,GAAG,KAAK,CAAC;IACtC,MAAM,SAAS,GAAG,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QACjC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,uBAAuB,IAAI,+BAA+B,EAAE,CAAC;gBAC/D,yBAAyB,GAAG,IAAI,CAAC;gBACjC,MAAM;YACR,CAAC;YACD,uBAAuB,IAAI,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,KAAK,CAAC,MAAM,GAAG,mBAAmB;oBAAE,MAAM;YAChD,CAAC;YACD,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,mBAAmB,IAAI,yBAAyB,CAAC;IAClF,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,IAAI,KAAK,CAAC,cAAc,KAAK,aAAa;oBAAE,MAAM,IAAI,CAAC,CAAC;;oBACnD,OAAO,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,IAAI,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,SAAS,CAAC;IAC3E,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO;QACjD,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,WAAW,EAAE,CAAC,SAAS;QACvB,OAAO,EAAE,cAAc,CAAC,MAAM;QAC9B,UAAU,EAAE,mBAAmB;QAC/B,yBAAyB,EAAE,uBAAuB;QAClD,qBAAqB,EAAE,+BAA+B;QACtD,OAAO;QACP,MAAM;QACN,kBAAkB,EAAE,CAAC,SAAS,IAAI,UAAU,KAAK,CAAC;QAClD,UAAU;QACV,SAAS;QACT,wBAAwB,EAAE,KAAK;QAC/B,SAAS,EAAE,SAAS;YAClB,CAAC,CAAC,SAAS;gBACT,CAAC,CAAC,kVAAkV;gBACpV,CAAC,CAAC,4NAA4N;YAChO,CAAC,CAAC,IAAI;QACR,oBAAoB,EAAE,SAAS;YAC7B,CAAC,CAAC,sTAAsT;YACxT,CAAC,CAAC,IAAI;QACR,sBAAsB,EAAE,SAAS;YAC/B,CAAC,CAAC,kVAAkV;YACpV,CAAC,CAAC,IAAI;KACT,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAA2C;IAC9E,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC;IACxF,MAAM,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IACtH,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC;IACvF,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,YAAY,GAAyC,EAAE,CAAC;IAC9D,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,YAAY;YAAE,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACzG,CAAC;IACD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QACpI,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QAC7E,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QAC5E,QAAQ,EAAE,UAAU;QACpB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1D,oBAAoB,EAAE,OAAO,CAAC,mBAAmB;QACjD,KAAK,EAAE;YACL,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM;YACzD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM;YAC/F,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,eAAe;YACjC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,eAAe,CAAC;iBACrF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;YAC3D,OAAO,EAAE,YAAY;SACtB;QACD,SAAS,EAAE,eAAe,GAAG,CAAC;YAC5B,CAAC,CAAC,sQAAsQ;YACxQ,CAAC,CAAC,YAAY,GAAG,CAAC;gBAClB,CAAC,CAAC,2OAA2O;gBAC7O,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;oBACnB,CAAC,CAAC,WAAW;wBACX,CAAC,CAAC,iLAAiL;wBACnL,CAAC,CAAC,gBAAgB;4BAClB,CAAC,CAAC,0LAA0L;4BAC5L,CAAC,CAAC,0HAA0H;oBAC9H,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;wBACjB,CAAC,CAAC,gPAAgP;wBAClP,CAAC,CAAC,IAAI;QACV,gBAAgB,EAAE,eAAe;KAClC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,KAOpC;IACC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe;QAAE,OAAO,CAAC,CAAC,CAAC;IACnG,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACxF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,QAAQ;YAAE,OAAO;QAC5D,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,sEAAsE;QACtE,sEAAsE;QACtE,kDAAkD;QAClD,IAAI,CAAC,OAAO,CAAC,aAAa;YAAE,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC;QACzC,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxD,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClG,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,eAAe,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CACzC,eAAe,EACf,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAC3D,CAAC,CAAC,WAAW,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAA2C;IAIpF,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,CAAC,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,IAAA,oBAAU,EAAC,MAAM,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAChE,MAAM,WAAW,GAAG,IAAA,oBAAQ,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAAA,qBAAW,EAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,IAAI,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QACjC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,CAAC,MAAM,IAAI,mBAAmB,IAAI,aAAa,CAAC,MAAM,IAAI,mBAAmB;gBAAE,MAAM;YAC9F,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,WAAW,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtF,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC7F,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjD,YAAY,CAAC,IAAA,gBAAI,EAAC,aAAa,EAAE,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAC;IAChE,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACvC,IAAI,IAAA,oBAAU,EAAC,WAAW,CAAC;gBAAE,SAAS;YACtC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;gBAC1B,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;gBACvC,IAAA,oBAAU,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAChC,IAAA,mBAAS,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;YAC9B,WAAW,CAAC,GAAG,WAAW,OAAO,CAAC,CAAC;YACnC,KAAK,IAAI,CAAC,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;YACrF,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,WAAW,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAAE,SAAS;QAC7E,WAAW,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAClE,CAAC;AAED,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,SAAgB,mBAAmB,CAAC,KAInC;IACC,IAAI,aAAa;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5C,aAAa,GAAG,IAAI,CAAC;IACrB,OAAO,mBAAmB,CAAC;QACzB,GAAG,KAAK;QACR,SAAS,EAAE,gBAAgB;QAC3B,QAAQ,EAAE,qBAAqB;QAC/B,gBAAgB,EAAE,mCAAmC;QACrD,gBAAgB,EAAE,KAAK;QACvB,iBAAiB,EAAE,IAAI;KACxB,CAAC;SACC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACrB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACtB,OAAO,CAAC,GAAG,EAAE;QACZ,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,KAUzC;IACC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe,EAAE,CAAC;QAC9F,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACxE,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC/D,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,wBAAwB,CAAC;IAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,OAAO,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACrF,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAC7F,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,IAAI,gBAAgB,EAAE,CAAC;YAChC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,aAAa,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1G,IAAI,CAAC,MAAM;oBAAE,OAAO,SAAS,CAAC;gBAC9B,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC;gBACjC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACpB,OAAO,MAAM,CAAC,WAAW,CAAC;gBAC1B,OAAO,MAAM,CAAC,eAAe,CAAC;gBAC9B,OAAO,MAAM,CAAC,eAAe,CAAC;gBAC9B,OAAO,MAAM,CAAC,YAAY,CAAC;gBAC3B,OAAO,MAAM,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC,MAAM,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,gBAAgB;gBAAE,MAAM;YACtE,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,IAAI,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAClF,SAAS;QACX,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9E,IAAI,WAAW,IAAI,CAAC;YAAE,MAAM;QAC5B,SAAS,IAAI,CAAC,CAAC;QACf,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC;YAClD,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC;QACH,IAAI,eAAe,KAAK,CAAC,CAAC;YAAE,MAAM;IACpC,CAAC;IACD,OAAO,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,KAK1C;IAQC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;QACnE,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,kBAAkB,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,eAAe,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;YAChH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,IAAI,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAErD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;QAAE,cAAc,GAAG,MAAM,qBAAqB,CAAC;YACxJ,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,SAAS,EAAE,mCAAmC;SAC/C,CAAC,CAAC;IACH,IAAI,cAAc,IAAI,GAAG,IAAI,cAAc,GAAG,GAAG,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjF,GAAG,CAAC,cAAc,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAC/F,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,MAAM,qBAAqB,CAAC;oBAC1B,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,QAAQ;oBACf,SAAS,EAAE,mCAAmC;iBAC/C,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,+FAA+F;YACjG,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC3D,mBAAmB,KAAK,KAAK,CAAC,mBAAmB,CAAC;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5E,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,CAAC,OAAO;QAClB,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,QAAQ;QAC5C,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,aAAa;QACjD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,MAAM;QAC7E,oBAAoB,EAAE,mBAAmB;KAC1C,CAAC;AACJ,CAAC"}
@@ -24,10 +24,17 @@ export declare class MarrowRequestError extends Error {
24
24
  missingFields?: string[];
25
25
  });
26
26
  }
27
+ export declare function responseRetryAfter(response: Response): {
28
+ delayMs: number | null;
29
+ valid: boolean;
30
+ };
27
31
  export declare function requestErrorFromResponse(response: Response, detail?: Record<string, unknown>): MarrowRequestError;
28
32
  export declare function invalidResponseError(): MarrowRequestError;
29
33
  export declare function normalizeRequestError(error: unknown): MarrowRequestError;
30
- export declare function reliableFetch(url: string | URL, init?: RequestInit): Promise<Response>;
34
+ export declare function reliableFetch(url: string | URL, init?: RequestInit, options?: {
35
+ retryOwner?: 'caller';
36
+ timeoutMs?: number;
37
+ }): Promise<Response>;
31
38
  export declare function localClientUpdate(): Record<string, unknown>;
32
39
  export declare function structuredRequestFailure(error: unknown): Record<string, unknown>;
33
40
  //# sourceMappingURL=request-reliability.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-reliability.d.ts","sourceRoot":"","sources":["../src/request-reliability.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,iBAAiB,GACzB,yBAAyB,GACzB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,oBAAoB,GACpB,qBAAqB,GACrB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBAErB,KAAK,EAAE;QACjB,IAAI,EAAE,iBAAiB,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B;CA2BF;AA+BD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAkEjH;AAED,wBAAgB,oBAAoB,IAAI,kBAAkB,CAOzD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAmCxE;AASD,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyDhG;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa3D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BhF"}
1
+ {"version":3,"file":"request-reliability.d.ts","sourceRoot":"","sources":["../src/request-reliability.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,iBAAiB,GACzB,yBAAyB,GACzB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,oBAAoB,GACpB,qBAAqB,GACrB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;gBAErB,KAAK,EAAE;QACjB,IAAI,EAAE,iBAAiB,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B;CA2BF;AAeD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAWjG;AASD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAqEjH;AAED,wBAAgB,oBAAoB,IAAI,kBAAkB,CAOzD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAmCxE;AASD,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,IAAI,GAAE,WAAgB,EACtB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC,QAAQ,CAAC,CA4DnB;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAa3D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BhF"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MarrowRequestError = void 0;
4
+ exports.responseRetryAfter = responseRetryAfter;
4
5
  exports.requestErrorFromResponse = requestErrorFromResponse;
5
6
  exports.invalidResponseError = invalidResponseError;
6
7
  exports.normalizeRequestError = normalizeRequestError;
@@ -71,15 +72,18 @@ function boundedTimeout(url) {
71
72
  return 4_000;
72
73
  return 4_000;
73
74
  }
74
- function retryAfterMs(response) {
75
+ function responseRetryAfter(response) {
75
76
  const raw = response.headers.get('retry-after');
76
- if (!raw)
77
- return null;
78
- const seconds = Number(raw);
79
- if (Number.isFinite(seconds) && seconds >= 0)
80
- return Math.min(60_000, Math.round(seconds * 1_000));
81
- const date = Date.parse(raw);
82
- return Number.isFinite(date) ? Math.min(60_000, Math.max(0, date - Date.now())) : null;
77
+ if (raw === null)
78
+ return { delayMs: null, valid: true };
79
+ const text = raw.trim();
80
+ const seconds = Number(text);
81
+ const numeric = text !== '' && !Number.isNaN(seconds);
82
+ const parsedDate = numeric ? NaN : Date.parse(text);
83
+ const delayMs = numeric ? Math.ceil(seconds * 1_000) : Math.max(0, parsedDate - Date.now());
84
+ return Number.isSafeInteger(delayMs) && delayMs >= 0
85
+ ? { delayMs, valid: true }
86
+ : { delayMs: null, valid: false };
83
87
  }
84
88
  function exactFixForStatus(status) {
85
89
  if (status === 401)
@@ -92,6 +96,7 @@ function exactFixForStatus(status) {
92
96
  }
93
97
  function requestErrorFromResponse(response, detail) {
94
98
  const status = response.status;
99
+ const retryGuidance = responseRetryAfter(response);
95
100
  const cloudflareEdgeDenial = status === 403 && Boolean(response.headers.get('cf-ray')) && !detail;
96
101
  const errorObject = detail?.error && typeof detail.error === 'object' && !Array.isArray(detail.error)
97
102
  ? detail.error
@@ -147,11 +152,13 @@ function requestErrorFromResponse(response, detail) {
147
152
  backendCode,
148
153
  message: `HTTP ${status}: ${apiMessage}`,
149
154
  status,
150
- retryable: cloudflareEdgeDenial ? false : RETRYABLE_STATUS.has(status),
151
- retryAfterMs: retryAfterMs(response),
155
+ retryable: !cloudflareEdgeDenial && retryGuidance.valid && RETRYABLE_STATUS.has(status),
156
+ retryAfterMs: retryGuidance.delayMs,
152
157
  exactFix: cloudflareEdgeDenial
153
158
  ? 'Marrow was reached, but the Cloudflare edge denied this network client before API authentication. Record the Cloudflare Ray ID, retry from a trusted network, and send the Ray ID to Marrow support; do not rotate the API key.'
154
- : apiFix,
159
+ : !retryGuidance.valid
160
+ ? 'Retry-After could not be interpreted safely. Check service guidance before explicitly retrying the same operation.'
161
+ : apiFix,
155
162
  fixCommand,
156
163
  currentPlan,
157
164
  requiredFeature,
@@ -210,13 +217,15 @@ function safeToRetry(url, init) {
210
217
  const headers = new Headers(init.headers);
211
218
  return headers.has('Idempotency-Key') || /\/v1\/analytics\/decision-brief(?:[/?]|$)/.test(url);
212
219
  }
213
- async function reliableFetch(url, init = {}) {
220
+ async function reliableFetch(url, init = {}, options = {}) {
214
221
  const target = String(url);
215
- const timeoutMs = boundedTimeout(target);
222
+ const timeoutMs = typeof options.timeoutMs === 'number' && Number.isFinite(options.timeoutMs) && options.timeoutMs > 0
223
+ ? Math.min(boundedTimeout(target), options.timeoutMs)
224
+ : boundedTimeout(target);
216
225
  const deadline = Date.now() + timeoutMs;
217
226
  const externalSignal = init.signal;
218
227
  let lastError = null;
219
- const attempts = safeToRetry(target, init) ? 2 : 1;
228
+ const attempts = options.retryOwner === 'caller' ? 1 : safeToRetry(target, init) ? 2 : 1;
220
229
  for (let attempt = 0; attempt < attempts; attempt += 1) {
221
230
  if (externalSignal?.aborted)
222
231
  throw normalizeRequestError(externalSignal.reason || new DOMException('Aborted', 'AbortError'));
@@ -235,6 +244,8 @@ async function reliableFetch(url, init = {}) {
235
244
  if (!RETRYABLE_STATUS.has(response.status) || attempt + 1 >= attempts)
236
245
  return response;
237
246
  lastError = requestErrorFromResponse(response);
247
+ if (!lastError.retryable)
248
+ return response;
238
249
  retryResponse = response;
239
250
  delayMs = lastError.retryAfterMs ?? 50;
240
251
  }