@indigoai-us/hq-cloud 6.18.25 → 6.18.27

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 (46) hide show
  1. package/dist/bin/outpost-session-host.d.ts +1 -0
  2. package/dist/bin/outpost-session-host.d.ts.map +1 -1
  3. package/dist/bin/outpost-session-host.js +3 -2
  4. package/dist/bin/outpost-session-host.js.map +1 -1
  5. package/dist/bin/outpost-session-host.test.js +16 -1
  6. package/dist/bin/outpost-session-host.test.js.map +1 -1
  7. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.js +129 -5
  8. package/dist/bin/sync-runner-delete-snapshot-mixed.bench.test.js.map +1 -1
  9. package/dist/bin/sync-runner.test.js +98 -23
  10. package/dist/bin/sync-runner.test.js.map +1 -1
  11. package/dist/cli/core-source-stamp.d.ts +0 -5
  12. package/dist/cli/core-source-stamp.d.ts.map +1 -1
  13. package/dist/cli/core-source-stamp.js +1 -1
  14. package/dist/cli/core-source-stamp.js.map +1 -1
  15. package/dist/cli/rescue-breaker.test.js +75 -1
  16. package/dist/cli/rescue-breaker.test.js.map +1 -1
  17. package/dist/cli/rescue-core.d.ts +1 -0
  18. package/dist/cli/rescue-core.d.ts.map +1 -1
  19. package/dist/cli/rescue-core.js +57 -9
  20. package/dist/cli/rescue-core.js.map +1 -1
  21. package/dist/hq-root-recovery.d.ts +0 -1
  22. package/dist/hq-root-recovery.d.ts.map +1 -1
  23. package/dist/hq-root-recovery.js +1 -1
  24. package/dist/hq-root-recovery.js.map +1 -1
  25. package/dist/journal-snapshot-memory.test.js +3 -3
  26. package/dist/outposts/client.d.ts.map +1 -1
  27. package/dist/outposts/client.js +4 -1
  28. package/dist/outposts/client.js.map +1 -1
  29. package/dist/outposts/client.test.js +53 -0
  30. package/dist/outposts/client.test.js.map +1 -1
  31. package/dist/outposts/transport.d.ts.map +1 -1
  32. package/dist/outposts/transport.js +18 -1
  33. package/dist/outposts/transport.js.map +1 -1
  34. package/dist/outposts/transport.test.js +89 -0
  35. package/dist/outposts/transport.test.js.map +1 -1
  36. package/dist/session-log-retention.d.ts +0 -10
  37. package/dist/session-log-retention.d.ts.map +1 -1
  38. package/dist/session-log-retention.js +1 -1
  39. package/dist/session-log-retention.js.map +1 -1
  40. package/dist/sync/push-walk-matchers.bench.test.js +92 -42
  41. package/dist/sync/push-walk-matchers.bench.test.js.map +1 -1
  42. package/dist/telemetry.d.ts +0 -14
  43. package/dist/telemetry.d.ts.map +1 -1
  44. package/dist/telemetry.js +2 -2
  45. package/dist/telemetry.js.map +1 -1
  46. package/package.json +2 -2
@@ -3,4 +3,5 @@ import { Command } from "commander";
3
3
  import { type SessionHostCommandDeps } from "../outposts/session-host-command.js";
4
4
  /** The session-host command on its own, parsed from the bin's arguments. */
5
5
  export declare function createOutpostSessionHostProgram(deps: SessionHostCommandDeps): Command;
6
+ export declare function packageVersion(readPackageJson?: (url: URL) => string): string;
6
7
  //# sourceMappingURL=outpost-session-host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outpost-session-host.d.ts","sourceRoot":"","sources":["../../src/bin/outpost-session-host.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG9G,4EAA4E;AAC5E,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAMrF"}
1
+ {"version":3,"file":"outpost-session-host.d.ts","sourceRoot":"","sources":["../../src/bin/outpost-session-host.ts"],"names":[],"mappings":";AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAA8B,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG9G,4EAA4E;AAC5E,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAMrF;AAED,wBAAgB,cAAc,CAC5B,eAAe,GAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAA2C,GACzE,MAAM,CAYR"}
@@ -19,12 +19,13 @@ export function createOutpostSessionHostProgram(deps) {
19
19
  throw new Error("session-host command was not registered");
20
20
  return command.name("hq-outpost-session-host");
21
21
  }
