@sensigo/realm 0.31.2 → 0.32.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 (44) hide show
  1. package/dist/engine/apply-resume.d.ts +34 -0
  2. package/dist/engine/apply-resume.d.ts.map +1 -0
  3. package/dist/engine/apply-resume.js +69 -0
  4. package/dist/engine/apply-resume.js.map +1 -0
  5. package/dist/engine/defaulted-steps.d.ts +17 -0
  6. package/dist/engine/defaulted-steps.d.ts.map +1 -0
  7. package/dist/engine/defaulted-steps.js +26 -0
  8. package/dist/engine/defaulted-steps.js.map +1 -0
  9. package/dist/engine/execution-loop.d.ts +32 -0
  10. package/dist/engine/execution-loop.d.ts.map +1 -1
  11. package/dist/engine/execution-loop.js +704 -39
  12. package/dist/engine/execution-loop.js.map +1 -1
  13. package/dist/engine/lifecycle.d.ts +14 -0
  14. package/dist/engine/lifecycle.d.ts.map +1 -1
  15. package/dist/engine/lifecycle.js +14 -0
  16. package/dist/engine/lifecycle.js.map +1 -1
  17. package/dist/engine/run-health.d.ts +1 -1
  18. package/dist/engine/run-health.d.ts.map +1 -1
  19. package/dist/engine/run-health.js +26 -3
  20. package/dist/engine/run-health.js.map +1 -1
  21. package/dist/engine/settlement.d.ts +27 -0
  22. package/dist/engine/settlement.d.ts.map +1 -0
  23. package/dist/engine/settlement.js +414 -0
  24. package/dist/engine/settlement.js.map +1 -0
  25. package/dist/index.d.ts +8 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +11 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/store/json-file-store.d.ts +54 -3
  30. package/dist/store/json-file-store.d.ts.map +1 -1
  31. package/dist/store/json-file-store.js +156 -17
  32. package/dist/store/json-file-store.js.map +1 -1
  33. package/dist/store/store-interface.d.ts +47 -1
  34. package/dist/store/store-interface.d.ts.map +1 -1
  35. package/dist/types/run-record.d.ts +67 -0
  36. package/dist/types/run-record.d.ts.map +1 -1
  37. package/dist/types/settlement.d.ts +124 -0
  38. package/dist/types/settlement.d.ts.map +1 -0
  39. package/dist/types/settlement.js +2 -0
  40. package/dist/types/settlement.js.map +1 -0
  41. package/dist/types/workflow-error.d.ts +1 -1
  42. package/dist/types/workflow-error.d.ts.map +1 -1
  43. package/dist/types/workflow-error.js.map +1 -1
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"json-file-store.d.ts","sourceRoot":"","sources":["../../src/store/json-file-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-file-store.d.ts","sourceRoot":"","sources":["../../src/store/json-file-store.ts"],"names":[],"mappings":"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"}
@@ -10,14 +10,49 @@ import lockfile from 'proper-lockfile';
10
10
  import { WorkflowError } from '../types/workflow-error.js';
11
11
  import { findEligibleSteps, deriveRunPhase, isStepSettledOrInFlight, } from '../engine/eligibility.js';
12
12
  import { computeClaimDeadline } from '../engine/claim-liveness.js';
13
+ import { applySettlement } from '../engine/settlement.js';
13
14
  import { TERMINAL_PHASES } from '../engine/lifecycle.js';
14
15
  import { hashParams } from './params-hash.js';
15
16
  import { decideIdempotencyPolicy } from './idempotency-policy.js';
16
17
  import { atomicWriteFile } from './atomic-write.js';
17
18
  import { readIfExists, deleteIfExists, toArtifactDeleteFailedError } from './fs-io.js';
18
19
  const DEFAULT_RUNS_DIR = join(homedir(), '.realm', 'runs');
