gnosys 5.6.0 → 5.7.1

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 (72) hide show
  1. package/README.md +15 -2
  2. package/dist/cli.js +879 -464
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.js +96 -4
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/audit.d.ts +13 -0
  7. package/dist/lib/audit.d.ts.map +1 -1
  8. package/dist/lib/audit.js +42 -0
  9. package/dist/lib/audit.js.map +1 -1
  10. package/dist/lib/chat/llmTurn.d.ts +20 -2
  11. package/dist/lib/chat/llmTurn.d.ts.map +1 -1
  12. package/dist/lib/chat/llmTurn.js +58 -16
  13. package/dist/lib/chat/llmTurn.js.map +1 -1
  14. package/dist/lib/chat/render.d.ts.map +1 -1
  15. package/dist/lib/chat/render.js +18 -0
  16. package/dist/lib/chat/render.js.map +1 -1
  17. package/dist/lib/chat/toolFence.d.ts +54 -0
  18. package/dist/lib/chat/toolFence.d.ts.map +1 -0
  19. package/dist/lib/chat/toolFence.js +90 -0
  20. package/dist/lib/chat/toolFence.js.map +1 -0
  21. package/dist/lib/chat/tools.d.ts +48 -0
  22. package/dist/lib/chat/tools.d.ts.map +1 -0
  23. package/dist/lib/chat/tools.js +338 -0
  24. package/dist/lib/chat/tools.js.map +1 -0
  25. package/dist/lib/db.d.ts +58 -0
  26. package/dist/lib/db.d.ts.map +1 -1
  27. package/dist/lib/db.js +154 -38
  28. package/dist/lib/db.js.map +1 -1
  29. package/dist/lib/heartbeat.d.ts +31 -0
  30. package/dist/lib/heartbeat.d.ts.map +1 -0
  31. package/dist/lib/heartbeat.js +91 -0
  32. package/dist/lib/heartbeat.js.map +1 -0
  33. package/dist/lib/idFormat.d.ts +41 -0
  34. package/dist/lib/idFormat.d.ts.map +1 -0
  35. package/dist/lib/idFormat.js +66 -0
  36. package/dist/lib/idFormat.js.map +1 -0
  37. package/dist/lib/progress.d.ts +54 -0
  38. package/dist/lib/progress.d.ts.map +1 -0
  39. package/dist/lib/progress.js +92 -0
  40. package/dist/lib/progress.js.map +1 -0
  41. package/dist/lib/remote.d.ts +37 -1
  42. package/dist/lib/remote.d.ts.map +1 -1
  43. package/dist/lib/remote.js +163 -28
  44. package/dist/lib/remote.js.map +1 -1
  45. package/dist/lib/remoteWizard.d.ts.map +1 -1
  46. package/dist/lib/remoteWizard.js +13 -17
  47. package/dist/lib/remoteWizard.js.map +1 -1
  48. package/dist/lib/setup/sections/ides.d.ts +20 -0
  49. package/dist/lib/setup/sections/ides.d.ts.map +1 -0
  50. package/dist/lib/setup/sections/ides.js +124 -0
  51. package/dist/lib/setup/sections/ides.js.map +1 -0
  52. package/dist/lib/setup/sections/preferences.d.ts +30 -0
  53. package/dist/lib/setup/sections/preferences.d.ts.map +1 -0
  54. package/dist/lib/setup/sections/preferences.js +128 -0
  55. package/dist/lib/setup/sections/preferences.js.map +1 -0
  56. package/dist/lib/setup/sections/routing.d.ts +21 -0
  57. package/dist/lib/setup/sections/routing.d.ts.map +1 -0
  58. package/dist/lib/setup/sections/routing.js +160 -0
  59. package/dist/lib/setup/sections/routing.js.map +1 -0
  60. package/dist/lib/setup/summary.d.ts +42 -0
  61. package/dist/lib/setup/summary.d.ts.map +1 -0
  62. package/dist/lib/setup/summary.js +206 -0
  63. package/dist/lib/setup/summary.js.map +1 -0
  64. package/dist/lib/timeline.d.ts +7 -0
  65. package/dist/lib/timeline.d.ts.map +1 -1
  66. package/dist/lib/timeline.js +19 -5
  67. package/dist/lib/timeline.js.map +1 -1
  68. package/dist/lib/upgrade.d.ts +38 -0
  69. package/dist/lib/upgrade.d.ts.map +1 -0
  70. package/dist/lib/upgrade.js +61 -0
  71. package/dist/lib/upgrade.js.map +1 -0
  72. package/package.json +1 -1
package/dist/lib/db.js CHANGED
@@ -400,6 +400,43 @@ export class GnosysDB {
400
400
  // reopen failed — leave unavailable; caller surfaces error
401
401
  }
402
402
  }