22
- function packageVersion() {
22
+ export function packageVersion(readPackageJson = (url) => readFileSync(url, "utf8")) {
23
23
  try {
24
- const pkg = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf8"));
24
+ const pkg = JSON.parse(readPackageJson(new URL("../../package.json", import.meta.url)));
25
25
  return pkg.version ?? "unknown";
26
26
  }
27
27
  catch {
28
+ console.warn("hq-outpost-session-host: package version unavailable; using unknown.");
28
29
  return "unknown";
29
30
  }
30
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"outpost-session-host.js","sourceRoot":"","sources":["../../src/bin/outpost-session-host.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAA+B,MAAM,qCAAqC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,4EAA4E;AAC5E,MAAM,UAAU,+BAA+B,CAAC,IAA4B;IAC1E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtD,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC;QACrH,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACzD,+BAA+B,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC;SAC3D,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACnD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"outpost-session-host.js","sourceRoot":"","sources":["../../src/bin/outpost-session-host.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,0BAA0B,EAA+B,MAAM,qCAAqC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,4EAA4E;AAC5E,MAAM,UAAU,+BAA+B,CAAC,IAA4B;IAC1E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACtD,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,cAAc,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,kBAAwC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC;IAE1E,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,eAAe,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACxC,CAAC;QAC1B,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CACV,sEAAsE,CACvE,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACzD,+BAA+B,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC;SAC3D,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACnD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { readFileSync } from "node:fs";
7
7
  import { afterEach, describe, expect, it, vi } from "vitest";
8
- import { createOutpostSessionHostProgram } from "./outpost-session-host.js";
8
+ import { createOutpostSessionHostProgram, packageVersion, } from "./outpost-session-host.js";
9
9
  describe("hq-outpost-session-host bin", () => {
10
10
  afterEach(() => {
11
11
  process.exitCode = undefined;
@@ -15,6 +15,21 @@ describe("hq-outpost-session-host bin", () => {
15
15
  const pkg = JSON.parse(readFileSync(new URL("../../package.json", import.meta.url), "utf8"));
16
16
  expect(pkg.bin["hq-outpost-session-host"]).toBe("dist/bin/outpost-session-host.js");
17
17
  });
18
+ it.each([
19
+ {
20
+ label: "read failure",
21
+ readPackageJson: () => {
22
+ throw new Error("private path or error detail");
23
+ },
24
+ },
25
+ { label: "parse failure", readPackageJson: () => "not-json" },
26
+ ])("logs a generic diagnostic and falls back to unknown on $label", ({ readPackageJson }) => {
27
+ const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
28
+ expect(packageVersion(readPackageJson)).toBe("unknown");
29
+ expect(warn).toHaveBeenCalledTimes(1);
30
+ expect(warn).toHaveBeenCalledWith("hq-outpost-session-host: package version unavailable; using unknown.");
31
+ expect(warn.mock.calls.flat().join(" ")).not.toContain("private path");
32
+ });
18
33
  it("runs the session host with the same flags, refusing to start when the box is not signed in", async () => {
19
34
  const errors = [];
20
35
  vi.spyOn(console, "error").mockImplementation((line) => {
@@ -1 +1 @@
1
- {"version":3,"file":"outpost-session-host.test.js","sourceRoot":"","sources":["../../src/bin/outpost-session-host.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAE5E,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC7B,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAE1F,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4FAA4F,EAAE,KAAK,IAAI,EAAE;QAC1G,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAa,EAAE,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,+BAA+B,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QAEnG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAAE;YAC7G,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,OAAO,GAAG,+BAA+B,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;QACnG,OAAO,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC;QAEhD,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"outpost-session-host.test.js","sourceRoot":"","sources":["../../src/bin/outpost-session-host.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as os from "node:os";
3
3
  import * as path from "node:path";
4
- import { performance } from "node:perf_hooks";
4
+ import { monitorEventLoopDelay, performance, PerformanceObserver } from "node:perf_hooks";
5
5
  import { describe, expect, it, vi } from "vitest";
6
6
  import { AreaLedgerMigration, openJournalStateStoreForMigration, PERSONAL_VAULT_JOURNAL_SLUG, readJournal, writeJournal, } from "../journal.js";
7
7
  import { AreaLedger, setAreaLedgerTestHooksForTest } from "../sync/area-ledger.js";
@@ -173,7 +173,35 @@ describe("sync-runner mixed delete capture benchmark", () => {
173
173
  let capturesDone = Promise.resolve();
174
174
  let activeMetrics;
175
175
  let stopEventLoopProbe;
176
+ const gcActivity = [];
177
+ const gcObserver = new PerformanceObserver((list) => {
178
+ for (const entry of list.getEntries()) {
179
+ const detail = entry;
180
+ gcActivity.push({
181
+ kind: detail.detail?.kind ?? null,
182
+ duration: entry.duration,
183
+ startTime: entry.startTime,
184
+ });
185
+ }
186
+ });
187
+ gcObserver.observe({ entryTypes: ["gc"] });
176
188
  const originalReadRows = AreaLedger.prototype.readRows;
189
+ const originalReadCached = AreaLedger.prototype.readCached;
190
+ const readCachedSpy = vi.spyOn(AreaLedger.prototype, "readCached").mockImplementation(function () {
191
+ const metrics = activeMetrics;
192
+ const cpuStart = metrics ? process.cpuUsage() : undefined;
193
+ const startedAt = metrics ? performance.now() : 0;
194
+ try {
195
+ return originalReadCached.call(this);
196
+ }
197
+ finally {
198
+ if (metrics && cpuStart) {
199
+ const cpu = process.cpuUsage(cpuStart);
200
+ metrics.readCachedCpuMs += (cpu.user + cpu.system) / 1_000;
201
+ metrics.readCachedWallMs += performance.now() - startedAt;
202
+ }
203
+ }
204
+ });
177
205
  const readRowsSpy = vi.spyOn(AreaLedger.prototype, "readRows").mockImplementation(function (keys) {
178
206
  const startedAt = performance.now();
179
207
  const cpuStart = process.cpuUsage();
@@ -185,9 +213,15 @@ describe("sync-runner mixed delete capture benchmark", () => {
185
213
  finally {
186
214
  if (metrics && tracksBacklog) {
187
215
  const cpu = process.cpuUsage(cpuStart);
216
+ const wallMs = performance.now() - startedAt;
188
217
  metrics.readRowsCalls += 1;
189
218
  metrics.readRowsCpuMs += (cpu.user + cpu.system) / 1_000;
190
- metrics.maxReadRowsEventLoopDelayMs = Math.max(metrics.maxReadRowsEventLoopDelayMs, performance.now() - startedAt);
219
+ metrics.maxReadRowsEventLoopDelayMs = Math.max(metrics.maxReadRowsEventLoopDelayMs, wallMs);
220
+ metrics.readRowsPhases.push({
221
+ startTime: startedAt,
222
+ wallMs,
223
+ cpuMs: (cpu.user + cpu.system) / 1_000,
224
+ });
191
225
  }
192
226
  }
193
227
  });
@@ -282,12 +316,22 @@ describe("sync-runner mixed delete capture benchmark", () => {
282
316
  const appendPrototype = StateStore.prototype;
283
317
  const originalAppendUnlocked = appendPrototype.appendUnlocked;
284
318
  const appendSpy = vi.spyOn(appendPrototype, "appendUnlocked").mockImplementation(function (type, payload, flags, refresh) {
319
+ const metrics = activeMetrics;
320
+ const tracked = metrics !== undefined && trackedStores.some((store) => store.stateDir === this.stateDir);
321
+ const startedAt = performance.now();
322
+ const cpuStart = tracked ? process.cpuUsage() : undefined;
285
323
  const result = originalAppendUnlocked.call(this, type, payload, flags, refresh);
286
- if (!activeMetrics || !trackedStores.some((store) => store.stateDir === this.stateDir)) {
324
+ if (!metrics || !tracked || !cpuStart) {
287
325
  return result;
288
326
  }
289
- activeMetrics.legacyAppendFrames += 1;
290
- const generations = activeMetrics.generations.get(this.stateDir);
327
+ const cpu = process.cpuUsage(cpuStart);
328
+ metrics.legacyAppendFrames += 1;
329
+ metrics.journalAppendPhases.push({
330
+ startTime: startedAt,
331
+ wallMs: performance.now() - startedAt,
332
+ cpuMs: (cpu.user + cpu.system) / 1_000,
333
+ });
334
+ const generations = metrics.generations.get(this.stateDir);
291
335
  const generation = this.getGenerationIdentity().generation;
292
336
  generations?.add(generation);
293
337
  return result;
@@ -306,6 +350,14 @@ describe("sync-runner mixed delete capture benchmark", () => {
306
350
  readRowsCalls: 0,
307
351
  readRowsCpuMs: 0,
308
352
  maxReadRowsEventLoopDelayMs: 0,
353
+ eventInjectionCpuMs: 0,
354
+ eventInjectionWallMs: 0,
355
+ captureWindowCpuMs: 0,
356
+ captureWindowWallMs: 0,
357
+ readCachedCpuMs: 0,
358
+ readCachedWallMs: 0,
359
+ readRowsPhases: [],
360
+ journalAppendPhases: [],
309
361
  generations: new Map(trackedStores.map((store) => [
310
362
  store.stateDir,
311
363
  new Set([store.getGenerationIdentity().generation]),
@@ -344,14 +396,24 @@ describe("sync-runner mixed delete capture benchmark", () => {
344
396
  if (eventLoopProbeTimer)
345
397
  clearTimeout(eventLoopProbeTimer);
346
398
  };
399
+ const eventInjectionStartedAt = performance.now();
400
+ const eventInjectionCpuStart = process.cpuUsage();
347
401
  for (const item of events) {
348
402
  watcher.handleEvent(path.join(hqRoot, item.relativePath), item.kind);
349
403
  }
404
+ const eventInjectionCpu = process.cpuUsage(eventInjectionCpuStart);
405
+ metrics.eventInjectionCpuMs = (eventInjectionCpu.user + eventInjectionCpu.system) / 1_000;
406
+ metrics.eventInjectionWallMs = performance.now() - eventInjectionStartedAt;
350
407
  // Measure the asynchronous capture path after the synthetic event turn
351
408
  // has enqueued its watcher events. The tight injection loop is not part
352
409
  // of the production watcher cadence and can itself block this test turn.
353
410
  lastEventLoopTick = performance.now();
411
+ const captureWindowStartedAt = lastEventLoopTick;
412
+ const captureWindowCpuStart = process.cpuUsage();
354
413
  eventLoopProbeTimer = setTimeout(probeEventLoop, 1);
414
+ const commitWindowStart = performance.now();
415
+ const loopDelay = monitorEventLoopDelay({ resolution: 10 });
416
+ loopDelay.enable();
355
417
  let captureTimeout;
356
418
  try {
357
419
  await Promise.race([
@@ -362,10 +424,28 @@ describe("sync-runner mixed delete capture benchmark", () => {
362
424
  }),
363
425
  ]);
364
426
  }
427
+ catch (error) {
428
+ loopDelay.disable();
429
+ throw error;
430
+ }
365
431
  finally {
366
432
  if (captureTimeout)
367
433
  clearTimeout(captureTimeout);
368
434
  }
435
+ await new Promise((resolve) => setTimeout(resolve, 20));
436
+ const commitWindowEnd = performance.now();
437
+ const captureWindowCpu = process.cpuUsage(captureWindowCpuStart);
438
+ metrics.captureWindowCpuMs = (captureWindowCpu.user + captureWindowCpu.system) / 1_000;
439
+ metrics.captureWindowWallMs = commitWindowEnd - captureWindowStartedAt;
440
+ for (const entry of gcObserver.takeRecords()) {
441
+ const detail = entry;
442
+ gcActivity.push({
443
+ kind: detail.detail?.kind ?? null,
444
+ duration: entry.duration,
445
+ startTime: entry.startTime,
446
+ });
447
+ }
448
+ loopDelay.disable();
369
449
  const elapsedMs = performance.now() - startedAt;
370
450
  const cpu = process.cpuUsage(cpuStart);
371
451
  await new Promise((resolve) => setTimeout(resolve, 10));
@@ -385,12 +465,39 @@ describe("sync-runner mixed delete capture benchmark", () => {
385
465
  readRowsCalls: metrics.readRowsCalls,
386
466
  readRowsCpuMs: Number(metrics.readRowsCpuMs.toFixed(1)),
387
467
  maxReadRowsEventLoopDelayMs: Number(metrics.maxReadRowsEventLoopDelayMs.toFixed(1)),
468
+ eventInjectionCpuMs: Number(metrics.eventInjectionCpuMs.toFixed(1)),
469
+ eventInjectionWallMs: Number(metrics.eventInjectionWallMs.toFixed(1)),
470
+ captureWindowCpuMs: Number(metrics.captureWindowCpuMs.toFixed(1)),
471
+ captureWindowWallMs: Number(metrics.captureWindowWallMs.toFixed(1)),
472
+ readCachedCpuMs: Number(metrics.readCachedCpuMs.toFixed(1)),
473
+ readCachedWallMs: Number(metrics.readCachedWallMs.toFixed(1)),
388
474
  scenario,
389
475
  eventCount: events.length,
390
476
  compactions: Math.max(0, generationsSeen - startGenerationCount),
391
477
  totalCpuMs: Number(((cpu.user + cpu.system) / 1_000).toFixed(1)),
392
478
  elapsedMs: Number(elapsedMs.toFixed(1)),
393
479
  maxEventLoopDelayMs: Number(maxEventLoopDelayMs.toFixed(1)),
480
+ monitorEventLoopDelayMaxMs: Number((loopDelay.max / 1e6).toFixed(1)),
481
+ commitWindowMs: Number((commitWindowEnd - commitWindowStart).toFixed(1)),
482
+ gc: gcActivity
483
+ .filter((entry) => entry.startTime >= commitWindowStart && entry.startTime <= commitWindowEnd)
484
+ .map((entry) => ({
485
+ kind: entry.kind,
486
+ duration: Number(entry.duration.toFixed(2)),
487
+ startTime: Number(entry.startTime.toFixed(2)),
488
+ })),
489
+ commitPhases: {
490
+ readRows: metrics.readRowsPhases.map((phase) => ({
491
+ startTime: Number(phase.startTime.toFixed(2)),
492
+ wallMs: Number(phase.wallMs.toFixed(2)),
493
+ cpuMs: Number(phase.cpuMs.toFixed(2)),
494
+ })),
495
+ journalAppend: metrics.journalAppendPhases.map((phase) => ({
496
+ startTime: Number(phase.startTime.toFixed(2)),
497
+ wallMs: Number(phase.wallMs.toFixed(2)),
498
+ cpuMs: Number(phase.cpuMs.toFixed(2)),
499
+ })),
500
+ },
394
501
  };
395
502
  process.stderr.write("delete-snapshot-mixed-benchmark " + JSON.stringify(output) + "\n");
396
503
  expect(metrics.completedCaptures).toBe(events.length);
@@ -446,6 +553,19 @@ describe("sync-runner mixed delete capture benchmark", () => {
446
553
  }
447
554
  backlogLedger.append({ deletes, upserts });
448
555
  }
556
+ // The runner and its cached AreaLedger instance predate the synthetic
557
+ // backlog above. Reconcile and hydrate that peer-written tail before the
558
+ // timed burst so the benchmark measures the watcher capture path, not
559
+ // reverse-shadow recovery plus cold aggregate reconstruction.
560
+ const recovery = new AreaLedgerMigration({
561
+ rootDir: stateDir,
562
+ journalSlug: PERSONAL_VAULT_JOURNAL_SLUG,
563
+ resolver: personalResolver,
564
+ legacyStore: openJournalStateStoreForMigration(PERSONAL_VAULT_JOURNAL_SLUG),
565
+ });
566
+ recovery.reverseShadow({});
567
+ recovery.dispose();
568
+ readJournal(PERSONAL_VAULT_JOURNAL_SLUG);
449
569
  const backlogEvents = backlogFiles.map((key) => event(key, "unlink"));
450
570
  fs.rmSync(path.join(hqRoot, backlogRoot, "removed"), { recursive: true, force: true });
451
571
  const backlogMetrics = await measure("readrows-backlog-5000x10-1000-unlinks", backlogEvents, 300_000);
@@ -455,6 +575,8 @@ describe("sync-runner mixed delete capture benchmark", () => {
455
575
  expect.soft(backlogMetrics.readRowsCalls).toBe(1);
456
576
  expect.soft(backlogMetrics.readRowsCpuMs).toBeLessThan(100);
457
577
  expect.soft(backlogMetrics.maxReadRowsEventLoopDelayMs).toBeLessThan(200);
578
+ expect.soft(backlogMetrics.captureWindowCpuMs).toBeLessThan(1_000);
579
+ expect.soft(backlogMetrics.maxEventLoopDelayMs).toBeLessThan(1_000);
458
580
  expect.soft(backlogMetrics.totalCpuMs).toBeLessThan(4_000);
459
581
  expect.soft(backlogMetrics.maxEventLoopDelayMs).toBeLessThan(4_000);
460
582
  expect(backlogFiles.every((key) => readJournal(PERSONAL_VAULT_JOURNAL_SLUG).files[key]?.localDeleteIntent)).toBe(true);
@@ -476,6 +598,8 @@ describe("sync-runner mixed delete capture benchmark", () => {
476
598
  finally {
477
599
  activeMetrics = undefined;
478
600
  setAreaLedgerTestHooksForTest(undefined);
601
+ gcObserver.disconnect();
602
+ readCachedSpy.mockRestore();
479
603
  readRowsSpy.mockRestore();
480
604
  stopEventLoopProbe?.();
481
605
  stopEventLoopProbe = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"sync-runner-delete-snapshot-mixed.bench.test.js","sourceRoot":"","sources":["../../src/bin/sync-runner-delete-snapshot-mixed.bench.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-runner-delete-snapshot-mixed.bench.test.js","sourceRoot":"","sources":["../../src/bin/sync-runner-delete-snapshot-mixed.bench.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EACjC,2BAA2B,EAC3B,WAAW,EACX,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAA4B,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA0CrD,MAAM,QAAQ,GAAG,0BAA0B,CAAC;AAE5C,SAAS,KAAK,CACZ,GAAW,EACX,KAAa,EACb,MAAe;IASf,OAAO;QACL,IAAI,EAAE,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK;QACnC,IAAI,EAAE,KAAK,GAAG,IAAI;QAClB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,IAAI;QACf,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,QAAgB,EAChB,IAAY,EACZ,QAAsB,EACtB,KAA+C;IAE/C,YAAY,CAAC,IAAI,EAAE;QACjB,OAAO,EAAE,GAAG;QACZ,QAAQ;QACR,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;KACV,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC;QACxC,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,IAAI;QACjB,QAAQ;QACR,WAAW,EAAE,iCAAiC,CAAC,IAAI,CAAC;KACrD,CAAC,CAAC;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACpE,SAAS,CAAC,OAAO,EAAE,CAAC;IACpB,iCAAiC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;QACnD,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;KACtD,CAAC,CAAC;IACH,UAAU,CAAC,IAAI,CAAC;QACd,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3C,0BAA0B,EAAE,MAAM;QAClC,2BAA2B,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;KAC/C,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAClD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC/D,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;QACvC,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAC5B,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACzC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAC7C,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAC/B,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CACjE,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,qBAAqB,CAAC;QACvC,MAAM,WAAW,GAAG,iCAAiC,CAAC;QACtD,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;QACvD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;QACvD,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAA6C,EAAE,CAAC;QACjE,MAAM,kBAAkB,GAAa,EAAE,CAAC;QACxC,MAAM,iBAAiB,GAAa,EAAE,CAAC;QACvC,MAAM,YAAY,GAA6C,EAAE,CAAC;QAClE,MAAM,WAAW,GAA6C,EAAE,CAAC;QAEjE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAClC,MAAM,WAAW,GACf,mBAAmB,GAAG,IAAI,GAAG,GAAG;gBAChC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;YAC3D,MAAM,UAAU,GACd,oBAAoB,GAAG,IAAI,GAAG,GAAG;gBACjC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;YAC3D,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC7D,WAAW,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YACrF,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,WAAW,GAAG,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YACpF,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,GAAG,GACP,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrD,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;gBACzD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACpB,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,iBAAiB,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YAC1F,MAAM,UAAU,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YACxF,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnC,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5D,WAAW,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAAC;YACxC,MAAM,EAAE,CAAC;YACT,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE;gBACL,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC1C,EAAE,EAAE,wBAAwB,GAAG,KAAK;oBACpC,QAAQ,EAAE,CAAC,mBAAmB,GAAG,KAAK,CAAC;oBACvC,KAAK,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACpD,EAAE,EAAE,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACnE,EAAE,EAAE,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACvE,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;aAChE;SACF,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAE,CAAE,CAAC;QAClE,MAAM,eAAe,GAAG,IAAI,YAAY,CAAC;YACvC,MAAM,EAAE,CAAC;YACT,aAAa,EAAE,CAAC;YAChB,KAAK,EAAE;gBACL,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC1C,EAAE,EAAE,uBAAuB,GAAG,KAAK;oBACnC,QAAQ,EAAE,CAAC,oBAAoB,GAAG,KAAK,CAAC;oBACxC,KAAK,EAAE,EAAE;iBACV,CAAC,CAAC;gBACH,EAAE,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;gBACrE,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;aAChE;SACF,CAAC,CAAC;QACH,eAAe,CAAC,QAAQ,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QACvF,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC;YACpC,OAAO,EAAE,QAAQ;YACjB,WAAW,EAAE,2BAA2B;YACxC,WAAW,EAAE,CAAC;YACd,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC;YACnD,0BAA0B,EAAE,MAAM;YAClC,2BAA2B,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;SAC/C,CAAC,CAAC;QACH,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACtE,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,oCAAoC,CAAC,CAAC;QACjF,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACrC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,wBAAwB,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,mBAAmB,GAAG,GAAG,CAAC;YAC9C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QAC9B,IAAI,SAAS,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACzB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAAgC,CAAC;QACrC,IAAI,aAI4C,CAAC;QACjD,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,cAAwC,CAAC;QAC7C,IAAI,YAAoD,CAAC;QACzD,IAAI,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,aAAkC,CAAC;QACvC,IAAI,kBAA4C,CAAC;QACjD,MAAM,UAAU,GAAwE,EAAE,CAAC;QAC3F,MAAM,UAAU,GAAG,IAAI,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,KAAsD,CAAC;gBACtE,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI;oBACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;QACvD,MAAM,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC;QAC3D,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,kBAAkB,CACnF;YACE,MAAM,OAAO,GAAG,aAAa,CAAC;YAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC;gBACH,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;oBAAS,CAAC;gBACT,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACvC,OAAO,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBAC3D,OAAO,CAAC,gBAAgB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;QACF,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,kBAAkB,CAC/E,UAA4B,IAAI;YAC9B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,aAAa,CAAC;YAC9B,MAAM,aAAa,GAAG,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAC/D,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,CACzD,CAAC;YACF,IAAI,CAAC;gBACH,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;oBAAS,CAAC;gBACT,IAAI,OAAO,IAAI,aAAa,EAAE,CAAC;oBAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACvC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAC7C,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC;oBAC3B,OAAO,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBACzD,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC,GAAG,CAC5C,OAAO,CAAC,2BAA2B,EACnC,MAAM,CACP,CAAC;oBACF,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;wBAC1B,SAAS,EAAE,SAAS;wBACpB,MAAM;wBACN,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK;qBACvC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;QACF,MAAM,aAAa,GAAG;YACpB,iCAAiC,CAAC,2BAA2B,CAAC;YAC9D,iCAAiC,CAAC,QAAQ,CAAC;SAC5C,CAAC;QAEF,MAAM,YAAY,GAAG,CACnB,KAAa,EACb,QAAgB,EAChB,SAAiB,EACX,EAAE;YACR,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,aAAa,CAAC,YAAY,IAAI,KAAK,CAAC;YACpC,aAAa,CAAC,iBAAiB,IAAI,QAAQ,CAAC;YAC5C,aAAa,CAAC,aAAa,IAAI,SAAS,CAAC;YACzC,IAAI,aAAa,CAAC,iBAAiB,KAAK,gBAAgB;gBAAE,cAAc,EAAE,EAAE,CAAC;QAC/E,CAAC,CAAC;QAEF,MAAM,IAAI,GAAG,iBAAiB,CAC5B;YACE,aAAa,EAAE,SAAS,EAAE,cAAc;YACxC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;SAC3C,EACD;YACE,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,WAAW,CAAC,2BAA2B,CAAC,CAAC;gBACzC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACtB,OAAO,CAAC,CAAC;YACX,CAAC;YACD,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE;gBACzB,MAAM,aAAa,GAAG,OAErB,CAAC;gBACF,aAAa,GAAG,OAAO,CAAC,yBAAyB,CAAC;gBAClD,MAAM,MAAM,GAAG,KAAK,EAClB,YAAoB,EACpB,IAA4B,EAC5B,SAAwB,EACQ,EAAE;oBAClC,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,yBAAyB,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;wBACtF,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;wBAClC,OAAO,MAAM,CAAC;oBAChB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;wBACtB,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC;gBACF,MAAM,aAAa,GAAG,aAAa,CAAC,8BAA8B,CAAC;gBACnE,MAAM,KAAK,GAAG,aAAa;oBACzB,CAAC,CAAC,KAAK,EAAE,QAA4B,EAAE,EAAE;wBACrC,IAAI,CAAC;4BACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;4BAC7C,YAAY,CACV,CAAC,EACD,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAC7D,CAAC;4BACF,OAAO,MAAM,CAAC;wBAChB,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;4BACtB,MAAM,KAAK,CAAC;wBACd,CAAC;oBACH,CAAC;oBACH,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE;oBAChD,yBAAyB,EAAE,MAAM;oBACjC,8BAA8B,EAAE,KAAK;oBACrC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;oBACtB,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;oBAC9B,eAAe,EAAE,KAAK;oBACtB,eAAe,EAAE,SAAS;oBAC1B,UAAU,EAAE,MAAM;oBAClB,eAAe,EAAE,IAAI;oBACrB,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;wBACrB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;wBACf,IAAI,EAAE,UAAmB;wBACzB,eAAe,EAAE,KAAK;wBACtB,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;qBAC1B,CAAC;iBACH,CAAiD,CAAC;gBACnD,OAAO,GAAG,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC;gBAC1C,OAAO,CAAC,yBAAyB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;oBAC/C,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE;oBAC/C,YAAY,EAAE,CAAC;iBAChB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;YAChC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;YAC5B,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,iBAAiB;YAC7C,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACzC,QAAQ,GAAG,IAAI,CAAC;gBAChB,SAAS,GAAG,GAAG,EAAE;oBACf,QAAQ,GAAG,KAAK,CAAC;oBACjB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;YACJ,CAAC,CAAC;YACF,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC5B,cAAc,GAAG,OAAO,CAAC;gBACzB,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YAClB,CAAC;SACF,CACF,CAAC;QAEF,MAAM,eAAe,GAAG,UAAU,CAAC,SAElC,CAAC;QACF,MAAM,sBAAsB,GAAG,eAAe,CAAC,cAAc,CAAC;QAC9D,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC,kBAAkB,CAC9E,UAEE,IAAY,EACZ,OAAgB,EAChB,KAAa,EACb,OAAgB;YAEhB,MAAM,OAAO,GAAG,aAAa,CAAC;YAC9B,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzG,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAChF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvC,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC;YAChC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC/B,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK;aACvC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,UAAU,CAAC;YAC3D,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC,YAAoB,EAAE,IAAmB,EAAS,EAAE,CAAC,CAAC;YACnE,YAAY;YACZ,IAAI;SACL,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,KAAK,EACnB,QAAgB,EAChB,MAAe,EACf,gBAAgB,GAAG,MAAM,EAQxB,EAAE;YACH,MAAM,OAAO,GAAY;gBACvB,YAAY,EAAE,CAAC;gBACf,iBAAiB,EAAE,CAAC;gBACpB,aAAa,EAAE,CAAC;gBAChB,kBAAkB,EAAE,CAAC;gBACrB,sBAAsB,EAAE,CAAC;gBACzB,aAAa,EAAE,CAAC;gBAChB,aAAa,EAAE,CAAC;gBAChB,2BAA2B,EAAE,CAAC;gBAC9B,mBAAmB,EAAE,CAAC;gBACtB,oBAAoB,EAAE,CAAC;gBACvB,kBAAkB,EAAE,CAAC;gBACrB,mBAAmB,EAAE,CAAC;gBACtB,eAAe,EAAE,CAAC;gBAClB,gBAAgB,EAAE,CAAC;gBACnB,cAAc,EAAE,EAAE;gBAClB,mBAAmB,EAAE,EAAE;gBACvB,WAAW,EAAE,IAAI,GAAG,CAClB,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC3B,KAAK,CAAC,QAAQ;oBACd,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,UAAU,CAAC,CAAC;iBACpD,CAAC,CACH;aACF,CAAC;YACF,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;YACjC,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnD,cAAc,GAAG,OAAO,CAAC;gBACzB,YAAY,GAAG,MAAM,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,aAAa,GAAG,OAAO,CAAC;YACxB,IAAI,QAAQ,KAAK,uCAAuC,EAAE,CAAC;gBACzD,6BAA6B,CAAC;oBAC5B,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;wBAC7B,IAAI,MAAM,KAAK,aAAa;4BAAE,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAC;oBACpE,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACpC,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAC5B,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,IAAI,oBAAoB,GAAG,IAAI,CAAC;YAChC,IAAI,mBAA8D,CAAC;YACnE,MAAM,cAAc,GAAG,GAAS,EAAE;gBAChC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC9B,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9F,iBAAiB,GAAG,GAAG,CAAC;gBACxB,IAAI,oBAAoB;oBAAE,mBAAmB,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAChF,CAAC,CAAC;YACF,kBAAkB,GAAG,GAAG,EAAE;gBACxB,oBAAoB,GAAG,KAAK,CAAC;gBAC7B,IAAI,mBAAmB;oBAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAC7D,CAAC,CAAC;YACF,MAAM,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClD,MAAM,sBAAsB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,OAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YACnE,OAAO,CAAC,mBAAmB,GAAG,CAAC,iBAAiB,CAAC,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YAC1F,OAAO,CAAC,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,uBAAuB,CAAC;YAC3E,uEAAuE;YACvE,wEAAwE;YACxE,yEAAyE;YACzE,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACtC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;YACjD,MAAM,qBAAqB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjD,mBAAmB,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACpD,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,SAAS,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,cAAyD,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,CAAC;oBACjB,YAAY;oBACZ,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;wBAC/B,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAChD,0CAA0C,GAAG,gBAAgB,GAAG,KAAK,GAAG,YAAY;4BACpF,OAAO,CAAC,iBAAiB,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,sBAAsB,CACzE,CAAC,EAAE,gBAAgB,CAAC,CAAC;oBACxB,CAAC,CAAC;iBACH,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,IAAI,cAAc;oBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1C,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YACjE,OAAO,CAAC,kBAAkB,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACvF,OAAO,CAAC,mBAAmB,GAAG,eAAe,GAAG,sBAAsB,CAAC;YACvE,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,KAAsD,CAAC;gBACtE,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI;oBACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC3B,CAAC,CAAC;YACL,CAAC;YACD,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAChD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9D,kBAAkB,EAAE,EAAE,CAAC;YACvB,kBAAkB,GAAG,SAAS,CAAC;YAC/B,aAAa,GAAG,SAAS,CAAC;YAC1B,6BAA6B,CAAC,SAAS,CAAC,CAAC;YACzC,YAAY,GAAG,SAAS,CAAC;YACzB,MAAM,eAAe,GAAG,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC9D,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,EAC5C,CAAC,CACF,CAAC;YACF,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC;YAClD,MAAM,MAAM,GAAG;gBACb,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;gBAC9C,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;gBACtD,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvD,2BAA2B,EAAE,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnF,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnE,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrE,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjE,mBAAmB,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACnE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7D,QAAQ;gBACR,UAAU,EAAE,MAAM,CAAC,MAAM;gBACzB,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,oBAAoB,CAAC;gBAChE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC3D,0BAA0B,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpE,cAAc,EAAE,MAAM,CAAC,CAAC,eAAe,GAAG,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxE,EAAE,EAAE,UAAU;qBACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,iBAAiB,IAAI,KAAK,CAAC,SAAS,IAAI,eAAe,CAAC;qBAC7F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACf,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC3C,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC9C,CAAC,CAAC;gBACL,YAAY,EAAE;oBACZ,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC/C,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC7C,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;qBACtC,CAAC,CAAC;oBACH,aAAa,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACzD,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC7C,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACvC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;qBACtC,CAAC,CAAC;iBACJ;aACF,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;YACzF,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACzF,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,aAAa;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC5E,MAAM,aAAa,CACjB,qCAAqC,EACrC,QAAQ,EACR,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;YACF,MAAM,aAAa,CACjB,uDAAuD,EACvD,QAAQ,EACR,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;YAEF,MAAM,UAAU,GAAY,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YACzE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC3C,MAAM,SAAS,GACb,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACxD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;YAC3D,CAAC;YACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC3C,UAAU,CAAC,IAAI,CAAC,KAAK,CACnB,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EACrD,WAAW,CACZ,CAAC,CAAC;YACL,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YAC9C,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;YACnE,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,CACJ,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC;iBAC3D,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;iBACjD,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAC3D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,uEAAuE;YACvE,qEAAqE;YACrE,8BAA8B;YAC9B,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/C,6BAA6B,CAAC;gBAC5B,4BAA4B,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAAC;aAC5F,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;oBAChC,OAAO,EAAE,EAAE,CAAC,WAAW,GAAG,6BAA6B,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;oBACvF,QAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;iBAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;YACjD,CAAC;oBAAS,CAAC;gBACT,6BAA6B,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;YACD,wEAAwE;YACxE,qEAAqE;YACrE,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,CAAC;gBAC7D,MAAM,MAAM,GAAG,UAAU,GAAG,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC7D,MAAM,OAAO,GAA6C,EAAE,CAAC;gBAC7D,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBACvF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;gBACpE,CAAC;gBACD,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7C,CAAC;YAED,sEAAsE;YACtE,yEAAyE;YACzE,sEAAsE;YACtE,8DAA8D;YAC9D,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC;gBACvC,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,2BAA2B;gBACxC,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,iCAAiC,CAAC,2BAA2B,CAAC;aAC5E,CAAC,CAAC;YACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC3B,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,WAAW,CAAC,2BAA2B,CAAC,CAAC;YAEzC,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YACtE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvF,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,uCAAuC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YACtG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAChC,WAAW,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,iBAAiB,CACvE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,WAAW,GAAY,EAAE,CAAC;YAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC5C,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC9D,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrF,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,kBAAkB,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC;gBAChE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;oBACzD,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;YACrE,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,WAAW,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,iBAAiB,CACvE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACrC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,iBAAiB,CACpD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,aAAa,GAAG,SAAS,CAAC;YAC1B,6BAA6B,CAAC,SAAS,CAAC,CAAC;YACzC,UAAU,CAAC,UAAU,EAAE,CAAC;YACxB,aAAa,CAAC,WAAW,EAAE,CAAC;YAC5B,WAAW,CAAC,WAAW,EAAE,CAAC;YAC1B,kBAAkB,EAAE,EAAE,CAAC;YACvB,kBAAkB,GAAG,SAAS,CAAC;YAC/B,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;YACjC,SAAS,CAAC,WAAW,EAAE,CAAC;YACxB,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC;YACX,IAAI,gBAAgB,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;;gBAC/D,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,gBAAgB,CAAC;YACjD,IAAI,oBAAoB,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;;gBAC5E,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;YAC9D,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC,CAAC,CAAC"}
@@ -12,7 +12,7 @@ import * as os from "os";
12
12
  import * as path from "path";
13
13
  import * as v8 from "node:v8";
14
14
  import * as vm from "node:vm";
15
- import { monitorEventLoopDelay } from "node:perf_hooks";
15
+ import { monitorEventLoopDelay, PerformanceObserver } from "node:perf_hooks";
16
16
  import { runRunner, parseArgs, loopPassDeps, runRunnerWithLoop as runRunnerWithOwnerLease, resolveDeletePolicy, resolveSkipPersonal, resolveSkipCompanies, selectObjectIOFactory, routeChangeToTarget, buildTargetedPushArgv, resolvePullScope, readPinnedPrefixes, SESSIONS_SCOPE_PREFIX, defaultCollectTelemetry, AUTH_REQUIRED_PASS_EXIT, conventionalWatchSignalExitCode, DEFAULT_WATCH_RUNNER_SHUTDOWN_TIMEOUT_MS, resolveWatchRunnerShutdownTimeoutMs, WATCH_RUNNER_SHUTDOWN_TIMEOUT_ENV, } from "./sync-runner.js";
17
17
  import { SESSION_LOGS_PUSH_ONLY_PREFIX } from "../sync/pull-scope.js";
18
18
  import { WATCH_RUNNER_ALREADY_OWNED_EXIT, WATCH_OWNER_LEASE_LOST_EXIT, } from "../lib/exit-codes.js";
@@ -23,7 +23,7 @@ import { POST_SYNC_FLAG_KEYS, } from "./sync-runner-post-sync-flags.js";
23
23
  import { FakeClock, TreeWatcher, } from "../watcher.js";
24
24
  import { adaptivePollMs, advanceMonotonicDeadline, DEFAULT_EVENT_BATCH_LIMIT, DEFAULT_FAST_LANE_MAX_BYTES, DEFAULT_FAST_LANE_MAX_FILE_BYTES, DEFAULT_FAST_LANE_MAX_FILES, DEFAULT_FULL_RECONCILE_MS, EVENT_BATCH_LIMIT_ENV, FAST_LANE_MAX_BYTES_ENV, FAST_LANE_MAX_FILES_ENV, FULL_RECONCILE_MS_ENV, isFastLocalBatch, isFastReceiverBatch, partitionLocalBatch, journalEntriesForWatcherDelete, resolveEventBatchLimit, resolveFullReconcileMs, resolveWatchPollMs, CHORE_STARVATION_CAP_MS, CooperativePassScheduler, REALTIME_ADMISSION_DEADLINE_MS, REALTIME_DRAIN_BURST_MS, REALTIME_WORKER_OCCUPANCY_CAP, RealtimeAdmissionTimeoutError, setRealtimeAdmissionDeadlineMsForTesting, setRealtimeDrainBurstMsForTesting, normalizeCoordinatorPaths, shouldQuarantineWatcherDeleteIntents, shouldUseAreaStorage, WATCHER_REDISCOVERY_RETRY_MS, WATCHER_REDISCOVERY_RETRY_MAX_MS, EVENT_SYNC_STARTUP_SHUTDOWN_WAIT_MS, } from "./sync-runner-watch-loop.js";
25
25
  import { FullPassCapController, resetFullPassCapLogForTest, } from "../sync/full-pass-caps.js";
26
- import { AreaLedgerMigration, JournalStore, openJournalStateStoreForMigration, PERSONAL_VAULT_JOURNAL_SLUG, readJournal, readJournalScoped, writeJournal, } from "../journal.js";
26
+ import { AreaLedgerMigration, JournalStore, openJournalStateStoreForMigration, PERSONAL_VAULT_JOURNAL_SLUG, readJournal, readJournalForPass, readJournalScoped, readJournalScopedAsync, writeJournal, } from "../journal.js";
27
27
  import { AreaLedger } from "../sync/area-ledger.js";
28
28
  import { AreaResolver } from "../sync/area-resolver.js";
29
29
  import { AREA_LEGACY_MIRROR_LINGER_MS } from "../sync/area-ledger-migration.js";
@@ -7737,22 +7737,43 @@ describe("runRunnerWithLoop — event-push wiring", () => {
7737
7737
  const watcher = makeBatchWatcherStub();
7738
7738
  let shutdown = () => { };
7739
7739
  let committedAt;
7740
+ let activeCommitSample;
7741
+ let scopedCommitSequence = 0;
7742
+ const commitPhases = [];
7740
7743
  const runPass = vi.fn(async (argv) => {
7741
7744
  if (!argv.includes("--scope-path")) {
7742
7745
  // Production opens the packed journal during the initial full pass,
7743
7746
  // before the watcher accepts realtime work. That recovered projection
7744
7747
  // is the one a scoped commit must reuse.
7745
- readJournal(PERSONAL_VAULT_JOURNAL_SLUG);
7748
+ readJournalForPass(PERSONAL_VAULT_JOURNAL_SLUG);
7746
7749
  }
7747
7750
  if (argv.includes("--scope-path") && argv.includes("push")) {
7748
- const scoped = readJournalScoped(PERSONAL_VAULT_JOURNAL_SLUG, targetPaths);
7751
+ const passStartedAt = performance.now();
7752
+ const scopedReadStartedAt = performance.now();
7753
+ const scoped = await readJournalScopedAsync(PERSONAL_VAULT_JOURNAL_SLUG, targetPaths);
7754
+ const scopedReadMs = performance.now() - scopedReadStartedAt;
7755
+ const mutationStartedAt = performance.now();
7749
7756
  const target = targetPaths[0];
7750
7757
  scoped.files[target] = {
7751
7758
  ...scoped.files[target],
7752
- syncedAt: "2026-09-16T21:38:18.000Z",
7759
+ syncedAt: new Date(Date.parse("2026-09-16T21:38:18.000Z") + scopedCommitSequence++).toISOString(),
7753
7760
  };
7761
+ const entryMutationMs = performance.now() - mutationStartedAt;
7762
+ const journalWriteStartedAt = performance.now();
7754
7763
  writeJournal(PERSONAL_VAULT_JOURNAL_SLUG, scoped);
7764
+ const journalWriteMs = performance.now() - journalWriteStartedAt;
7755
7765
  committedAt = performance.now();
7766
+ if (activeCommitSample) {
7767
+ commitPhases.push({
7768
+ sample: activeCommitSample.sample,
7769
+ dispatchToPassMs: passStartedAt - activeCommitSample.submittedAt,
7770
+ scopedReadMs,
7771
+ entryMutationMs,
7772
+ journalWriteMs,
7773
+ passRemainderMs: committedAt - passStartedAt - scopedReadMs - entryMutationMs - journalWriteMs,
7774
+ submitToCommitMs: committedAt - activeCommitSample.submittedAt,
7775
+ });
7776
+ }
7756
7777
  }
7757
7778
  return completedPassOutcome();
7758
7779
  });
@@ -7765,21 +7786,19 @@ describe("runRunnerWithLoop — event-push wiring", () => {
7765
7786
  return () => { };
7766
7787
  },
7767
7788
  });
7789
+ const gcActivity = [];
7790
+ const gcObserver = new PerformanceObserver((list) => {
7791
+ for (const entry of list.getEntries()) {
7792
+ const detail = entry;
7793
+ gcActivity.push({ kind: detail.detail?.kind ?? null, duration: entry.duration, startTime: entry.startTime });
7794
+ }
7795
+ });
7796
+ gcObserver.observe({ entryTypes: ["gc"] });
7768
7797
  try {
7769
7798
  await flushLoopMicrotasks(30);
7770
7799
  runPass.mockClear();
7771
7800
  resetStateStoreSnapshotRecoveryCountForTest();
7772
- const eventLoopDelay = monitorEventLoopDelay({ resolution: 10 });
7773
- eventLoopDelay.enable();
7774
7801
  await new Promise((resolve) => setTimeout(resolve, 0));
7775
- const submittedAt = performance.now();
7776
- let timerDelayMs;
7777
- const eventLoopTurn = new Promise((resolve) => {
7778
- setTimeout(() => {
7779
- timerDelayMs = performance.now() - submittedAt;
7780
- resolve();
7781
- }, 0);
7782
- });
7783
7802
  const batch = {
7784
7803
  paths: new Map(targetPaths.map((relativePath) => [path.join(hqRoot, relativePath), relativePath])),
7785
7804
  changes: new Map(targetPaths.map((relativePath) => [
@@ -7787,17 +7806,73 @@ describe("runRunnerWithLoop — event-push wiring", () => {
7787
7806
  { kind: "change" },
7788
7807
  ])),
7789
7808
  };
7790
- watcher.emit(targetPaths[0], batch);
7791
- await vi.waitFor(() => expect(committedAt).toBeDefined(), { timeout: 30_000, interval: 10 });
7792
- await eventLoopTurn;
7793
- eventLoopDelay.disable();
7794
- expect(committedAt - submittedAt).toBeLessThan(1_000);
7795
- expect(Number(eventLoopDelay.max) / 1_000_000).toBeLessThan(100);
7796
- expect(timerDelayMs).toBeLessThan(100);
7809
+ // Measure each commit independently so one long event-loop block cannot
7810
+ // disappear inside an aggregate statistic.
7811
+ const loopDelayMaxMs = [];
7812
+ const commitDurations = [];
7813
+ for (let sample = 0; sample < 5; sample += 1) {
7814
+ const loopDelay = monitorEventLoopDelay({ resolution: 10 });
7815
+ loopDelay.enable();
7816
+ try {
7817
+ // Preserve the old pre-commit window as a separately reported idle
7818
+ // baseline. The guarded histogram starts only after this window.
7819
+ const warmupStart = performance.now();
7820
+ await new Promise((resolve) => setTimeout(resolve, 30));
7821
+ const warmupEnd = performance.now();
7822
+ for (const entry of gcObserver.takeRecords()) {
7823
+ const detail = entry;
7824
+ gcActivity.push({ kind: detail.detail?.kind ?? null, duration: entry.duration, startTime: entry.startTime });
7825
+ }
7826
+ const warmupMaxDelayMs = loopDelay.max / 1e6;
7827
+ const warmupGc = gcActivity
7828
+ .filter((entry) => entry.startTime >= warmupStart && entry.startTime <= warmupEnd)
7829
+ .map((entry) => ({ kind: entry.kind, duration: Number(entry.duration.toFixed(2)), startTime: Number(entry.startTime.toFixed(2)) }));
7830
+ loopDelay.reset();
7831
+ committedAt = undefined;
7832
+ const windowStart = performance.now();
7833
+ activeCommitSample = { sample: sample + 1, submittedAt: windowStart };
7834
+ const watcherCallbackStartedAt = performance.now();
7835
+ watcher.emit(targetPaths[0], batch);
7836
+ const watcherCallbackSyncMs = performance.now() - watcherCallbackStartedAt;
7837
+ await vi.waitFor(() => expect(committedAt).toBeDefined(), { timeout: 30_000, interval: 10 });
7838
+ commitDurations.push(committedAt - windowStart);
7839
+ // Give the histogram's next 10 ms sample time to observe a stall that
7840
+ // ended in the commit callback before reading this window's maximum.
7841
+ await new Promise((resolve) => setTimeout(resolve, 20));
7842
+ const windowEnd = performance.now();
7843
+ for (const entry of gcObserver.takeRecords()) {
7844
+ const detail = entry;
7845
+ gcActivity.push({ kind: detail.detail?.kind ?? null, duration: entry.duration, startTime: entry.startTime });
7846
+ }
7847
+ const maxDelayMs = loopDelay.max / 1e6;
7848
+ loopDelayMaxMs.push(maxDelayMs);
7849
+ const phases = commitPhases.find((phase) => phase.sample === sample + 1);
7850
+ const sampleGc = gcActivity
7851
+ .filter((entry) => entry.startTime >= windowStart && entry.startTime <= windowEnd)
7852
+ .map((entry) => ({ kind: entry.kind, duration: Number(entry.duration.toFixed(2)), startTime: Number(entry.startTime.toFixed(2)) }));
7853
+ process.stdout.write(`realtime-commit-sample ${JSON.stringify({
7854
+ sample: sample + 1,
7855
+ warmupMaxDelayMs: Number(warmupMaxDelayMs.toFixed(1)),
7856
+ warmupGc,
7857
+ maxDelayMs: Number(maxDelayMs.toFixed(1)),
7858
+ windowStart: Number(windowStart.toFixed(2)),
7859
+ windowEnd: Number(windowEnd.toFixed(2)),
7860
+ phases: phases ? { ...phases, watcherCallbackSyncMs } : null,
7861
+ gc: sampleGc,
7862
+ })}\n`);
7863
+ activeCommitSample = undefined;
7864
+ }
7865
+ finally {
7866
+ loopDelay.disable();
7867
+ }
7868
+ }
7869
+ expect(Math.max(...commitDurations)).toBeLessThan(1_000);
7870
+ expect(Math.max(...loopDelayMaxMs)).toBeLessThan(100);
7797
7871
  expect(getStateStoreSnapshotRecoveryCountForTest()).toBe(0);
7798
- expect(runPass.mock.calls.filter(([argv]) => argv.includes("--scope-path"))).toHaveLength(1);
7872
+ expect(runPass.mock.calls.filter(([argv]) => argv.includes("--scope-path"))).toHaveLength(5);
7799
7873
  }
7800
7874
  finally {
7875
+ gcObserver.disconnect();
7801
7876
  shutdown();
7802
7877
  await loop;
7803
7878
  if (previousCoordinator === undefined)