19
- /** Bounded per-key lock retry policy — used for the resolve-or-claim critical section. */
20
- const KEY_LOCK_RETRIES = { retries: 10, minTimeout: 50 };
20
+ /**
21
+ * Shared `proper-lockfile` retry policy for EVERY lock this store takes — the 4 run-file
22
+ * critical-section locks (`update`/`claimStep`/`save`/`deleteAllForRun`) and the 3 per-key locks
23
+ * (`create`'s resolve-or-claim section, `registerImportedKey`, `deleteAllForRun`'s pointer delete)
24
+ * (issue #191).
25
+ *
26
+ * `proper-lockfile` forwards this object VERBATIM to the `retry` package
27
+ * (`retry.operation(options.retries)` — see `node_modules/proper-lockfile/lib/lockfile.js`), which
28
+ * reads every field below itself (`node_modules/retry/lib/retry.js` + `retry_operation.js`) — no
29
+ * filtering at either layer.
30
+ *
31
+ * - `randomize: true` — the LOAD-BEARING fix: without it (the `retry` package's own default),
32
+ * every contender computes the IDENTICAL deterministic backoff schedule and re-collides in
33
+ * lockstep under fan-out (a thundering herd). With it, `retry`'s `createTimeout` multiplies each
34
+ * attempt's delay by a fresh `Math.random() + 1` draw — contenders de-synchronize.
35
+ * - `maxTimeout: 1000` — caps any SINGLE attempt's sleep (also closes the OLD per-key retry
36
+ * policy's latent worst-case: uncapped, its 10th attempt alone could sleep up to 25.6s).
37
+ * - `maxRetryTime: 5000` — a TOTAL-TIME budget (the SQLite `busy_timeout` model): `retry`'s
38
+ * `RetryOperation.retry()` checks elapsed wall-time against this on every failed attempt and
39
+ * gives up once exceeded, REGARDLESS of `retries` remaining — so contention degrades gracefully
40
+ * into one retryable `STATE_RUN_BUSY` (Fix C) at a bounded ~5s, rather than either a hard count
41
+ * bound (~6.5s+ worst case with 10 retries × up to 1s each, uncapped further by jitter) or (pre-
42
+ * #191) failing fatally. Confirmed forwarding (not just by the source read above): a live check
43
+ * in this file's test suite holds a lock and asserts a SMALL-scale `maxRetryTime` cuts off well
44
+ * before the count-bound worst case would.
45
+ */
46
+ // Exported ONLY for this file's own test (issue #191) — a direct assertion, against the REAL
47
+ // `retry` package proper-lockfile itself delegates to, that `randomize`/`maxTimeout` genuinely
48
+ // reach it (not re-exported from `index.ts`, so this stays off the `@sensigo/realm` public API).
49
+ export const LOCK_RETRIES = {
50
+ retries: 10,
51
+ minTimeout: 50,
52
+ maxTimeout: 1000,
53
+ randomize: true,
54
+ maxRetryTime: 5000,
55
+ };
21
56
  /**
22
57
  * Newest-first comparator: by `created_at` descending, tie-broken by lexicographically
23
58
  * greatest `id`. Used to deterministically pick a canonical run for a key.
@@ -69,6 +104,10 @@ export class JsonFileStore {
69
104
  'extension_identity',
70
105
  'validation_rejections',
71
106
  'defaulted_steps',
107
+ // issue #279 (increment 1, PR-A): declared alongside settleStep — declaration-coherence
108
+ // (a store declaring settleStep MUST declare both; TCK-asserted).
109
+ 'settled',
110
+ 'finalizer_ledger',
72
111
  ]);
73
112
  constructor(runsDir) {
74
113
  this.runsDir = runsDir ?? DEFAULT_RUNS_DIR;
@@ -172,7 +211,7 @@ export class JsonFileStore {
172
211
  // realpath:false lets us lock a key path whose pointer file does not exist yet.
173
212
  const release = await lockfile.lock(keyPath, {
174
213
  realpath: false,
175
- retries: KEY_LOCK_RETRIES,
214
+ retries: LOCK_RETRIES,
176
215
  });
177
216
  try {
178
217
  const pointer = await this.readPointer(keyPath);
@@ -274,11 +313,17 @@ export class JsonFileStore {
274
313
  // the file between the existsSync check above and the lock/read below.
275
314
  let release;
276
315
  try {
277
- release = await lockfile.lock(path, { retries: { retries: 3, minTimeout: 50 } });
316
+ release = await lockfile.lock(path, { retries: LOCK_RETRIES });
278
317
  }
279
318
  catch (err) {
280
319
  if (err.code === 'ENOENT')
281
320
  throw this.runNotFoundError(record.id);
321
+ // issue #191 (Fix C): an exhausted lock acquisition is contention, not corruption — the SAME
322
+ // classification deleteAllForRun already uses (see runBusyError's own doc). Retryable: the
323
+ // other writer's lock is released eventually, or a genuinely stale lock is stolen by the
324
+ // next contender.
325
+ if (err.code === 'ELOCKED')
326
+ throw this.runBusyError(record.id, 'locked');
282
327
  throw err;
283
328
  }
284
329
  try {
@@ -330,7 +375,17 @@ export class JsonFileStore {
330
375
  details: { runId },
331
376
  });
332
377
  }
333
- const release = await lockfile.lock(path, { retries: { retries: 3, minTimeout: 50 } });
378
+ // issue #191 (Fix C): the lock acquisition itself now has its own try/catch (mirroring
379
+ // update()'s shape) — an exhausted acquisition is contention, not a fatal stop.
380
+ let release;
381
+ try {
382
+ release = await lockfile.lock(path, { retries: LOCK_RETRIES });
383
+ }
384
+ catch (err) {
385
+ if (err.code === 'ELOCKED')
386
+ throw this.runBusyError(runId, 'locked');
387
+ throw err;
388
+ }
334
389
  try {
335
390
  // Re-read the freshest version under lock.
336
391
  let raw;
@@ -369,10 +424,13 @@ export class JsonFileStore {
369
424
  // `S ∈ in_progress` with no claims[S] would silently re-create the permanent wedge.
370
425
  // OVERWRITE (not add-if-absent) so a missed settle-site delete self-heals on re-claim.
371
426
  const deadline = computeClaimDeadline(definition, stepName, new Date());
427
+ // issue #279 (increment 1, PR-A): mint an acquirer-minted fencing token alongside the
428
+ // deadline, in the SAME write — dormant until PR-B's settleStep migration reads it.
429
+ const token = uuidv4();
372
430
  const claimed = {
373
431
  ...run,
374
432
  in_progress_steps: [...run.in_progress_steps, stepName],
375
- claims: { ...run.claims, [stepName]: { deadline } },
433
+ claims: { ...run.claims, [stepName]: { deadline, token } },
376
434
  run_phase: deriveRunPhase(run),
377
435
  version: run.version + 1,
378
436
  updated_at: new Date().toISOString(),
@@ -384,6 +442,61 @@ export class JsonFileStore {
384
442
  await release();
385
443
  }
386
444
  }
445
+ /**
446
+ * Atomically applies one `SettlementDelta` to this run's fresh state (issue #279, increment 1).
447
+ * DORMANT until PR-B — see the JSDoc on `RunStore.settleStep` for the full contract (dormancy,
448
+ * write-surface obligations, atomicity, infra-throws/predicate-returns). Same lock/fresh-read
449
+ * shape as `update()` (ENOENT/ELOCKED mapping identical): LOCK_RETRIES lock → fresh read →
450
+ * `applySettlement` → a refusal returns WITHOUT any write (fresh state, version unchanged) → an
451
+ * apply writes the transform's own output with the write-tail `{version: fresh.version+1,
452
+ * updated_at}` (run_phase is already transform-derived; this store's own re-derivation below is
453
+ * idempotent on that already-correct value, exactly like `update()`'s own write-tail).
454
+ */
455
+ async settleStep(runId, delta, definition, options) {
456
+ await this.ensureDir();
457
+ const path = this.filePath(runId);
458
+ if (!existsSync(path)) {
459
+ throw this.runNotFoundError(runId);
460
+ }
461
+ let release;
462
+ try {
463
+ release = await lockfile.lock(path, { retries: LOCK_RETRIES });
464
+ }
465
+ catch (err) {
466
+ if (err.code === 'ENOENT')
467
+ throw this.runNotFoundError(runId);
468
+ if (err.code === 'ELOCKED')
469
+ throw this.runBusyError(runId, 'locked');
470
+ throw err;
471
+ }
472
+ try {
473
+ let raw;
474
+ try {
475
+ raw = await readFile(path, 'utf8');
476
+ }
477
+ catch (err) {
478
+ if (err.code === 'ENOENT')
479
+ throw this.runNotFoundError(runId);
480
+ throw err;
481
+ }
482
+ const fresh = JSON.parse(raw);
483
+ const outcome = applySettlement(fresh, delta, definition, options);
484
+ if (!outcome.applied) {
485
+ return outcome; // refusal/noop — fresh state, NO write (version unchanged)
486
+ }
487
+ const updated = {
488
+ ...outcome.run,
489
+ run_phase: deriveRunPhase(outcome.run),
490
+ version: fresh.version + 1,
491
+ updated_at: new Date().toISOString(),
492
+ };
493
+ await atomicWriteFile(path, JSON.stringify(updated, null, 2));
494
+ return { ...outcome, run: updated };
495
+ }
496
+ finally {
497
+ await release();
498
+ }
499
+ }
387
500
  /**
388
501
  * Writes a run record with its existing ID to local storage.
389
502
  * Used for importing records fetched from a remote store.
@@ -403,10 +516,20 @@ export class JsonFileStore {
403
516
  // realpath: false (like create()'s key lock) — save()'s whole point is create-if-absent,
404
517
  // so the target file legitimately may not exist yet; the default realpath resolution
405
518
  // would throw ENOENT locking a path with nothing there.
406
- const release = await lockfile.lock(path, {
407
- realpath: false,
408
- retries: { retries: 3, minTimeout: 50 },
409
- });
519
+ // issue #191 (Fix C): same ELOCKED→runBusyError mapping as update()/claimStep() — an exhausted
520
+ // acquisition here is contention on the read-check-write section, not a fatal stop.
521
+ let release;
522
+ try {
523
+ release = await lockfile.lock(path, {
524
+ realpath: false,
525
+ retries: LOCK_RETRIES,
526
+ });
527
+ }
528
+ catch (err) {
529
+ if (err.code === 'ELOCKED')
530
+ throw this.runBusyError(record.id, 'locked');
531
+ throw err;
532
+ }
410
533
  try {
411
534
  if (existsSync(path)) {
412
535
  const raw = await readFile(path, 'utf8');
@@ -444,7 +567,7 @@ export class JsonFileStore {
444
567
  await this.ensureKeysDir();
445
568
  const key = record.idempotency_key;
446
569
  const keyPath = this.keyPath(record.workflow_id, key);
447
- const release = await lockfile.lock(keyPath, { realpath: false, retries: KEY_LOCK_RETRIES });
570
+ const release = await lockfile.lock(keyPath, { realpath: false, retries: LOCK_RETRIES });
448
571
  try {
449
572
  const pointer = await this.readPointer(keyPath);
450
573
  if (pointer !== undefined && pointer.run_id !== record.id) {
@@ -594,14 +717,21 @@ export class JsonFileStore {
594
717
  }
595
718
  /**
596
719
  * Builds the `STATE_RUN_BUSY` error thrown when `deleteAllForRun` cannot proceed because
597
- * another writer holds the run-file (or key) lock, or because the run is no longer terminal
598
- * (issue #184). Retryable: a live writer self-heals (the lock is released), and a genuinely
599
- * stale lock is eventually stolen by the next contender.
720
+ * another writer holds the run-file (or key) lock, because the run is no longer terminal
721
+ * (issue #184), or because a finalizer ledger entry is still `'pending'` (issue #279, increment
722
+ * 1, PR-B: `drain_pending` R11). Retryable: a live writer self-heals (the lock is released), a
723
+ * genuinely stale lock is eventually stolen by the next contender, and a pending finalizer is
724
+ * eventually drained or voided by an operator — but `drain_pending` is deliberately NOT
725
+ * force-bypassable at the CLI layer (residual R11, owner-ratified): the escape is `realm run
726
+ * drain` or `--void`, never `purge --force`.
600
727
  */