403
+ /**
404
+ * Execute a DB operation with automatic recovery from stale-handle errors.
405
+ *
406
+ * SQLITE_CORRUPT ("database disk image is malformed") can happen when a
407
+ * long-lived handle (e.g. an MCP server process) sees stale pages after
408
+ * concurrent writes from another process (`gnosys setup`, sync layer, etc.)
409
+ * truncated the WAL or rolled the schema. The DB file itself is fine —
410
+ * just our cached page view is out of date.
411
+ *
412
+ * Strategy: catch the error, close + reopen the handle, retry once. If it
413
+ * still fails after reopen, rethrow — that's a real corruption case.
414
+ *
415
+ * Used internally by write methods that the MCP server calls long-term.
416
+ * Read methods are also wrapped because reads against stale pages can
417
+ * surface the same error.
418
+ */
419
+ withRecovery(fn) {
420
+ try {
421
+ return fn();
422
+ }
423
+ catch (err) {
424
+ const errAny = err;
425
+ const isCorrupt = errAny?.code === "SQLITE_CORRUPT" ||
426
+ /database disk image is malformed/i.test(errAny?.message ?? "");
427
+ if (!isCorrupt)
428
+ throw err;
429
+ // One-shot recovery: reopen and retry. If the reopen itself fails or
430
+ // the retry surfaces the same error, that's a real corruption case —
431
+ // surface it loudly.
432
+ this.reopen();
433
+ if (!this.available) {
434
+ throw new Error("Gnosys DB unrecoverable after reopen. The underlying file may be corrupted. " +
435
+ "Run 'gnosys doctor' for diagnostics; restore from a backup if needed.");
436
+ }
437
+ return fn();
438
+ }
439
+ }
403
440
  /**
404
441
  * Restore from a backup file. Closes current DB, copies backup over, re-opens.
405
442
  */
@@ -511,25 +548,51 @@ export class GnosysDB {
511
548
  }
512
549
  // ─── Memory CRUD ────────────────────────────────────────────────────
513
550
  insertMemory(mem) {
514
- const stmt = this.db.prepare(`
515
- INSERT OR REPLACE INTO memories
516
- (id, title, category, content, summary, tags, relevance, author, authority,
517
- confidence, reinforcement_count, content_hash, status, tier, supersedes,
518
- superseded_by, last_reinforced, created, modified, embedding, source_path,
519
- source_file, source_page, source_timerange,
520
- project_id, scope)
521
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
522
- `);
523
- stmt.run(mem.id, mem.title, mem.category, mem.content, mem.summary || null, mem.tags, mem.relevance, mem.author, mem.authority, mem.confidence, mem.reinforcement_count, mem.content_hash, mem.status, mem.tier, mem.supersedes || null, mem.superseded_by || null, mem.last_reinforced || null, mem.created, mem.modified, mem.embedding || null, mem.source_path || null, mem.source_file || null, mem.source_page || null, mem.source_timerange || null, mem.project_id || null, mem.scope || "project");
551
+ return this.withRecovery(() => {
552
+ const stmt = this.db.prepare(`
553
+ INSERT OR REPLACE INTO memories
554
+ (id, title, category, content, summary, tags, relevance, author, authority,
555
+ confidence, reinforcement_count, content_hash, status, tier, supersedes,
556
+ superseded_by, last_reinforced, created, modified, embedding, source_path,
557
+ source_file, source_page, source_timerange,
558
+ project_id, scope)
559
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
560
+ `);
561
+ stmt.run(mem.id, mem.title, mem.category, mem.content, mem.summary || null, mem.tags, mem.relevance, mem.author, mem.authority, mem.confidence, mem.reinforcement_count, mem.content_hash, mem.status, mem.tier, mem.supersedes || null, mem.superseded_by || null, mem.last_reinforced || null, mem.created, mem.modified, mem.embedding || null, mem.source_path || null, mem.source_file || null, mem.source_page || null, mem.source_timerange || null, mem.project_id || null, mem.scope || "project");
562
+ });
524
563
  }
525
564
  getMemory(id) {
526
- return this.db.prepare("SELECT * FROM memories WHERE id = ?").get(id) || null;
565
+ return this.withRecovery(() => this.db.prepare("SELECT * FROM memories WHERE id = ?").get(id) || null);
527
566
  }
528
567
  getActiveMemories() {
529
- return this.db.prepare("SELECT * FROM memories WHERE tier = 'active' AND status = 'active'").all();
568
+ return this.withRecovery(() => this.db.prepare("SELECT * FROM memories WHERE tier = 'active' AND status = 'active'").all());
530
569
  }
531
570
  getAllMemories() {
532
- return this.db.prepare("SELECT * FROM memories").all();
571
+ return this.withRecovery(() => this.db.prepare("SELECT * FROM memories").all());
572
+ }
573
+ /**
574
+ * Cheap variant: just id + modified, in one shot. Used by remote sync status
575
+ * to compute pending push/pull counts without paying for full row hydration
576
+ * over SMB. Returns rows changed strictly after `sinceIso`.
577
+ */
578
+ getIdsModifiedSince(sinceIso) {
579
+ return this.withRecovery(() => this.db
580
+ .prepare("SELECT id, modified FROM memories WHERE modified > ? OR created > ?")
581
+ .all(sinceIso, sinceIso));
582
+ }
583
+ /**
584
+ * Configure a one-shot SQLite busy_timeout (in milliseconds) on this
585
+ * connection. Default at open time is 10s; for short-deadline operations
586
+ * like `gnosys status --remote` we drop it to ~3s so a held write lock on
587
+ * the NAS fails fast with SQLITE_BUSY instead of hanging the CLI.
588
+ *
589
+ * The caller should restore the prior value with `setBusyTimeout(10000)`
590
+ * once the deadline-bounded operation is done.
591
+ */
592
+ setBusyTimeout(ms) {
593
+ if (!this.db)
594
+ return;
595
+ this.db.pragma(`busy_timeout = ${Math.max(0, Math.floor(ms))}`);
533
596
  }