601
728
  runBusyError(runId, reason) {
602
729
  const message = reason === 'locked'
603
730
  ? `Run '${runId}' is locked by another writer`
604
- : `Run '${runId}' is no longer terminal — refusing to delete (it may have been resumed)`;
731
+ : reason === 'no_longer_terminal'
732
+ ? `Run '${runId}' is no longer terminal — refusing to delete (it may have been resumed)`
733
+ : `Run '${runId}' has a pending finalizer — refusing to delete until it is drained or ` +
734
+ `voided (realm run drain ${runId} / --void <finalizer>)`;
605
735
  return new WorkflowError(message, {
606
736
  code: 'STATE_RUN_BUSY',
607
737
  category: 'STATE',
@@ -633,7 +763,7 @@ export class JsonFileStore {
633
763
  try {
634
764
  release = await lockfile.lock(path, {
635
765
  realpath: false,
636
- retries: { retries: 3, minTimeout: 50 },
766
+ retries: LOCK_RETRIES,
637
767
  });
638
768
  }
639
769
  catch (err) {
@@ -664,6 +794,15 @@ export class JsonFileStore {
664
794
  if (!TERMINAL_PHASES.has(record.run_phase) || record.terminal_state !== true) {
665
795
  throw this.runBusyError(runId, 'no_longer_terminal');
666
796
  }
797
+ // issue #279 (increment 1, PR-B), R11: any finalizer ledger entry still 'pending' refuses
798
+ // deletion — deleting the run out from under an undrained finalizer would silently destroy
799
+ // the record a later `realm run drain`/`--void` needs to act on. Unconditional (no --force
800
+ // bypass at this layer — purge.ts's single-id --force path routes through this SAME
801
+ // under-lock throw, so it inherits the refusal automatically); the escape is the drain verb.
802
+ const pendingFinalizer = Object.entries(record.finalizer_ledger ?? {}).find(([, entry]) => entry.status === 'pending');
803
+ if (pendingFinalizer !== undefined) {
804
+ throw this.runBusyError(runId, 'drain_pending');
805
+ }
667
806
  const deleted = [];
668
807
  // Conditional pointer delete: only when this run actually owns an idempotency key. A
669
808
  // `rerun`/supersede may have repointed the key to a NEWER run since this run was minted —
@@ -680,7 +819,7 @@ export class JsonFileStore {
680
819
  const keyPath = this.keyPath(record.workflow_id, record.idempotency_key);
681
820
  let keyRelease;
682
821
  try {
683
- keyRelease = await lockfile.lock(keyPath, { realpath: false, retries: KEY_LOCK_RETRIES });
822
+ keyRelease = await lockfile.lock(keyPath, { realpath: false, retries: LOCK_RETRIES });
684
823
  }
685
824
  catch (err) {
686
825
  if (err.code === 'ELOCKED') {
@@ -1 +1 @@
1
- {"version":3,"file":"json-file-store.js","sourceRoot":"","sources":["../../src/store/json-file-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-file-store.js","sourceRoot":"","sources":["../../src/store/json-file-store.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,qDAAqD;AACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAIvC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAEvF,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,6FAA6F;AAC7F,+FAA+F;AAC/F,iGAAiG;AACjG,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;CACV,CAAC;AAyCX;;;GAGG;AACH,SAAS,gBAAgB,CAAC,CAAY,EAAE,CAAY;IAClD,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,UAAU;QAAE,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAiB;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACrE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChD,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChD,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,aAAa;IACP,OAAO,CAAS;IAEjC,iFAAiF;IACxE,cAAc,GAAG,IAAI,CAAC;IAE/B;;;;OAIG;IACM,wBAAwB,GAA2C,IAAI,GAAG,CAAC;QAClF,mBAAmB;QACnB,4BAA4B;QAC5B,oBAAoB;QACpB,uBAAuB;QACvB,iBAAiB;QACjB,wFAAwF;QACxF,kEAAkE;QAClE,SAAS;QACT,kBAAkB;KACnB,CAAC,CAAC;IAEH,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAAC;IAC7C,CAAC;IAED,qDAAqD;IACrD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,sGAAsG;IAC9F,OAAO;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,wDAAwD;IAChD,OAAO,CAAC,UAAkB,EAAE,GAAW;QAC7C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,KAAK,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,WAAW,CAAC,OAAe;QACvC,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QACvC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,gDAAgD,OAAO,6BAA6B;gBAClF,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACxE,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,4GAA4G;IACpG,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,GAAc,EAAE,GAAW;QACrE,MAAM,OAAO,GAAe;YAC1B,MAAM,EAAE,GAAG,CAAC,EAAE;YACd,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,GAAG;YACH,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YACnC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;QACF,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,6EAA6E;IACrE,KAAK,CAAC,aAAa,CAAC,OAAyB;QACnD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAc;YACxB,EAAE,EAAE,MAAM,EAAE;YACZ,WAAW,EAAE,OAAO,CAAC,UAAU;YAC/B,gBAAgB,EAAE,OAAO,CAAC,eAAe;YACzC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5F,eAAe,EAAE,EAAE;YACnB,iBAAiB,EAAE,EAAE;YACrB,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,EAAE;YACjB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;YACf,cAAc,EAAE,KAAK;SACtB,CAAC;QACF,MAAM,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wGAAwG;IAChG,KAAK,CAAC,sBAAsB,CAClC,UAAkB,EAClB,GAAW;QAEX,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,GAAG,CAAC,CAAC;QACvF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3C,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAyB;QACpC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEvB,2CAA2C;QAC3C,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAEtD,4EAA4E;QAC5E,gFAAgF;QAChF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3C,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,6CAA6C;gBAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBACnE,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB;wBAAE,OAAO,SAAS,CAAC;oBACzF,MAAM,GAAG,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,wFAAwF;oBACxF,wFAAwF;oBACxF,qFAAqF;oBACrF,IAAI,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;wBACzD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;oBACzC,CAAC;oBACD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;gBACD,sEAAsE;YACxE,CAAC;iBAAM,CAAC;gBACN,iFAAiF;gBACjF,oFAAoF;gBACpF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAC7E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,+CAA+C;oBAC/C,IAAI,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;wBAC5D,kEAAkE;wBAClE,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;wBACjD,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;oBAC5C,CAAC;oBACD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAED,kFAAkF;YAClF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,SAAS,CACrB,OAAyB,EACzB,OAAe,EACf,GAAW;QAEX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,2GAA2G;IACnG,gBAAgB,CAAC,KAAa;QACpC,OAAO,IAAI,aAAa,CAAC,kBAAkB,KAAK,EAAE,EAAE;YAClD,IAAI,EAAE,qBAAqB;YAC3B,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,KAAK,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,2FAA2F;QAC3F,yFAAyF;QACzF,wFAAwF;QACxF,6FAA6F;QAC7F,wFAAwF;QACxF,qDAAqD;QACrD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QAE1D,+FAA+F;QAC/F,IAAI,OAAO,IAAI,MAAM,IAAI,CAAC,CAAC,iBAAiB,IAAI,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,aAAa,CACrB,uFAAuF;gBACrF,wCAAwC,EAC1C;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE;aACnB,CACF,CAAC;QACJ,CAAC;QAED,OAAO,MAA8B,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAiB;QAC5B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,2FAA2F;QAC3F,2FAA2F;QAC3F,uEAAuE;QACvE,IAAI,OAA4B,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC7F,6FAA6F;YAC7F,2FAA2F;YAC3F,yFAAyF;YACzF,kBAAkB;YAClB,IAAK,GAA6B,CAAC,IAAI,KAAK,SAAS;gBACnD,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC;YACH,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAClD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;YAE5C,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,IAAI,aAAa,CAAC,wDAAwD,EAAE;oBAChF,IAAI,EAAE,yBAAyB;oBAC/B,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE,gBAAgB;oBAC7B,SAAS,EAAE,IAAI;oBACf,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;iBAChF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,GAAc;gBACzB,GAAG,MAAM;gBACT,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC;gBACjC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,CAAC;gBAC3B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YACF,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,6FAA6F;IAC7F,gGAAgG;IAChG,4FAA4F;IAC5F,2EAA2E;IAC3E,KAAK,CAAC,SAAS,CACb,KAAa,EACb,QAAgB,EAChB,UAA8B;QAE9B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,aAAa,CAAC,kBAAkB,KAAK,EAAE,EAAE;gBACjD,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,gBAAgB;gBAC7B,SAAS,EAAE,KAAK;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE;aACnB,CAAC,CAAC;QACL,CAAC;QAED,uFAAuF;QACvF,gFAAgF;QAChF,IAAI,OAA4B,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,SAAS;gBACnD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3C,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC;YACH,2CAA2C;YAC3C,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACzF,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;YAEzC,2CAA2C;YAC3C,IAAI,uBAAuB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,aAAa,CACrB,SAAS,QAAQ,6CAA6C,KAAK,IAAI,EACvE;oBACE,IAAI,EAAE,4BAA4B;oBAClC,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE,sBAAsB;oBACnC,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;iBAC7B,CACF,CAAC;YACJ,CAAC;YAED,kEAAkE;YAClE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,aAAa,CACrB,SAAS,QAAQ,2CAA2C,KAAK,IAAI,EACrE;oBACE,IAAI,EAAE,yBAAyB;oBAC/B,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE,sBAAsB;oBACnC,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;iBACvC,CACF,CAAC;YACJ,CAAC;YAED,uFAAuF;YACvF,wFAAwF;YACxF,oFAAoF;YACpF,uFAAuF;YACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACxE,sFAAsF;YACtF,oFAAoF;YACpF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC;YACvB,MAAM,OAAO,GAAc;gBACzB,GAAG,GAAG;gBACN,iBAAiB,EAAE,CAAC,GAAG,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC;gBACvD,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;gBAC1D,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC;gBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC;gBACxB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YACF,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CACd,KAAa,EACb,KAAsB,EACtB,UAA8B,EAC9B,OAAwB;QAExB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,OAA4B,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACzF,IAAK,GAA6B,CAAC,IAAI,KAAK,SAAS;gBACnD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3C,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC;YACH,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACzF,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;YAE3C,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,OAAO,CAAC,CAAC,2DAA2D;YAC7E,CAAC;YAED,MAAM,OAAO,GAAc;gBACzB,GAAG,OAAO,CAAC,GAAG;gBACd,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;gBACtC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC;gBAC1B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC;YACF,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,2FAA2F;IAC3F,+FAA+F;IAC/F,gGAAgG;IAChG,KAAK,CAAC,IAAI,CAAC,MAAiB;QAC1B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEtC,+EAA+E;QAC/E,uFAAuF;QACvF,yFAAyF;QACzF,qFAAqF;QACrF,wDAAwD;QACxD,+FAA+F;QAC/F,oFAAoF;QACpF,IAAI,OAA4B,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;gBAClC,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,SAAS;gBACnD,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC/C,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;gBAC5C,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO;oBAAE,OAAO;gBAC9C,MAAM,IAAI,aAAa,CACrB,QAAQ,MAAM,CAAC,EAAE,qDAAqD,MAAM,CAAC,OAAO,eAAe,MAAM,CAAC,OAAO,gCAAgC,EACjJ;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE,gBAAgB;oBAC7B,SAAS,EAAE,KAAK;oBAChB,OAAO,EAAE;wBACP,KAAK,EAAE,MAAM,CAAC,EAAE;wBAChB,YAAY,EAAE,MAAM,CAAC,OAAO;wBAC5B,eAAe,EAAE,MAAM,CAAC,OAAO;qBAChC;iBACF,CACF,CAAC;YACJ,CAAC;YACD,4EAA4E;YAC5E,MAAM,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,mBAAmB,CAAC,MAAiB;QACjD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO;QACjD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;gBAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACpE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACjD,MAAM,IAAI,aAAa,CACrB,iCAAiC,MAAM,CAAC,WAAW,+CAA+C,KAAK,CAAC,EAAE,2CAA2C,MAAM,CAAC,EAAE,IAAI,EAClK;wBACE,IAAI,EAAE,oBAAoB;wBAC1B,QAAQ,EAAE,OAAO;wBACjB,WAAW,EAAE,gBAAgB;wBAC7B,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE,EAAE;qBAC5D,CACF,CAAC;gBACJ,CAAC;gBACD,sEAAsE;YACxE,CAAC;YACD,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CAAC,UAAmB,EAAE,MAAM,GAAG,KAAK;QACrD,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAExC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,IAAI,GAAG,CAAC,eAAe,KAAK,SAAS;gBAAE,SAAS;YAChD,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC,eAAe,EAAE,CAAC;YACxD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,GAAG,KAAK,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;;gBACxC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,MAAM;YACN,eAAe,EAAE,EAAE;YACnB,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACnC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,SAAS,CAAC,eAAgB,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAEzD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;oBAC3B,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,GAAG;oBACH,gBAAgB,EAAE,SAAS,CAAC,EAAE;oBAC9B,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1E,CAAC,CAAC;YACL,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAC9B,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,GAAG;oBACH,gBAAgB,EAAE,SAAS,CAAC,EAAE;oBAC9B,kBAAkB,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/C,CAAC,CAAC;YACL,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,SAAS,GACb,QAAQ,KAAK,SAAS;gBACtB,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;gBAChC,QAAQ,CAAC,WAAW,KAAK,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,aAAa,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAmB;QAC5B,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,OAAO,GAAa,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,wFAAwF;QACxF,6FAA6F;QAC7F,gGAAgG;QAChG,sBAAsB;QACtB,MAAM,SAAS,GAAa,OAAO,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAE/E,yFAAyF;QACzF,2FAA2F;QAC3F,uFAAuF;QACvF,iEAAiE;QACjE,MAAM,YAAY,GAAiC,MAAM,OAAO,CAAC,GAAG,CAClE,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;YACnC,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,SAAS,CAAC;gBACvE,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;QACtC,CAAC,CAAC,CACH,CAAC;QACF,MAAM,OAAO,GAAgB,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAEzF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,GAAG,EAAE,CAAC;YACvE,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/F,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IAED;;;;;;;;;OASG;IACK,YAAY,CAClB,KAAa,EACb,MAAyD;QAEzD,MAAM,OAAO,GACX,MAAM,KAAK,QAAQ;YACjB,CAAC,CAAC,QAAQ,KAAK,+BAA+B;YAC9C,CAAC,CAAC,MAAM,KAAK,oBAAoB;gBAC/B,CAAC,CAAC,QAAQ,KAAK,yEAAyE;gBACxF,CAAC,CAAC,QAAQ,KAAK,wEAAwE;oBACrF,2BAA2B,KAAK,wBAAwB,CAAC;QACjE,OAAO,IAAI,aAAa,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,gBAAgB;YAC7B,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,WAA+B;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,OAA4B,CAAC;QACjC,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;gBAClC,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACtD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,IAAI,MAAiB,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,aAAa,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB;oBAAE,OAAO,CAAC,eAAe;gBAC/F,yFAAyF;gBACzF,yFAAyF;gBACzF,oFAAoF;gBACpF,wFAAwF;gBACxF,MAAM,2BAA2B,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC3E,CAAC;YAED,4FAA4F;YAC5F,wFAAwF;YACxF,uFAAuF;YACvF,qFAAqF;YACrF,iEAAiE;YACjE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBAC7E,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;YACvD,CAAC;YAED,0FAA0F;YAC1F,2FAA2F;YAC3F,2FAA2F;YAC3F,oFAAoF;YACpF,6FAA6F;YAC7F,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,CACzE,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAC1C,CAAC;YACF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,qFAAqF;YACrF,0FAA0F;YAC1F,2FAA2F;YAC3F,wFAAwF;YACxF,6FAA6F;YAC7F,EAAE;YACF,2FAA2F;YAC3F,6FAA6F;YAC7F,2FAA2F;YAC3F,0FAA0F;YAC1F,mEAAmE;YACnE,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;gBACzE,IAAI,UAA+B,CAAC;gBACpC,IAAI,CAAC;oBACH,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;gBACxF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBACtD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC3C,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,IAAI,CAAC;oBACH,IAAI,OAA+B,CAAC;oBACpC,IAAI,CAAC;wBACH,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC5C,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,2BAA2B,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;oBACnF,CAAC;oBACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;wBACtD,IAAI,CAAC;4BACH,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;4BAChD,IAAI,SAAS;gCAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvC,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,gFAAgF;4BAChF,oFAAoF;4BACpF,kFAAkF;4BAClF,yEAAyE;4BACzE,MAAM,2BAA2B,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;wBACnF,CAAC;oBACH,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,MAAM,UAAU,EAAE,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,2FAA2F;YAC3F,mFAAmF;YACnF,+DAA+D;YAC/D,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,SAAS;oBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,2BAA2B,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import type { RunRecord } from '../types/run-record.js';
2
2
  import type { WorkflowDefinition } from '../types/workflow-definition.js';
3
+ import type { SettlementDelta, SettlementResult } from '../types/settlement.js';
3
4
  /**
4
5
  * The load-bearing `RunRecord` fields the engine treats specially enough that a store must
5
6
  * DECLARE which it round-trips (issue #188). This is a CLOSED set — a field qualifies via EITHER
@@ -30,8 +31,19 @@ import type { WorkflowDefinition } from '../types/workflow-definition.js';
30
31
  * in-repo (PR-3's `$settlement` namespace reads per-step evidence instead); a store that drops
31
32
  * it loses only the run-level convenience marker — the per-step evidence truth is unaffected —
32
33
  * but the engine surfaces that loss as an explicit envelope warning rather than staying silent.
34
+ * - `settled` / `finalizer_ledger` (issue #279, increment 1) — read by `applySettlement`'s own
35
+ * predicate (`entryOf`/`leaseFinalizerArms`/`markFinalizerArms`) on every `settleStep` call; a
36
+ * store that drops either one makes its OWN next settle/lease/mark blind to prior settlement
37
+ * history, corrupting the idempotence/fencing guarantees `settleStep` exists to provide.
38
+ * DECLARATION-COHERENCE (TCK-asserted): a store that declares `settleStep` MUST declare BOTH
39
+ * of these fields — declaring the operation without the fields it depends on is a dishonest
40
+ * declaration, not merely an incomplete one. Dormant in this PR: nothing writes either field
41
+ * until PR-B migrates the seal sites, so a store declaring them today gains a dormant gate,
42
+ * never a behavior change. Joining this CLOSED set (rather than an open one) is deliberate:
43
+ * bumping it forces every full-set-declaring store's own fidelity TCK to grow two new cases at
44
+ * the SAME compile, so a store cannot silently drift out of sync with what settleStep needs.
33
45
  */
34
- export type LoadBearingRunRecordField = 'capability_blocks' | 'workflow_context_snapshots' | 'extension_identity' | 'validation_rejections' | 'defaulted_steps';
46
+ export type LoadBearingRunRecordField = 'capability_blocks' | 'workflow_context_snapshots' | 'extension_identity' | 'validation_rejections' | 'defaulted_steps' | 'settled' | 'finalizer_ledger';
35
47
  export interface CreateRunOptions {
36
48
  workflowId: string;
37
49
  workflowVersion: number;
@@ -129,5 +141,39 @@ export interface RunStore {
129
141
  * see its own doc for why cross-host cannot be verified generically).
130
142
  */
131
143
  claimStep(runId: string, stepName: string, definition: WorkflowDefinition): Promise<RunRecord>;
144
+ /**
145
+ * Atomically applies one {@link SettlementDelta} to this run's FRESH state, under the store's
146
+ * own serialization (issue #279, increment 1). Optional (the `persistedRunRecordFields`
147
+ * precedent — additive-optional, never retroactively required of an external implementer).
148
+ *
149
+ * **DORMANT UNTIL PR-B.** No engine or MCP call site constructs a `SettlementDelta` or calls
150
+ * this method in this release (enforced by an in-repo source-text guard) — declaring it is
151
+ * inert. Direct callers (a test, a script, an operator tool) are OUT OF CONTRACT until the
152
+ * engine adopts it: nothing here promises interop with the legacy `update()`/`claimStep()` CAS
153
+ * paths beyond what {@link applySettlement}'s own predicate already guards (fresh-state
154
+ * `claims`/`settled`/`finalizer_ledger` reads).
155
+ *
156
+ * **A WRITE surface, not a read-only helper** — it carries every obligation `update()` already
157
+ * does for this store (e.g. a cloud store's own policy/authorization gate on the write; M1):
158
+ * implementers must NOT skip whatever wrapper logic their `update()` implementation applies.
159
+ *
160
+ * **Atomicity, own-suite proof required (L4 caveat):** for a store whose CS is a single
161
+ * lock + read + write (this repo's `JsonFileStore`/`InMemoryStore`), the existing
162
+ * lock/synchronous-stretch discipline already suffices. A MULTI-STATEMENT backend (e.g. a
163
+ * future Postgres store issuing more than one SQL statement to apply a delta) MUST prove its
164
+ * own atomicity — a version-CAS `UPDATE ... WHERE version = $1` alone is not sufficient once
165
+ * more than one statement is involved — in ITS OWN conformance suite before declaring this
166
+ * method; a green run of the in-repo TCK here does not and cannot verify that for an external
167
+ * backend (mirrors `claimStep`'s own cross-host caveat).
168
+ *
169
+ * **Infra THROWS; predicate outcomes RETURN.** A genuine I/O/lock-acquisition failure
170
+ * (ENOENT/ELOCKED-mapped, or an unmapped store error) throws, exactly like `update()`. Every
171
+ * REFUSE/NOOP arm of `applySettlement`'s predicate is a normal RETURN
172
+ * (`{applied:false, reason, run}`) — never thrown as a `WorkflowError`. Implementations must not
173
+ * invert this: a predicate refusal is not an exceptional condition.
174
+ */
175
+ settleStep?(runId: string, delta: SettlementDelta, definition: WorkflowDefinition, options?: {
176
+ now?: Date;
177
+ }): Promise<SettlementResult>;
132
178
  }
133
179
  //# sourceMappingURL=store-interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store-interface.d.ts","sourceRoot":"","sources":["../../src/store/store-interface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,MAAM,yBAAyB,GACjC,mBAAmB,GACnB,4BAA4B,GAC5B,oBAAoB,GACpB,uBAAuB,GACvB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,gIAAgI;IAChI,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,iBAAiB,GAAG,OAAO,CAAC;IACnE;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAE3E;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAEjF,sFAAsF;IACtF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9C,+DAA+D;IAC/D,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAEhD;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAChG"}
1
+ {"version":3,"file":"store-interface.d.ts","sourceRoot":"","sources":["../../src/store/store-interface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,MAAM,yBAAyB,GACjC,mBAAmB,GACnB,4BAA4B,GAC5B,oBAAoB,GACpB,uBAAuB,GACvB,iBAAiB,GACjB,SAAS,GACT,kBAAkB,CAAC;AAEvB,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,gIAAgI;IAChI,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,iBAAiB,GAAG,OAAO,CAAC;IACnE;;;;OAIG;IACH,WAAW,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC;IAE3E;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAEjF,sFAAsF;IACtF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9C,+DAA+D;IAC/D,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAEhD;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,UAAU,CAAC,CACT,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,EACtB,UAAU,EAAE,kBAAkB,EAC9B,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,IAAI,CAAA;KAAE,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9B"}
@@ -249,6 +249,15 @@ export interface ClaimRecord {
249
249
  * auto-reclaimed. A concrete deadline is set only for reliably time-boundable claims.
250
250
  */
251
251
  deadline: string | null;
252
+ /**
253
+ * Issue #279 (increment 1, PR-A): an acquirer-minted fencing token, stamped atomically in the
254
+ * SAME `claimStep` write that creates this claim record (uuid; each store's own existing uuid
255
+ * idiom). Additive-optional — legacy/pre-#279 claim records lack it, and `settleStep`'s
256
+ * `tokensEqual` predicate treats absent as `null` (absent≡absent — the #197 grandfathered-claims
257
+ * precedent), so a token-less claim is never spuriously fenced out. Dormant in this PR: nothing
258
+ * reads or compares it until PR-B migrates the seal sites to `settleStep`.
259
+ */
260
+ token?: string;
252
261
  }
253
262
  /**
254
263
  * A recoverable-incapability marker (issue #134), keyed by step name in {@link RunRecord.capability_blocks}.
@@ -301,6 +310,18 @@ export type SkipDetail = {
301
310
  kind: 'handler_abort';
302
311
  } | {
303
312
  kind: 'guard_abort';
313
+ }
314
+ /**
315
+ * Issue #279 (increment 1, PR-A): stamped on a human-gated step whose gate was still open when
316
+ * a DIFFERENT step's handler aborted the run — `applySettlement`'s settle_step abort arm cancels
317
+ * the gate in the SAME atomic write (design record §3) rather than leaving it stranded open on
318
+ * an otherwise-terminal run. A genuinely NEW capability the pre-#279 legacy handler-abort path
319
+ * lacks (it preserves `pending_gate` untouched, which is exactly the class of inconsistent
320
+ * terminal-with-an-open-gate state #279 exists to close). Dormant until PR-B migrates the seal
321
+ * sites — no engine call site can produce this in PR-A.
322
+ */
323
+ | {
324
+ kind: 'gate_cancelled_by_abort';
304
325
  };
305
326
  export interface RunRecord {
306
327
  id: string;
@@ -428,5 +449,51 @@ export interface RunRecord {
428
449
  * statement — see the design record). Additive-optional (the `validation_rejections` precedent).
429
450
  */
430
451
  defaulted_steps?: string[];
452
+ /**
453
+ * Issue #279 (increment 1, PR-A): per-step settlement record, keyed by step name — the durable
454
+ * outcome of an `applySettlement` `settle_step` APPLY (`settlement.ts`; design record
455
+ * `plans/issue-279/design-d4-increment1.md` §2/§3). `token` is the `claimToken` the settling
456
+ * caller presented (`norm`-ed — `null` when the caller had none), used for the
457
+ * `already_settled`/`already_settled_by_other` idempotence discrimination on a retry. `outcome`
458
+ * uses `'skip'` (not `'abort'`) for an aborted step — it mirrors where the step PHYSICALLY
459
+ * lands (`skipped_steps`), per the design record's `toSettledOutcome` mapping
460
+ * (`complete↦'complete'`, `fail↦'fail'`, `abort↦'skip'`).
461
+ *
462
+ * ORPHAN RULE (design record §2 `entryOf`): an entry whose step is NOT (also) present in the
463
+ * matching membership array (`completed_steps`/`failed_steps`/`skipped_steps` per its own
464
+ * `outcome`) is treated as ABSENT by the predicate — the next settle APPLY simply overwrites it
465
+ * (mirrors `claimStep`'s own pre-#279 overwrite-not-add-if-absent self-heal at the claims map).
466
+ * This can never happen through `settleStep` itself (APPLY always writes both the entry and the
467
+ * membership in the SAME atomic write) — it exists so a hand-authored fixture / an external
468
+ * store's own divergent history cannot wedge the predicate.
469
+ *
470
+ * Dormant in this PR — join `LoadBearingRunRecordField`/`SAMPLE_VALUES`; nothing writes this
471
+ * field until PR-B migrates the seal sites to `settleStep`.
472
+ */
473
+ settled?: Record<string, {
474
+ token: string | null;
475
+ outcome: 'complete' | 'fail' | 'skip';
476
+ }>;
477
+ /**
478
+ * Issue #279 (increment 1, PR-A): the record-as-outbox finalizer ledger, keyed by finalizer step
479
+ * name — minted by `mintFresh` (settlement.ts) on the terminal false→true edge, drained via
480
+ * `lease_finalizer`/`mark_finalizer` deltas (design record §3/§4/§6). `rank` totally orders the
481
+ * PENDING subset only (the drain loop processes lowest-rank-first; collisions with
482
+ * terminal-status entries are legal and inert). `lease_deadline`/`lease_token` are present only
483
+ * while `status === 'pending'` AND a drainer currently holds the lease — a CLEAN mint (§4) never
484
+ * seeds them, and `applyResume` (PR-B) strips them when voiding a pending entry. `status`:
485
+ * `'pending'` (mint-not-yet-delivered) → `'completed'` | `'failed'` (delivered, terminal,
486
+ * never rewritten — the never-downgrade guard) or `'voided'` (superseded by a resume, §5;
487
+ * permanent unless a later terminal edge re-mints the SAME finalizer if still selected).
488
+ *
489
+ * Dormant in this PR — join `LoadBearingRunRecordField`/`SAMPLE_VALUES`; nothing writes this
490
+ * field until PR-B migrates the seal sites to `settleStep`.
491
+ */
492
+ finalizer_ledger?: Record<string, {
493
+ status: 'pending' | 'completed' | 'failed' | 'voided';
494
+ rank: number;
495
+ lease_deadline?: string;
496
+ lease_token?: string;
497
+ }>;
431
498
  }
432
499
  //# sourceMappingURL=run-record.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-record.d.ts","sourceRoot":"","sources":["../../src/types/run-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-record.d.ts","sourceRoot":"","sources":["../../src/types/run-record.ts"],"names":[],"mappings":"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"}