534
597
  getMemoriesByTier(tier) {
535
598
  return this.db.prepare("SELECT * FROM memories WHERE tier = ?").all(tier);
@@ -662,20 +725,22 @@ export class GnosysDB {
662
725
  }
663
726
  // ─── Project Identity (v3.0) ──────────────────────────────────────
664
727
  insertProject(project) {
665
- this.db.prepare(`
666
- INSERT OR REPLACE INTO projects
667
- (id, name, working_directory, user, agent_rules_target, obsidian_vault, created, modified)
668
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)
669
- `).run(project.id, project.name, project.working_directory, project.user, project.agent_rules_target || null, project.obsidian_vault || null, project.created, project.modified);
728
+ return this.withRecovery(() => {
729
+ this.db.prepare(`
730
+ INSERT OR REPLACE INTO projects
731
+ (id, name, working_directory, user, agent_rules_target, obsidian_vault, created, modified)
732
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
733
+ `).run(project.id, project.name, project.working_directory, project.user, project.agent_rules_target || null, project.obsidian_vault || null, project.created, project.modified);
734
+ });
670
735
  }
671
736
  getProject(id) {
672
- return this.db.prepare("SELECT * FROM projects WHERE id = ?").get(id) || null;
737
+ return this.withRecovery(() => this.db.prepare("SELECT * FROM projects WHERE id = ?").get(id) || null);
673
738
  }
674
739
  getProjectByDirectory(dir) {
675
- return this.db.prepare("SELECT * FROM projects WHERE working_directory = ?").get(dir) || null;
740
+ return this.withRecovery(() => this.db.prepare("SELECT * FROM projects WHERE working_directory = ?").get(dir) || null);
676
741
  }
677
742
  getAllProjects() {
678
- return this.db.prepare("SELECT * FROM projects ORDER BY name").all();
743
+ return this.withRecovery(() => this.db.prepare("SELECT * FROM projects ORDER BY name").all());
679
744
  }
680
745
  updateProject(id, updates) {
681
746
  const fields = [];
@@ -756,25 +821,25 @@ export class GnosysDB {
756
821
  const safeQuery = query.replace(/['"]/g, "").trim();
757
822
  if (!safeQuery)
758
823
  return [];
824
+ // v5.7.1 (#14): join `memories` so callers can render project-prefixed IDs.
825
+ const select = `
826
+ SELECT m.id AS id, m.title AS title, m.relevance AS relevance, fts.rank AS rank, m.project_id AS project_id
827
+ FROM memories_fts fts
828
+ JOIN memories m ON m.id = fts.id
829
+ WHERE memories_fts MATCH ?
830
+ ORDER BY fts.rank
831
+ LIMIT ?
832
+ `;
759
833
  try {
760
834
  const colQuery = `{relevance title tags} : ${safeQuery}`;
761
- const results = this.db.prepare(`
762
- SELECT id, title, relevance, rank
763
- FROM memories_fts WHERE memories_fts MATCH ? ORDER BY rank LIMIT ?
764
- `).all(colQuery, limit);
835
+ const results = this.db.prepare(select).all(colQuery, limit);
765
836
  if (results.length > 0)
766
837
  return results;
767
- return this.db.prepare(`
768
- SELECT id, title, relevance, rank
769
- FROM memories_fts WHERE memories_fts MATCH ? ORDER BY rank LIMIT ?
770
- `).all(safeQuery, limit);
838
+ return this.db.prepare(select).all(safeQuery, limit);
771
839
  }
772
840
  catch {
773
841
  try {
774
- return this.db.prepare(`
775
- SELECT id, title, relevance, rank
776
- FROM memories_fts WHERE memories_fts MATCH ? ORDER BY rank LIMIT ?
777
- `).all(safeQuery, limit);
842
+ return this.db.prepare(select).all(safeQuery, limit);
778
843
  }
779
844
  catch {
780
845
  return [];
@@ -813,13 +878,64 @@ export class GnosysDB {
813
878
  }
814
879
  // ─── Audit ──────────────────────────────────────────────────────────
815
880
  logAudit(entry) {
816
- this.db.prepare(`
817
- INSERT INTO audit_log (timestamp, operation, memory_id, details, duration_ms, trace_id)
818
- VALUES (?, ?, ?, ?, ?, ?)
819
- `).run(entry.timestamp, entry.operation, entry.memory_id, entry.details, entry.duration_ms, entry.trace_id);
881
+ return this.withRecovery(() => {
882
+ this.db.prepare(`
883
+ INSERT INTO audit_log (timestamp, operation, memory_id, details, duration_ms, trace_id)
884
+ VALUES (?, ?, ?, ?, ?, ?)
885
+ `).run(entry.timestamp, entry.operation, entry.memory_id, entry.details, entry.duration_ms, entry.trace_id);
886
+ });
820
887
  }
821
888
  getAuditLog(memoryId, limit = 20) {
822
- return this.db.prepare("SELECT * FROM audit_log WHERE memory_id = ? ORDER BY timestamp DESC LIMIT ?").all(memoryId, limit);
889
+ return this.withRecovery(() => this.db.prepare("SELECT * FROM audit_log WHERE memory_id = ? ORDER BY timestamp DESC LIMIT ?").all(memoryId, limit));
890
+ }
891
+ /**
892
+ * Get audit entries newer than a given timestamp. Used by remote sync to
893
+ * push/pull audit_log incrementally. Returns oldest-first so order is
894
+ * preserved across machines.
895
+ */
896
+ getAuditEntriesAfter(sinceIso, limit) {
897
+ return this.withRecovery(() => {
898
+ const cap = limit ? ` LIMIT ${Math.max(1, Math.floor(limit))}` : "";
899
+ return this.db
900
+ .prepare(`SELECT * FROM audit_log WHERE timestamp > ? ORDER BY timestamp ASC${cap}`)
901
+ .all(sinceIso);
902
+ });
903
+ }
904
+ /**
905
+ * Get the most recent audit timestamp seen in this DB. Used as a high-water
906
+ * mark for sync: "push entries newer than the most recent timestamp the
907
+ * remote has already seen". Returns null when the table is empty.
908
+ */
909
+ getLatestAuditTimestamp() {
910
+ return this.withRecovery(() => {
911
+ const row = this.db
912
+ .prepare("SELECT timestamp FROM audit_log ORDER BY timestamp DESC LIMIT 1")
913
+ .get();
914
+ return row?.timestamp ?? null;
915
+ });
916
+ }
917
+ /**
918
+ * Query audit entries with optional filters. Returns newest first.
919
+ * Used by `gnosys audit` and `gnosys doctor` reports.
920
+ */
921
+ queryAuditLog(opts = {}) {
922
+ return this.withRecovery(() => {
923
+ const conditions = [];
924
+ const params = [];
925
+ if (opts.sinceIso) {
926
+ conditions.push("timestamp >= ?");
927
+ params.push(opts.sinceIso);
928
+ }
929
+ if (opts.operation) {
930
+ conditions.push("operation = ?");
931
+ params.push(opts.operation);
932
+ }
933
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
934
+ const limit = opts.limit ? ` LIMIT ${Math.max(1, Math.floor(opts.limit))}` : "";
935
+ return this.db
936
+ .prepare(`SELECT * FROM audit_log ${where} ORDER BY timestamp DESC${limit}`)
937
+ .all(...params);
938
+ });
823
939
  }
824
940
  // ─── Embeddings ─────────────────────────────────────────────────────
825
941
  updateEmbedding(id, embedding) {
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/lib/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/lib/db.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,4DAA4D;AAC5D,8DAA8D;AAC9D,IAAI,QAAQ,GAAQ,IAAI,CAAC;AACzB,IAAI,CAAC;IACH,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC;AAAC,MAAM,CAAC;IACP,sDAAsD;AACxD,CAAC;AAED,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAqF7B,2EAA2E;AAE3E,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIlB,CAAC;AAEF,gFAAgF;AAChF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;CAiBxB,CAAC;AAEF,4EAA4E;AAE5E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW;IAC9D,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,qBAAqB,EAAE,cAAc;IAC1E,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB;IAClE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa;IACjD,aAAa,EAAE,aAAa,EAAE,kBAAkB;IAChD,YAAY,EAAE,OAAO;CACtB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,oBAAoB;IACzD,gBAAgB,EAAE,SAAS,EAAE,UAAU;CACxC,CAAC,CAAC;AAEH,2EAA2E;AAE3E,SAAS,KAAK,CAAC,GAAW;IACxB,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,2EAA2E;AAE3E,MAAM,OAAO,QAAQ;IACnB,8DAA8D;IACtD,EAAE,GAAQ,IAAI,CAAC;IACf,SAAS,CAAS;IAClB,SAAS,GAAG,KAAK,CAAC;IAClB,UAAU,CAAS;IAE3B;;;;OAIG;IACH,MAAM,CAAC,aAAa;QAClB,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,8EAA8E;IAC9E,MAAM,CAAC,eAAe;QACpB,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB;QACrB,OAAO,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,EAAE,CAAC;YAC1C,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAErC,oEAAoE;QACpE,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1B,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kEAAkE;YAClE,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,sEAAsE;QACtE,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACxD,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,uEAAuE;YACvE,qEAAqE;YACrE,6DAA6D;YAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+BAA+B,UAAU,wBAAwB,CAClE,CAAC;YACF,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,uEAAuE;QACvE,uCAAuC;QACvC,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS;QACd,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QACrC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY,SAAiB,EAAE,IAAkD;QAC/E,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,UAAU,GAAG,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,EAAE,YAAY,IAAI,GAAG,CAAC;QAE7C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACxC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACpC,+CAA+C;gBAC/C,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACvC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,OAAO,CAAC,UAAU;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;gBACf,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACzB,0DAA0D;oBAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,UAAU,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC7D,CAAC;gBACD,qDAAqD;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,SAAkB;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACxC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,SAAS,KAAK,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAY;QACnC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,CAAC;QAC7C,OAAO,CACL,IAAI,KAAK,gBAAgB;YACzB,IAAI,KAAK,eAAe;YACxB,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7C,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CACpC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,8BAA8B;QACnC,OAAO;YACL,mCAAmC;YACnC,EAAE;YACF,iBAAiB;YACjB,gEAAgE;YAChE,8BAA8B;YAC9B,uEAAuE;YACvE,sDAAsD;YACtD,0DAA0D;YAC1D,sFAAsF;YACtF,0DAA0D;YAC1D,4DAA4D;YAC5D,gFAAgF;YAChF,+BAA+B;YAC/B,2BAA2B;SAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,YAAY,CAAI,EAAW;QACjC,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAA0C,CAAC;YAC1D,MAAM,SAAS,GACb,MAAM,EAAE,IAAI,KAAK,gBAAgB;gBACjC,mCAAmC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,SAAS;gBAAE,MAAM,GAAG,CAAC;YAE1B,qEAAqE;YACrE,qEAAqE;YACrE,qBAAqB;YACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CACb,8EAA8E;oBAC9E,uEAAuE,CACxE,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,UAAkB,EAAE,SAAkB;QACnD,MAAM,GAAG,GAAG,SAAS,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE/C,8BAA8B;QAC9B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,mBAAmB;QACnB,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAExC,UAAU;QACV,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEO,WAAW;QACjB,oBAAoB;QACpB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEzB,0DAA0D;QAC1D,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QAED,oEAAoE;QACpE,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAW,CAAC;QAClF,IAAI,cAAc,GAAG,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,WAAmB;QACvC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,wDAAwD;YACxD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;YAC/E,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;YAED,iCAAiC;YACjC,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;gBAC3F,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YACnF,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;SAWZ,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,0BAA0B;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,qDAAqD;YACrD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACnE,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACnE,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,+BAA+B;YACjC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,uEAAuE;IAEvE,YAAY,CAAC,GAAiN;QAC5N,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;OAQ5B,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CACN,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI,EACjE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAClD,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,YAAY,EACzD,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI,EAC5C,GAAG,CAAC,aAAa,IAAI,IAAI,EAAE,GAAG,CAAC,eAAe,IAAI,IAAI,EACtD,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI,EACzE,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,GAAG,CAAC,gBAAgB,IAAI,IAAI,EAC9E,GAAG,CAAC,UAAU,IAAI,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,SAAS,CAC/C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAc,IAAI,IAAI,CACrF,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,EAAgB,CAC1G,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,GAAG,EAAgB,CAAC,CAAC;IAChG,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,qEAAqE,CAAC;aAC9E,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAA4C,CACtE,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAU;QACvB,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QACrB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAe,CAAC;IAC1F,CAAC;IAED,qBAAqB,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAe,CAAC;IACtH,CAAC;IAED,4BAA4B,CAAC,GAAa;QACxC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN,mDAAmD,YAAY,sBAAsB,YAAY,GAAG,CACrG;aACA,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAqB,CAAC;IAC7C,CAAC;IAED,wBAAwB,CAAC,SAAiB;QACxC,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CACN,uGAAuG,CACxG;aACA,GAAG,CAAC,SAAS,CAAmB,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,OAA0B;QACjD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAc,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,GAAG,KAAK,IAAI;gBAAE,SAAS;YAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACvC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,GAAG,GAAG,uBAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;QAEpE,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,2EAA2E;YAC3E,oEAAoE;YACpE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACvD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAEpC,mBAAmB;YACnB,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;SAOZ,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;QACH,CAAC;QAED,2FAA2F;QAC3F,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAyB,CAAC;QACtG,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,OAAO,CACb,+GAA+G,CAChH,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACjH,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,2EAA2E;QAC3E,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,uDAAuD;YACvD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACvD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7D,mBAAmB;YACnB,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;SAKZ,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,2CAA2C;YAC7C,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;IACH,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,EAAsB,CAAC,GAAG,CAAC;QAC5H,MAAM,QAAQ,GAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,EAAsB,CAAC,GAAG,CAAC;QAC/H,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC;IACxD,CAAC;IAED,aAAa;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gFAAgF,CAAC,CAAC,GAAG,EAA4B,CAAC;QAC/I,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,uEAAuE;IAEvE;;OAEG;IACH,oBAAoB,CAAC,SAAiB,EAAE,eAAe,GAAG,KAAK;QAC7D,MAAM,GAAG,GAAG,eAAe;YACzB,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,uFAAuF,CAAC;QAC5F,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAe,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAkB;QACnC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CACpB,kFAAkF,CACnF,CAAC,GAAG,CAAC,KAAK,CAAe,CAAC;IAC7B,CAAC;IAED,qEAAqE;IAErE,aAAa,CAAC,OAAkB;QAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAIf,CAAC,CAAC,GAAG,CACJ,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,IAAI,EACjE,OAAO,CAAC,kBAAkB,IAAI,IAAI,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI,EAClE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAClC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAe,IAAI,IAAI,CACtF,CAAC;IACJ,CAAC;IAED,qBAAqB,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC3B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oDAAoD,CAAC,CAAC,GAAG,CAAC,GAAG,CAAe,IAAI,IAAI,CACtG,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAiB,CAC7E,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,OAA2B;QACnD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,IAAI,GAAG,KAAK,IAAI;gBAAE,SAAS;YAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACxC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uBAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,aAAqB,EAAE,WAAmB;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE;aACnB,OAAO,CAAC,yDAAyD,CAAC;aAClE,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,6DAA6D;IAC7D,SAAS,CAAC,QAAgB,EAAE,SAAkB;QAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;IAC/B,CAAC;IAED,uEAAuE;IAEvE,SAAS,CAAC,KAAa,EAAE,QAAgB,EAAE;QACzC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;OAQtB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;YACvC,MAAM,OAAO,GAAG,IAAI,SAAS,GAAG,CAAC;YACjC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAItB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,WAAW,CACT,KAAa,EACb,QAAgB,EAAE;QAElB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAE1B,4EAA4E;QAC5E,MAAM,MAAM,GAAG;;;;;;;KAOd,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,4BAA4B,SAAS,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAEzD,CAAC;YACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,OAAO,CAAC;YAEvC,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAEjD,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAEjD,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IAEvE,kBAAkB,CAAC,GAAmB;QACpC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAGf,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;IAED,oBAAoB,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAqB,CAAC;IACxG,CAAC;IAED,kBAAkB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAqB,CAAC;IACxG,CAAC;IAED,uEAAuE;IAEvE,aAAa,CAAC,OAAkB;QAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;KAOf,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/H,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,QAAgB;QACxC,OAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAe,IAAI,IAAI,CAAC;IAClI,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,GAAG,EAAiB,CAAC;IACzE,CAAC;IAED,uEAAuE;IAEvE,QAAQ,CAAC,KAA+B;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGf,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,QAAgB,EAAE;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CACb,6EAA6E,CAC9E,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAmB,CACzC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,QAAgB,EAAE,KAAc;QACnD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC,EAAE;iBACX,OAAO,CAAC,qEAAqE,GAAG,EAAE,CAAC;iBACnF,GAAG,CAAC,QAAQ,CAAmB,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;iBAChB,OAAO,CAAC,iEAAiE,CAAC;iBAC1E,GAAG,EAAuC,CAAC;YAC9C,OAAO,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAkE,EAAE;QAChF,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;YAC5B,MAAM,UAAU,GAAa,EAAE,CAAC;YAChC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;YACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,OAAO,IAAI,CAAC,EAAE;iBACX,OAAO,CAAC,2BAA2B,KAAK,2BAA2B,KAAK,EAAE,CAAC;iBAC3E,GAAG,CAAC,GAAG,MAAM,CAAmB,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uEAAuE;IAEvE,eAAe,CAAC,EAAU,EAAE,SAAiB;QAC3C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,EAAE,CAA6C,CAAC;QAC/H,OAAO,GAAG,EAAE,SAAS,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,EAA8C,CAAC;IAC7I,CAAC;IAED,iBAAiB;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC,GAAG,EAAqB,CAAC;QACzH,OAAO,GAAG,CAAC,GAAG,CAAC;IACjB,CAAC;IAED,uEAAuE;IAEvE,8DAA8D;IAC9D,WAAW,CAAI,EAAW;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,sEAAsE;IAEtE,OAAO,CAAC,GAAW;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAkC,CAAC;YACrH,OAAO,GAAG,EAAE,KAAK,IAAI,IAAI,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC,mCAAmC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,KAAa;QAChC,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CACb,kJAAkJ,CACnJ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,4CAA4C;YAC5C,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,2GAA2G,CAAC,CAAC;gBAC1H,IAAI,CAAC,EAAE,CAAC,OAAO,CACb,kJAAkJ,CACnJ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,uEAAuE;IAEvE;;;;OAIG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC1C,CAAC;IAED,4CAA4C;IAC5C,iBAAiB,CAAC,SAAiB;QACjC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,sDAAsD;IACtD,mBAAmB;QACjB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,2BAA2B;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACrD,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,0CAA0C;IAC1C,iCAAiC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IACvE,6BAA6B;QAC3B,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,QAAgB,EAAE,EAAE,OAAsD,EAAE;QAM7F,MAAM,KAAK,GAAa,CAAC,8BAA8B,CAAC,CAAC;QACzD,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN,+DAA+D,KAAK,kCAAkC,CACvG;aACA,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAqF,CAAC;QAE7G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,IAAI,MAAM,GAA4B,EAAE,CAAC;YACzC,IAAI,CAAC;gBAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YACpF,OAAO;gBACL,OAAO,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC9E,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,UAAU,EAAE,CAAC,CAAC,WAAW;gBACzB,OAAO,EAAE,MAAM;aAChB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBACtB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAkC,CAAC;gBAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kFAAkF;IAClF,yBAAyB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC3C,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACpB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAC;YACpD,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;gBAClC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IAEvE,sDAAsD;IACtD,kBAAkB,CAAC,QAAgB,EAAE,SAAuC;QAC1E,IAAI,CAAC,EAAE,CAAC,OAAO,CACb,6EAA6E,CAC9E,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CACpB,8GAA8G,CAC/G,CAAC,GAAG,EAAoF,CAAC;IAC5F,CAAC;IAED,uBAAuB,CAAC,EAAU;QAChC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,mBAAmB,CAAC,UAAkB,EAAE;QACtC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC5B,oEAAoE,CACrE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACd,OAAO,MAAM,CAAC,OAAiB,CAAC;IAClC,CAAC;IAED,kDAAkD;IAClD,cAAc,CAAC,QAAgB,EAAE,aAAqB,EAAE,cAAsB,EAAE,aAAsB,EAAE,cAAuB;QAC7H,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;KAUf,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,IAAI,IAAI,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC;IAC3H,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CACpB,2KAA2K,CAC5K,CAAC,GAAG,EAAuK,CAAC;IAC/K,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrG,CAAC;IAED,uEAAuE;IAEvE,KAAK;QACH,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,uEAAuE;IAEvE,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAClC,MAAM,KAAK,GAAI,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,GAAG,EAAsB,CAAC,GAAG,CAAC;QACrG,OAAO,KAAK,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAW,CAAC;IACpE,CAAC;CACF;AAED,yEAAyE;AAEzE,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Heartbeat — always-on liveness indicator for long-running CLI ops.
3
+ *
4
+ * Behaviour:
5
+ * - TTY-only. In pipes, CI logs, or non-interactive shells it stays silent
6
+ * so log output is not polluted with control codes.
7
+ * - 500ms grace period before showing anything. Fast operations leave no trace.
8
+ * - Animated spinner + elapsed seconds, repainted in place with `\r`.
9
+ * - Safe to start/stop repeatedly. `stop()` clears the line completely.
10
+ *
11
+ * Wire into commands that can block on I/O:
12
+ * status / sync / reindex / bootstrap / import / migrate-db / dream / doctor.
13
+ */
14
+ export interface Heartbeat {
15
+ /** Update the message shown next to the spinner. Safe to call repeatedly. */
16
+ setMessage(msg: string): void;
17
+ /** Stop the spinner and clear the line. */
18
+ stop(): void;
19
+ }
20
+ /**
21
+ * Start a heartbeat. Returns a handle with `setMessage` and `stop`.
22
+ *
23
+ * In non-TTY contexts (pipes, CI), returns a no-op handle.
24
+ */
25
+ export declare function startHeartbeat(message: string): Heartbeat;
26
+ /**
27
+ * Run an async function with a heartbeat wrapped around it. The heartbeat
28
+ * is always stopped, even on error.
29
+ */
30
+ export declare function withHeartbeat<T>(message: string, fn: () => Promise<T>): Promise<T>;
31
+ //# sourceMappingURL=heartbeat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/lib/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,WAAW,SAAS;IACxB,6EAA6E;IAC7E,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2CAA2C;IAC3C,IAAI,IAAI,IAAI,CAAC;CACd;AA4BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAsCzD;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,CAAC,EACnC,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Heartbeat — always-on liveness indicator for long-running CLI ops.
3
+ *
4
+ * Behaviour:
5
+ * - TTY-only. In pipes, CI logs, or non-interactive shells it stays silent
6
+ * so log output is not polluted with control codes.
7
+ * - 500ms grace period before showing anything. Fast operations leave no trace.
8
+ * - Animated spinner + elapsed seconds, repainted in place with `\r`.
9
+ * - Safe to start/stop repeatedly. `stop()` clears the line completely.
10
+ *
11
+ * Wire into commands that can block on I/O:
12
+ * status / sync / reindex / bootstrap / import / migrate-db / dream / doctor.
13
+ */
14
+ const FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
15
+ const FRAME_MS = 80;
16
+ const GRACE_MS = 500;
17
+ function isTty() {
18
+ return Boolean(process.stderr.isTTY);
19
+ }
20
+ function clearLine() {
21
+ process.stderr.write("\r\x1b[2K");
22
+ }
23
+ function paint(state) {
24
+ if (state.stopped)
25
+ return;
26
+ const elapsed = ((Date.now() - state.started) / 1000).toFixed(1);
27
+ const frame = FRAMES[state.frameIdx % FRAMES.length];
28
+ state.frameIdx++;
29
+ process.stderr.write(`\r${frame} ${state.message} (${elapsed}s)`);
30
+ }
31
+ /**
32
+ * Start a heartbeat. Returns a handle with `setMessage` and `stop`.
33
+ *
34
+ * In non-TTY contexts (pipes, CI), returns a no-op handle.
35
+ */
36
+ export function startHeartbeat(message) {
37
+ if (!isTty()) {
38
+ return {
39
+ setMessage: () => { },
40
+ stop: () => { },
41
+ };
42
+ }
43
+ const state = {
44
+ message,
45
+ stopped: false,
46
+ paintTimer: null,
47
+ graceTimer: null,
48
+ frameIdx: 0,
49
+ started: Date.now(),
50
+ visible: false,
51
+ };
52
+ state.graceTimer = setTimeout(() => {
53
+ if (state.stopped)
54
+ return;
55
+ state.visible = true;
56
+ paint(state);
57
+ state.paintTimer = setInterval(() => paint(state), FRAME_MS);
58
+ }, GRACE_MS);
59
+ return {
60
+ setMessage(msg) {
61
+ state.message = msg;
62
+ if (state.visible && !state.stopped)
63
+ paint(state);
64
+ },
65
+ stop() {
66
+ if (state.stopped)
67
+ return;
68
+ state.stopped = true;
69
+ if (state.graceTimer)
70
+ clearTimeout(state.graceTimer);
71
+ if (state.paintTimer)
72
+ clearInterval(state.paintTimer);
73
+ if (state.visible)
74
+ clearLine();
75
+ },
76
+ };
77
+ }
78
+ /**
79
+ * Run an async function with a heartbeat wrapped around it. The heartbeat
80
+ * is always stopped, even on error.
81
+ */
82
+ export async function withHeartbeat(message, fn) {
83
+ const hb = startHeartbeat(message);
84
+ try {
85
+ return await fn();
86
+ }
87
+ finally {
88
+ hb.stop();
89
+ }
90
+ }
91
+ //# sourceMappingURL=heartbeat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../src/lib/heartbeat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAClE,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,QAAQ,GAAG,GAAG,CAAC;AAmBrB,SAAS,KAAK;IACZ,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,KAAK,CAAC,KAAY;IACzB,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO;IAC1B,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC;AACpE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACb,OAAO;YACL,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;YACpB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAU;QACnB,OAAO;QACP,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,OAAO,EAAE,KAAK;KACf,CAAC;IAEF,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;QACjC,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEb,OAAO;QACL,UAAU,CAAC,GAAW;YACpB,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,IAAI;YACF,IAAI,KAAK,CAAC,OAAO;gBAAE,OAAO;YAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,IAAI,KAAK,CAAC,UAAU;gBAAE,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,UAAU;gBAAE,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,KAAK,CAAC,OAAO;gBAAE,SAAS,EAAE,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,EAAoB;IAEpB,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * idFormat — single place that renders memory IDs for the user.
3
+ *
4
+ * v5.7.1 (#14) — display-layer project prefix.
5
+ *
6
+ * Storage stays unchanged: `deci-01HXXJK2…`. Only the *rendered* citation
7
+ * adds the project name. Rationale (see road-009 #14):
8
+ * - Project renames don't break IDs.
9
+ * - No multi-user collisions (storage keys remain globally unique ULIDs).
10
+ * - No breaking schema change.
11
+ *
12
+ * Three formats:
13
+ * - `raw` : `deci-01HXXJK2ABCDEFGHIJK` (no project, full ULID)
14
+ * - `short` : `gnosys-ai · deci-01HXXJK2…` (project + truncated)
15
+ * - `long` : `gnosys-ai · deci-01HXXJK2ABCDEFG…` (project + full ULID)
16
+ *
17
+ * `short` is the default — short-enough for grep, long-enough to be unique
18
+ * across one project. Users who script against IDs should pass `--id-format raw`.
19
+ */
20
+ import type { GnosysDB } from "./db.js";
21
+ export type IdFormat = "short" | "long" | "raw";
22
+ /**
23
+ * Format a single memory ID for display.
24
+ *
25
+ * `projectName` may be undefined/null when the memory is global or personal
26
+ * scoped, or when lookup failed. In that case the project segment is omitted.
27
+ */
28
+ export declare function formatMemoryId(id: string, projectName: string | null | undefined, format?: IdFormat): string;
29
+ /**
30
+ * Build a single-shot {project_id → project_name} lookup map.
31
+ *
32
+ * Cheap — one SELECT for the projects table, which is small. Use this when
33
+ * formatting many IDs in a list/print loop so we don't hit the DB once per row.
34
+ */
35
+ export declare function buildProjectNameLookup(db: GnosysDB): Map<string, string>;
36
+ /**
37
+ * Parse `--id-format` value, defaulting to `short`. Throws nothing — returns
38
+ * `short` for unknown inputs so CLI callers don't have to guard.
39
+ */
40
+ export declare function parseIdFormat(value: string | undefined): IdFormat;
41
+ //# sourceMappingURL=idFormat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idFormat.d.ts","sourceRoot":"","sources":["../../src/lib/idFormat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAIhD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,MAAM,GAAE,QAAkB,GACzB,MAAM,CAcR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAGjE"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * idFormat — single place that renders memory IDs for the user.
3
+ *
4
+ * v5.7.1 (#14) — display-layer project prefix.
5
+ *
6
+ * Storage stays unchanged: `deci-01HXXJK2…`. Only the *rendered* citation
7
+ * adds the project name. Rationale (see road-009 #14):
8
+ * - Project renames don't break IDs.
9
+ * - No multi-user collisions (storage keys remain globally unique ULIDs).
10
+ * - No breaking schema change.
11
+ *
12
+ * Three formats:
13
+ * - `raw` : `deci-01HXXJK2ABCDEFGHIJK` (no project, full ULID)
14
+ * - `short` : `gnosys-ai · deci-01HXXJK2…` (project + truncated)
15
+ * - `long` : `gnosys-ai · deci-01HXXJK2ABCDEFG…` (project + full ULID)
16
+ *
17
+ * `short` is the default — short-enough for grep, long-enough to be unique
18
+ * across one project. Users who script against IDs should pass `--id-format raw`.
19
+ */
20
+ const SHORT_ULID_PREFIX = 8;
21
+ /**
22
+ * Format a single memory ID for display.
23
+ *
24
+ * `projectName` may be undefined/null when the memory is global or personal
25
+ * scoped, or when lookup failed. In that case the project segment is omitted.
26
+ */
27
+ export function formatMemoryId(id, projectName, format = "short") {
28
+ if (format === "raw")
29
+ return id;
30
+ let renderedId = id;
31
+ if (format === "short") {
32
+ // Truncate the ULID portion (after `prefix-`) to its first N chars + "…"
33
+ const dashIdx = id.indexOf("-");
34
+ if (dashIdx > 0 && id.length > dashIdx + 1 + SHORT_ULID_PREFIX) {
35
+ renderedId = `${id.slice(0, dashIdx + 1 + SHORT_ULID_PREFIX)}…`;
36
+ }
37
+ }
38
+ if (!projectName)
39
+ return renderedId;
40
+ return `${projectName} · ${renderedId}`;
41
+ }
42
+ /**
43
+ * Build a single-shot {project_id → project_name} lookup map.
44
+ *
45
+ * Cheap — one SELECT for the projects table, which is small. Use this when
46
+ * formatting many IDs in a list/print loop so we don't hit the DB once per row.
47
+ */
48
+ export function buildProjectNameLookup(db) {
49
+ const out = new Map();
50
+ const rows = db.getAllProjects();
51
+ for (const r of rows) {
52
+ if (r.id && r.name)
53
+ out.set(r.id, r.name);
54
+ }
55
+ return out;
56
+ }
57
+ /**
58
+ * Parse `--id-format` value, defaulting to `short`. Throws nothing — returns
59
+ * `short` for unknown inputs so CLI callers don't have to guard.
60
+ */
61
+ export function parseIdFormat(value) {
62
+ if (value === "raw" || value === "long" || value === "short")
63
+ return value;
64
+ return "short";
65
+ }
66
+ //# sourceMappingURL=idFormat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idFormat.js","sourceRoot":"","sources":["../../src/lib/idFormat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,EAAU,EACV,WAAsC,EACtC,SAAmB,OAAO;IAE1B,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,EAAE,CAAC;IAEhC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,yEAAyE;QACzE,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,GAAG,iBAAiB,EAAE,CAAC;YAC/D,UAAU,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC;QAClE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW;QAAE,OAAO,UAAU,CAAC;IACpC,OAAO,GAAG,WAAW,MAAM,UAAU,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAY;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,MAAM,IAAI,GAAG,EAAE,CAAC,cAAc,EAAiB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3E,OAAO,OAAO,CAAC;AACjB,CAAC"}