@heyditto/cli 3.7.2 → 3.8.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.
@@ -7,6 +7,7 @@ import { cmdReviewAccess, diagnoseLinkRefusal, guideAccessForAdd } from "./githu
7
7
  import { registerReviewFindingCommands } from "./review-findings.js";
8
8
  import { readStoredAuth } from "./store.js";
9
9
  import { captureReviewSnapshot, reviewGit } from "./review-snapshot.js";
10
+ import { findingsList, formatRecommendation, isVisibleFinding, gateExitCode, malformedLocalRun, recommendLocalReview } from "./review-recommendation.js";
10
11
  /** The server's bounds (backend reviewLimits). */
11
12
  const MIN_MAX_MINUTES = 5;
12
13
  const MAX_MAX_MINUTES = 45;
@@ -34,12 +35,18 @@ function repositoryFromRemote(remote) {
34
35
  return match[1];
35
36
  }
36
37
  function printLocalRun(run, options) {
37
- if (isJSON(options))
38
- return writeJSON(run);
38
+ const recommendation = recommendLocalReview(run);
39
+ run.recommendation = recommendation;
40
+ if (isJSON(options)) {
41
+ writeJSON(run);
42
+ return recommendation;
43
+ }
39
44
  const result = run.result;
40
45
  process.stdout.write(`Local review ${run.status} · ${run.profile}\nRun: ${run.runId}\nSnapshot: ${run.snapshotDigest}\n`);
41
- const findings = result?.findings?.filter(f => !f.status || f.status === "posted") ?? [];
42
- const reportable = result && (Array.isArray(result.findings) || result.complete === true) && ["completed", "partial"].includes(run.status);
46
+ const list = findingsList(result);
47
+ const findings = (list ?? []).filter(isVisibleFinding);
48
+ // A null list is empty only when the engine also says the review is complete.
49
+ const reportable = list !== undefined && (Array.isArray(result?.findings) || result?.complete === true) && malformedLocalRun(run).length === 0 && ["completed", "partial"].includes(run.status);
43
50
  if (reportable) {
44
51
  process.stdout.write(`${findings.length ? `${findings.length} finding${findings.length === 1 ? "" : "s"} in reviewed scope` : "No findings in reviewed scope"}\n`);
45
52
  for (const f of findings)
@@ -60,6 +67,8 @@ function printLocalRun(run, options) {
60
67
  process.stdout.write(`Charged: ${run.chargedCredits} credits${run.creditsPerDollar ? ` (${run.creditsPerDollar} credits/USD)` : ""}\n`);
61
68
  if (run.error || result?.error)
62
69
  process.stdout.write(`Error: ${run.error || result?.error}\n`);
70
+ process.stdout.write(formatRecommendation(recommendation));
71
+ return recommendation;
63
72
  }
64
73
  async function pollLocalRun(route, signal) {
65
74
  for (let attempt = 0;; attempt++) {
@@ -78,6 +87,8 @@ async function pollLocalRun(route, signal) {
78
87
  export async function cmdReviewLocal(options) {
79
88
  if (options.staged && options.base)
80
89
  throw new Error("--staged and --base cannot be used together");
90
+ if (options.preview && options.gate)
91
+ throw new Error("--preview starts no review, so it cannot satisfy --gate");
81
92
  const profile = options.profile ?? "quick";
82
93
  if (!["quick", "standard", "deep"].includes(profile))
83
94
  throw new Error("--profile must be quick, standard or deep");
@@ -141,11 +152,14 @@ export async function cmdReviewLocal(options) {
141
152
  return;
142
153
  }
143
154
  if (!snapshot.changedPaths.length) {
144
- const empty = { status: "skipped", reason: "no_changes", snapshotDigest: snapshot.digest, changedPaths: [] };
155
+ const recommendation = { verdict: "none", approved: false, reasons: ["no changes were selected, so nothing was reviewed"], blocking: 0, nits: 0 };
156
+ const empty = { status: "skipped", reason: "no_changes", snapshotDigest: snapshot.digest, changedPaths: [], recommendation };
145
157
  if (isJSON(options))
146
158
  writeJSON(empty);
147
159
  else
148
- process.stdout.write("No working-diff changes to review.\n");
160
+ process.stdout.write(`No working-diff changes to review.\n${formatRecommendation(recommendation)}`);
161
+ if (options.gate)
162
+ process.exitCode = gateExitCode(recommendation);
149
163
  return;
150
164
  }
151
165
  const fullName = options.repository ?? repositoryFromRemote((await reviewGit(captured.root, ["remote", "get-url", "origin"], undefined, controller.signal)).toString("utf8"));
@@ -162,7 +176,7 @@ export async function cmdReviewLocal(options) {
162
176
  method: "POST", body: { requestId, snapshot, profile, ...(context ? { context } : {}) }, signal: AbortSignal.timeout(30000),
163
177
  });
164
178
  try {
165
- runPath(run.runId);
179
+ runPath(run?.runId);
166
180
  }
167
181
  catch {
168
182
  throw new Error("Review API returned no valid run ID");
@@ -174,6 +188,8 @@ export async function cmdReviewLocal(options) {
174
188
  for (;;) {
175
189
  if (controller.signal.aborted)
176
190
  throw controller.signal.reason;
191
+ if (!run || typeof run !== "object" || typeof run.status !== "string")
192
+ throw new Error("Review API returned a malformed run (no status); no recommendation was produced");
177
193
  if (run.status !== prior) {
178
194
  process.stderr.write(`Local review: ${run.status}\n`);
179
195
  prior = run.status;
@@ -190,10 +206,12 @@ export async function cmdReviewLocal(options) {
190
206
  run.workspaceCurrent = null;
191
207
  run.workspaceCurrentReason = "Snapshot could not be recaptured";
192
208
  }
193
- printLocalRun(run, options);
209
+ const recommendation = printLocalRun(run, options);
194
210
  if (interrupted)
195
211
  process.exitCode = interrupted;
196
- else if (["failed", "cancelled", "partial"].includes(run.status) || (run.status === "completed" && run.result?.complete !== true))
212
+ else if (options.gate)
213
+ process.exitCode = gateExitCode(recommendation);
214
+ else if (["failed", "cancelled", "partial"].includes(run.status) || (run.status === "completed" && run.result?.complete !== true) || malformedLocalRun(run).length)
197
215
  process.exitCode = 1;
198
216
  return;
199
217
  }
@@ -217,13 +235,17 @@ export async function cmdReviewLocal(options) {
217
235
  process.stderr.write(`${timedOut ? "Local review timed out" : "Local review interrupted"}${runId ? ` (run ${runId})` : posted ? `; admission outcome is unknown (request ${requestId})` : ""}.\n`);
218
236
  if (posted && !runId)
219
237
  process.stderr.write(`Recover the same admission: ${recovery()}\nChanged source, profile or context is refused; no automatic retry was made.\n`);
238
+ if (isJSON(options)) {
239
+ const status = timedOut ? "timed_out" : "interrupted";
240
+ writeJSON({ status, requestId, ...(runId ? { runId } : {}), recommendation: { verdict: "none", approved: false, reasons: [timedOut ? "local review timed out; a timed-out run is never approval" : "local review interrupted; an interrupted run is never approval"], blocking: 0, nits: 0 } });
241
+ }
220
242
  process.exitCode = interrupted || 124;
221
243
  return;
222
244
  }
223
245
  if (posted && !runId && error instanceof ApiError && error.status >= 400 && error.status < 500) {
224
246
  if (error.status === 404)
225
247
  throw new Error("The local review endpoint is unavailable on this Ditto backend; no local review was admitted.");
226
- throw error;
248
+ throw new Error(`Ditto refused the local review request (HTTP ${error.status}${refusalDetail(error.body)}). No review was admitted and nothing was approved.`);
227
249
  }
228
250
  if (posted && !runId)
229
251
  throw new Error(`${error instanceof Error ? error.message : String(error)}\nAdmission outcome is unknown; request ${requestId}.\nRecover the same admission: ${recovery()}\nChanged source, profile or context is refused; no automatic retry was made.`);
@@ -239,9 +261,13 @@ export async function cmdReviewLocalStatus(id, options) {
239
261
  runPath(id);
240
262
  const company = await resolveScope(options);
241
263
  const run = await apiFetch(`/api/v5/review/local/runs/${encodeURIComponent(id)}${scopeQuery(company)}`);
264
+ if (!run || typeof run !== "object" || typeof run.status !== "string")
265
+ throw new Error("Review API returned a malformed run (no status); no recommendation was produced");
242
266
  run.workspaceCurrent = null;
243
267
  run.workspaceCurrentReason = "Status reads do not recapture a local checkout";
244
- printLocalRun(run, options);
268
+ const recommendation = printLocalRun(run, options);
269
+ if (options.gate)
270
+ process.exitCode = gateExitCode(recommendation);
245
271
  }
246
272
  export async function cmdReviewLocalCancel(id, options) {
247
273
  runPath(id);
@@ -252,6 +278,25 @@ export async function cmdReviewLocalCancel(id, options) {
252
278
  else
253
279
  process.stdout.write(`Cancellation requested for local review ${id}.\n`);
254
280
  }
281
+ /** The error code, reference and decode detail of a refused admission, e.g.
282
+ * `review_local_input · ref … · json: unknown field "anchorRef"`. */
283
+ function refusalDetail(body) {
284
+ try {
285
+ const parsed = JSON.parse(body);
286
+ if (!parsed || typeof parsed !== "object")
287
+ return "";
288
+ const o = parsed, e = (o.error && typeof o.error === "object" ? o.error : o);
289
+ // The backend's specific reason is in params.problem (go-kit errs);
290
+ // message is the generic factory text. Older bodies use a string error.
291
+ const params = (o.params && typeof o.params === "object" ? o.params : {});
292
+ const parts = [e.code, e.ref ?? o.ref, params.problem, e.message ?? o.message, typeof o.error === "string" ? o.error : undefined, e.detail]
293
+ .filter((v, i, all) => typeof v === "string" && v.length > 0 && all.indexOf(v) === i);
294
+ return parts.length ? ` · ${parts.join(" · ").slice(0, 400)}` : "";
295
+ }
296
+ catch {
297
+ return "";
298
+ }
299
+ }
255
300
  const TERMINAL_REVIEW_STATUSES = new Set(["completed", "partial", "failed", "cancelled", "skipped", "superseded"]);
256
301
  const ACTIVE_REVIEW_STATUSES = new Set(["queued", "running", "publishing"]);
257
302
  function runPath(id) {
@@ -661,10 +706,12 @@ export function registerReviewCommands(program, addExamples, outputOption, orgOp
661
706
  .option("--directory <directory>", "checkout to review (default: current directory)")
662
707
  .option("--preview", "inspect selected paths and upload size locally; no auth, upload or inference")
663
708
  .option("--timeout <seconds>", "cancel after this many seconds including capture and queue time (1-1800; default 1200, 1800 for deep)")
664
- .option("--request-id <uuid>", "recover an uncertain admission with exactly the same source, profile and context"))
709
+ .option("--request-id <uuid>", "recover an uncertain admission with exactly the same source, profile and context")
710
+ .option("--gate", "exit 0 only on an approve recommendation, 2 on changes requested, 1 when there is no recommendation; a timeout (124) or interrupt (130/143) keeps its own code and is never approval"))
665
711
  .action(cmdReviewLocal), ` heyditto review local --preview\n heyditto review local --staged --profile quick --org omniaura\n heyditto review local --base main --context-file .tmp/task.md --output json`);
666
712
  scoped(review.command("local-status").description("inspect a pre-PR review run without starting or retrying it")
667
- .argument("<run-id>", "local review run UUID")).action(cmdReviewLocalStatus);
713
+ .argument("<run-id>", "local review run UUID")
714
+ .option("--gate", "exit 0 only on approve (never, since status cannot verify the working tree), 2 on changes, 1 otherwise")).action(cmdReviewLocalStatus);
668
715
  scoped(review.command("local-cancel").description("cancel a queued or running pre-PR review")
669
716
  .argument("<run-id>", "local review run UUID")).action(cmdReviewLocalCancel);
670
717
  const watched = (command) => command
@@ -1 +1 @@
1
- {"version":3,"file":"review-commands.js","sourceRoot":"","sources":["../src/review-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAgB,cAAc,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAqExE,kDAAkD;AAClD,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,SAAS,MAAM,CAAC,OAA4B;IAC1C,OAAO,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAqB;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,cAAc,EAAE,CAAC,EAAE,cAAc,CAAC;IAC/E,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,UAAU,CAAC,OAA4B;IAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,YAAY,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAA4B;IACvE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAwC,iBAAiB,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1G,OAAO,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;AAChC,CAAC;AAqED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,2GAA2G,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9I,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;IAC/G,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,GAAa,EAAE,OAAqB;IACzD,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,KAAK,eAAe,GAAG,CAAC,cAAc,IAAI,CAAC,CAAC;IAC1H,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3I,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,WAAW,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,+BAA+B,IAAI,CAAC,CAAC;QACnK,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,SAAS,MAAM,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE,IAAI,CAAC,CAAC;IACzL,CAAC;;QAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC7E,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;IAC3J,IAAI,MAAM,EAAE,KAAK,EAAE,eAAe,KAAK,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC1I,IAAI,GAAG,CAAC,gBAAgB,KAAK,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;IAClJ,IAAI,GAAG,CAAC,gBAAgB,KAAK,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;IAC7J,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,UAAU,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IACzG,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,cAAc,WAAW,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,gBAAgB,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9K,IAAI,GAAG,CAAC,KAAK,IAAI,MAAM,EAAE,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;AACjG,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,MAAmB;IAC5D,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YAAC,OAAO,MAAM,QAAQ,CAAW,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAAC,CAAC;QAC3D,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,KAAK,YAAY,SAAS,IAAI,CAAC,KAAK,YAAY,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1I,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACvF,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAqB;IACxD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACnG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;IAC3C,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACnH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAAC,IAAI,CAAC;YAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAAC,CAAC;IAAC,CAAC;IACxH,4EAA4E;IAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IAChH,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxI,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAC/K,0DAA0D;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,WAAW,GAAG,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,KAAyB,EAAE,MAAM,GAAG,KAAK,EAAE,YAAgC,CAAC;IACnH,MAAM,SAAS,GAAG,CAAC,MAAsB,EAAE,EAAE,GAAG,WAAW,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACtH,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,UAAU,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,GAAW,EAAE;QAC5B,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QAC9F,IAAI,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACxF,IAAI,OAAO,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACtE,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvH,CAAC,CAAC;IACF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAChJ,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC7B,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO;YACnG,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM;YACvH,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACxH,eAAe,EAAE,QAAQ,CAAC,eAAe,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC9G,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,MAAM,CAAC,OAAO,CAAC;gBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,OAAO,eAAe,QAAQ,CAAC,MAAM,uBAAuB,QAAQ,CAAC,YAAY,CAAC,MAAM,oBAAoB,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,mBAAmB,OAAO,CAAC,YAAY,mBAAmB,CAAC,CAAC;YACnQ,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YAC9E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,QAAQ,CAAC,cAAc,CAAC,MAAM,oBAAoB,QAAQ,CAAC,OAAO,CAAC,MAAM,4CAA4C,CAAC,CAAC;YAChK,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;YAC7G,IAAI,MAAM,CAAC,OAAO,CAAC;gBAAE,SAAS,CAAC,KAAK,CAAC,CAAC;;gBAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACzG,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,IAAI,oBAAoB,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9K,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,8DAA8D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClJ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,YAAY,CAAC,MAAM,uBAAuB,QAAQ,CAAC,SAAS,CAAC,MAAM,mBAAmB,OAAO,CAAC,YAAY,eAAe,OAAO,6BAA6B,QAAQ,CAAC,cAAc,CAAC,MAAM,eAAe,SAAS,IAAI,CAAC,CAAC;QACpQ,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9D,MAAM,GAAG,IAAI,CAAC;QACd,0EAA0E;QAC1E,+DAA+D;QAC/D,IAAI,GAAG,GAAG,MAAM,QAAQ,CAAW,+BAA+B,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE;YAC3H,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SAC5H,CAAC,CAAC;QACH,IAAI,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAAC,CAAC;QAC7F,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,KAAK,IAAI,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,6BAA6B,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,SAAS,CAAC;YACR,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;YAC9D,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;gBAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC;YAAC,CAAC;YACxG,IAAI,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,IAAI,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBACrH,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC1L,GAAG,CAAC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC;gBACrE,CAAC;gBAAC,MAAM,CAAC;oBAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAAC,GAAG,CAAC,sBAAsB,GAAG,kCAAkC,CAAC;gBAAC,CAAC;gBACzG,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC5B,IAAI,WAAW;oBAAE,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC;qBAC3C,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,KAAK,IAAI,CAAC;oBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACxJ,OAAO;YACT,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3G,MAAM,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,6BAA6B,kBAAkB,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7J,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,KAAK,KAAK,CAAC,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,KAAK,sCAAsC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAAC,CAAC;QAC1L,CAAC;QACD,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,0BAA0B,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,2CAA2C,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnM,IAAI,MAAM,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,QAAQ,EAAE,iFAAiF,CAAC,CAAC;YACvK,OAAO,CAAC,QAAQ,GAAG,WAAW,IAAI,GAAG,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,KAAK,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC/F,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;YAC3I,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,SAAS,kCAAkC,QAAQ,EAAE,+EAA+E,CAAC,CAAC;QAChR,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;QAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAU,EAAE,OAAqB;IAC1E,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAW,6BAA6B,kBAAkB,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClH,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,sBAAsB,GAAG,gDAAgD,CAAC;IAC9E,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAU,EAAE,OAAqB;IAC1E,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,6BAA6B,kBAAkB,CAAC,EAAE,CAAC,UAAU,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtI,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,SAAS,CAAC,MAAM,CAAC,CAAC;;QAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AACnH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;AAE5E,SAAS,OAAO,CAAC,EAAU;IACzB,IAAI,CAAC,iEAAiE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAAgB,EAAE,OAA4B;IAChF,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,wFAAwF,CAAC,CAAC;IAChI,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,QAAQ,CAAC,MAAoB,EAAE,OAAqB;IAC3D,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;IACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3I,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,SAAS;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC;IAClE,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,IAAI,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAA4B,EAAE,OAAqB;IACrF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAa,iBAAiB,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/E,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC1B,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACtG,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,kCAAkC,CAAC,CAAC;QAC1E,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACrF,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAChK,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAqB;IAC1E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,QAAQ,CACxB,+BAA+B,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,CACzF,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;IAC5F,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU,EAAE,OAAqB;IACrE,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,QAAQ,CAAe,GAAG,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,WAAW,CAAC,OAAqB;IACxC,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;QACzE,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI;KAC5E,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAU,EAAE,OAA4B,EAAE,OAAqB;IACxF,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAC/C,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,SAAS,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,EAAE,sCAAsC,CAAC,CAAC;QAC9G,IAAI,MAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAe,GAAG,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;QACjI,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,EAAE,sCAAsC,CAAC,CAAC;YAC7H,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QACjC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC;YAClD,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;QACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1B,IAAI,MAAM,KAAK,QAAQ;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;QAC7F,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAU,EAAE,OAAqB;IACpE,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,QAAgB,EAAE,OAAqB;IAC5F,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,aAAa,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,KAAK;QAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,QAAQ,CACxB,+BAA+B,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,MAAM,UAAU,UAAU,CAAC,OAAO,CAAC,EAAE,EACzG,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,KAAK,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACzF,IAAI,GAAG,CAAC,eAAe;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qGAAqG,CAAC,CAAC;QACrJ,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,KAAK,GAAG,CAAC,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IACxF,IAAI,GAAG,CAAC,eAAe;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;AAClH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAU,EAAE,MAA0B,EAAE,OAAqB;IACjG,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,QAAQ,CACxB,GAAG,KAAK,IAAI,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAC/D,CAAC;IACF,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACnN,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC;AAC5F,SAAS,kBAAkB,CAAC,KAAyC;IACnE,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AAChH,CAAC;AACD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACrH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAAC,IAAI,OAAO,KAAK,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QAC5G,IAAI,CAAE,UAAgC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7K,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,sHAAsH,CAAC,CAAC;QAChJ,CAAC;IACH,CAAC;IACD,OAAO,KAAwB,CAAC;AAClC,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAqB;IACxD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8CAA8C,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9G,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QACxB,GAAG,CAAC,CAAC,UAAU,MAAM;QACrB,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;QACpB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO;KACV,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9F,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/G,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,qBAAqB,CAAC,IAAsB;IAC1D,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,QAAQ;QACzB,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;QACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE;QAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;QACvC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW,EAAE,GAAW;IACpE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gCAAgC,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;IACxH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAmB;IACtE,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC9H,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7G,IAAI,OAAO,CAAC,cAAc;QAAE,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;IACnD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAC1I,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACjI,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC1G,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACjG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,kCAAkC,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,2CAA2C,GAAG;YAC3H,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACnD,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAmB,8BAA8B,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE;QAClG,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE;KACrD,CAAC,CAAC;IACH,IAAI,WAAW,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5G,0EAA0E;QAC1E,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAA4B,CAAC,CAAC,EAAE,CAAC;YACrI,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAsB,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1C,IAAI,WAAW,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9F,IAAI,YAAY,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,UAAU,MAAM,CAAC,CAAC;IACtG,IAAI,aAAa,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACnH,IAAI,SAAS,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACvH,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAC3F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpL,CAAC;IACH,CAAC;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAWD,yGAAyG;AACzG,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC,SAAS,KAAK,CAAC,IAAY,EAAE,KAAyB;IACpD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC;IACpF,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAmB;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,uCAAuC,CAAC,CAAC;IAC1H,MAAM,UAAU,GACd,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;IAC9I,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACrI,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;IAC/E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC;IAC9E,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,sCAAsC,KAAK,0CAA0C,IAAI,MAAM,CAAC,CAAC;IAC1H,CAAC;IACD,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,IAAI,CAAC,MAAM,KAAK,CAAC;gBACf,CAAC,CAAC,gBAAgB,KAAK,oIAAoI;gBAC3J,CAAC,CAAC,qCAAqC,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,uCAAuC,CACjI,CAAC;QACJ,CAAC;QACD,UAAU,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IACxB,CAAC;IACD,MAAM,IAAI,GAA4B;QACpC,QAAQ,EAAE,IAAI;QACd,UAAU;QACV,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,EAAE;QAChB,WAAW;QACX,UAAU;QACV,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,cAAc,EAAE,QAAQ;KACzB,CAAC;IACF,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAmB,8BAA8B,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3H,IAAI,KAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kEAAkE;QAClE,qEAAqE;QACrE,0DAA0D;QAC1D,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,MAAM,KAAK,CAAC;QACzB,IAAI,CAAC,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG;QACZ,SAAS,KAAK,CAAC,QAAQ,IAAI,IAAI,mBAAmB,KAAK,GAAG;QAC1D,iBAAiB,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG;QAClH,iBAAiB,KAAK,CAAC,UAAU,IAAI,UAAU,MAAM;QACrD,iBAAiB,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,EAAE;QAC1D,iBAAiB,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE;KAClD,CAAC;IACF,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACxJ,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,2CAA2C,KAAK,CAAC,QAAQ,IAAI,IAAI,SAAS,CAAC,CAAC;IACvF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAgB,EAChB,WAAgD,EAChD,YAA0B,EAC1B,SAAuB;IAEvB,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,sDAAsD,CAAC;SACnE,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC7C,WAAW,CACT,MAAM;SACH,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACrC,WAAW,CAAC,+CAA+C,CAAC;SAC5D,SAAS,CAAC,SAAS,EAAE,CAAC;SACtB,SAAS,CAAC,YAAY,EAAE,CAAC;SACzB,MAAM,CAAC,cAAc,CAAC,EACzB;sCACkC,CACnC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAW,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IACvG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACvC,WAAW,CAAC,gHAAgH,CAAC;SAC7H,MAAM,CAAC,UAAU,EAAE,mEAAmE,CAAC;SACvF,MAAM,CAAC,cAAc,EAAE,wFAAwF,CAAC;SAChH,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,EAAE,OAAO,CAAC;SACjF,MAAM,CAAC,uBAAuB,EAAE,2DAA2D,CAAC;SAC5F,MAAM,CAAC,2BAA2B,EAAE,+DAA+D,CAAC;SACpG,MAAM,CAAC,yBAAyB,EAAE,iDAAiD,CAAC;SACpF,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;SACnG,MAAM,CAAC,qBAAqB,EAAE,uGAAuG,CAAC;SACtI,MAAM,CAAC,qBAAqB,EAAE,kFAAkF,CAAC,CAAC;SAClH,MAAM,CAAC,cAAc,CAAC,EACvB,mLAAmL,CAAC,CAAC;IACvL,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,6DAA6D,CAAC;SAC7G,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC/E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC;SAC1F,QAAQ,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAW,EAAE,CAAC,OAAO;SACnD,MAAM,CAAC,sBAAsB,EAAE,8BAA8B,EAAE,IAAI,CAAC;SACpE,MAAM,CAAC,qBAAqB,EAAE,yDAAyD,EAAE,MAAM,CAAC,CAAC;IACpG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,2CAA2C,CAAC;SACnF,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC;SACtF,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClE,WAAW,CACT,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,uGAAuG,CAAC;SACxJ,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;SAC1F,MAAM,CAAC,SAAS,EAAE,4CAA4C,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,EAC3F,2EAA2E,CAC5E,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,2DAA2D,CAAC;SACrG,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,+DAA+D,CAAC;SAChH,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACpE,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAU,EAAE,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO;YAC1D,CAAC,CAAC,0FAA0F;YAC5F,CAAC,CAAC,iEAAiE,CAAC;aACnE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAU,EAAE,OAAqB,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClI,CAAC;IACD,WAAW,CACT,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,qJAAqJ,CAAC;SAClK,QAAQ,CAAC,mBAAmB,EAAE,wDAAwD,CAAC;SACvF,MAAM,CAAC,OAAO,EAAE,sGAAsG,CAAC;SACvH,MAAM,CAAC,QAAQ,EAAE,2DAA2D,CAAC;SAC7E,MAAM,CAAC,QAAQ,EAAE,2DAA2D,CAAC;SAC7E,MAAM,CAAC,sBAAsB,EAAE,iDAAiD,CAAC;SACjF,MAAM,CAAC,qBAAqB,EAAE,4DAA4D,CAAC;SAC3F,SAAS,CAAC,YAAY,EAAE,CAAC;SACzB,MAAM,CAAC,eAAe,CAAC,EAC1B;;;+CAG2C,CAC5C,CAAC;IACF,WAAW,CACT,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,6GAA6G,CAAC;SAC1H,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,MAAM,CAAC,iBAAiB,EAAE,iFAAiF,CAAC;SAC5G,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,eAAe,IAAI,eAAe,aAAa,uBAAuB,GAAG,CAAC;SACnI,MAAM,CAAC,oBAAoB,EAAE,yDAAyD,wBAAwB,GAAG,CAAC;SAClH,MAAM,CAAC,qBAAqB,EAAE,2DAA2D,CAAC;SAC1F,MAAM,CAAC,iBAAiB,EAAE,6EAA6E,CAAC;SACxG,MAAM,CAAC,QAAQ,EAAE,yFAAyF,CAAC;SAC3G,SAAS,CAAC,SAAS,EAAE,CAAC;SACtB,SAAS,CAAC,YAAY,EAAE,CAAC;SACzB,MAAM,CAAC,YAAY,CAAC,EACvB;;yFAEqF,CACtF,CAAC;IACF,WAAW,CACT,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,oEAAoE,CAAC;SACjF,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;SACtC,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,eAAe,IAAI,eAAe,GAAG,CAAC;SAC/F,MAAM,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;SAC7E,MAAM,CAAC,oBAAoB,EAAE,wCAAwC,CAAC;SACtE,MAAM,CAAC,0BAA0B,EAAE,oGAAoG,CAAC;SACxI,MAAM,CAAC,oBAAoB,EAAE,0BAA0B,CAAC;SACxD,MAAM,CAAC,iBAAiB,EAAE,6EAA6E,CAAC;SACxG,SAAS,CAAC,SAAS,EAAE,CAAC;SACtB,SAAS,CAAC,YAAY,EAAE,CAAC;SACzB,MAAM,CAAC,YAAY,CAAC,EACvB;;wDAEoD,CACrD,CAAC;IACF,6BAA6B,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"review-commands.js","sourceRoot":"","sources":["../src/review-commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * The local review recommendation: the one place that decides whether a
3
+ * local review run may be read as approval.
4
+ *
5
+ * Fail closed. Only a completed run in which every changed file was fully
6
+ * reviewed on every lens, with a well-formed result, a verified current
7
+ * working tree, no blocking finding, no unverified candidate, and no
8
+ * unresolved reuse or PR-inheritance claim yields "approve". Bounded
9
+ * surrounding context is reported but does not block (DITTO-2455). A run with
10
+ * blocking findings yields "changes" (findings are evidence even from a
11
+ * partial run). Everything else, including failed, partial, cancelled,
12
+ * timed-out, malformed or budget-exhausted runs, yields "none": no
13
+ * recommendation, and never approval.
14
+ */
15
+ export type Verdict = "approve" | "changes" | "none";
16
+ export interface Recommendation {
17
+ verdict: Verdict;
18
+ /** True only for verdict "approve". Kept explicit for scripts and agents. */
19
+ approved: boolean;
20
+ /** Why the verdict is what it is; always non-empty unless approved cleanly. */
21
+ reasons: string[];
22
+ blocking: number;
23
+ nits: number;
24
+ }
25
+ export interface LocalRunLike {
26
+ status?: unknown;
27
+ error?: unknown;
28
+ workspaceCurrent?: boolean | null;
29
+ reuse?: unknown;
30
+ inheritance?: unknown;
31
+ result?: unknown;
32
+ }
33
+ type Obj = Record<string, unknown>;
34
+ /** The findings list of a result, or undefined when there is no list. A
35
+ * present JSON null is Go's nil-slice encoding of an empty list: production
36
+ * engines (ditto-review before the foldSystemic fix) send it for every clean
37
+ * review. An absent key is not a list. */
38
+ export declare function findingsList(result: unknown): Obj[] | undefined;
39
+ /** Shape problems in a terminal run that make its result unusable as evidence.
40
+ * Returns an empty list when the run is well formed. */
41
+ export declare function malformedLocalRun(run: LocalRunLike): string[];
42
+ /** Reuse receipts (DITTO-1502) and PR inheritance (DITTO-1547) are hard
43
+ * gates: a recommendation is only produced when every claimed reuse or
44
+ * inheritance resolved, and this client can verify that it did. */
45
+ export declare function reuseAndInheritanceProblems(run: LocalRunLike): string[];
46
+ /** A finding counts unless the engine explicitly withheld or deduplicated it.
47
+ * Any other status, including a missing, empty or unrecognized one, counts, so
48
+ * a blocking finding can never hide from the gate. */
49
+ export declare function isVisibleFinding(f: Obj): boolean;
50
+ export declare function recommendLocalReview(run: LocalRunLike): Recommendation;
51
+ /** Exit code under --gate: 0 approve, 2 changes, 1 no recommendation. */
52
+ export declare function gateExitCode(rec: Recommendation): number;
53
+ export declare function formatRecommendation(rec: Recommendation): string;
54
+ export {};
@@ -0,0 +1,202 @@
1
+ /**
2
+ * The local review recommendation: the one place that decides whether a
3
+ * local review run may be read as approval.
4
+ *
5
+ * Fail closed. Only a completed run in which every changed file was fully
6
+ * reviewed on every lens, with a well-formed result, a verified current
7
+ * working tree, no blocking finding, no unverified candidate, and no
8
+ * unresolved reuse or PR-inheritance claim yields "approve". Bounded
9
+ * surrounding context is reported but does not block (DITTO-2455). A run with
10
+ * blocking findings yields "changes" (findings are evidence even from a
11
+ * partial run). Everything else, including failed, partial, cancelled,
12
+ * timed-out, malformed or budget-exhausted runs, yields "none": no
13
+ * recommendation, and never approval.
14
+ */
15
+ /** Severities that block approval. Anything not listed as a nit blocks, so an
16
+ * unknown or missing severity can never be read as clean. */
17
+ const NIT_SEVERITIES = new Set(["low", "info", "nit"]);
18
+ const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
19
+ /** The findings list of a result, or undefined when there is no list. A
20
+ * present JSON null is Go's nil-slice encoding of an empty list: production
21
+ * engines (ditto-review before the foldSystemic fix) send it for every clean
22
+ * review. An absent key is not a list. */
23
+ export function findingsList(result) {
24
+ if (!isObj(result) || !("findings" in result))
25
+ return undefined;
26
+ if (result.findings === null)
27
+ return [];
28
+ return Array.isArray(result.findings) && result.findings.every(isObj) ? result.findings : undefined;
29
+ }
30
+ /** Shape problems in a terminal run that make its result unusable as evidence.
31
+ * Returns an empty list when the run is well formed. */
32
+ export function malformedLocalRun(run) {
33
+ const problems = [];
34
+ if (typeof run.status !== "string")
35
+ problems.push("status is not a string");
36
+ if (run.result === undefined || run.result === null)
37
+ return problems;
38
+ if (!isObj(run.result)) {
39
+ problems.push("result is not an object");
40
+ return problems;
41
+ }
42
+ const r = run.result;
43
+ if (r.complete !== undefined && typeof r.complete !== "boolean")
44
+ problems.push("result.complete is not a boolean");
45
+ if (r.findings !== undefined && r.findings !== null) {
46
+ if (!Array.isArray(r.findings))
47
+ problems.push("result.findings is not an array");
48
+ else if (r.findings.some(f => !isObj(f)))
49
+ problems.push("result.findings contains a non-object entry");
50
+ }
51
+ if (r.local !== undefined && r.local !== null && !isObj(r.local))
52
+ problems.push("result.local is not an object");
53
+ return problems;
54
+ }
55
+ /** Reuse receipts (DITTO-1502) and PR inheritance (DITTO-1547) are hard
56
+ * gates: a recommendation is only produced when every claimed reuse or
57
+ * inheritance resolved, and this client can verify that it did. */
58
+ export function reuseAndInheritanceProblems(run) {
59
+ const problems = [];
60
+ const result = isObj(run.result) ? run.result : {};
61
+ const receipts = [["reuse", run.reuse], ["result.reuse", result.reuse]];
62
+ const present = receipts.filter(([, v]) => v !== undefined && v !== null);
63
+ for (const [where, value] of present) {
64
+ if (!isObj(value)) {
65
+ problems.push(`${where} is not an object; reuse resolution cannot be verified`);
66
+ continue;
67
+ }
68
+ if (value.version !== 1)
69
+ problems.push(`${where} has unsupported version ${JSON.stringify(value.version)}; reuse resolution cannot be verified`);
70
+ if (value.error !== undefined && value.error !== null && value.error !== "")
71
+ problems.push(`${where} reports a resolution error: ${String(value.error)}`);
72
+ for (const key of ["status", "resolution"]) {
73
+ const s = value[key];
74
+ if (s !== undefined && s !== "resolved" && s !== "verified")
75
+ problems.push(`${where}.${key} is ${JSON.stringify(s)}, not resolved`);
76
+ }
77
+ // null is Go's encoding of an empty list, as for findings.
78
+ if (value.unfinished !== undefined && value.unfinished !== null && !Array.isArray(value.unfinished))
79
+ problems.push(`${where}.unfinished is not an array`);
80
+ else if (Array.isArray(value.unfinished) && value.unfinished.length)
81
+ problems.push(`${where} has ${value.unfinished.length} unfinished work unit(s)`);
82
+ }
83
+ // Two copies of the receipt must not disagree: a clear alias must not hide
84
+ // unfinished work in the other one.
85
+ if (present.length === 2 && canonical(present[0][1]) !== canonical(present[1][1]))
86
+ problems.push("reuse and result.reuse disagree; reuse resolution cannot be verified");
87
+ for (const [where, value] of [["inheritance", run.inheritance], ["result.inheritance", result.inheritance]]) {
88
+ if (value === undefined || value === null)
89
+ continue;
90
+ // No server contract for inherited local receipts exists in this client
91
+ // yet. Any claim of inheritance is therefore unverifiable here, and an
92
+ // unverifiable gate fails closed rather than being ignored.
93
+ problems.push(`${where} is present but this CLI cannot verify PR inheritance; upgrade @heyditto/cli`);
94
+ }
95
+ return problems;
96
+ }
97
+ /** The engine's statuses for candidates it did not post (ditto-review
98
+ * internal/hosted: "withheld" after verification, "duplicate" when folded). */
99
+ const UNPOSTED_STATUSES = new Set(["withheld", "duplicate"]);
100
+ /** Withheld reasons that are a decision about the candidate (ditto-review
101
+ * internal/hosted triage.go / declined.go). Any other withheld candidate,
102
+ * including verification_unavailable, candidate_limit,
103
+ * file_evidence_unavailable, comment_limit, repeat_with_new_evidence and
104
+ * reasons this client does not know, was never decided and blocks approval. */
105
+ const DECIDED_WITHHELD = new Set(["rejected_by_verifier", "below_confidence", "below_severity", "path_filtered", "documentation", "not_on_changed_line", "declined_earlier"]);
106
+ /** A finding counts unless the engine explicitly withheld or deduplicated it.
107
+ * Any other status, including a missing, empty or unrecognized one, counts, so
108
+ * a blocking finding can never hide from the gate. */
109
+ export function isVisibleFinding(f) {
110
+ return !(typeof f.status === "string" && UNPOSTED_STATUSES.has(f.status));
111
+ }
112
+ /** JSON with object keys sorted, so equal receipts compare equal. */
113
+ function canonical(value) {
114
+ if (Array.isArray(value))
115
+ return `[${value.map(canonical).join(",")}]`;
116
+ if (isObj(value))
117
+ return `{${Object.keys(value).sort().map(k => `${JSON.stringify(k)}:${canonical(value[k])}`).join(",")}}`;
118
+ return JSON.stringify(value) ?? "null";
119
+ }
120
+ function visibleFindings(result) {
121
+ return (findingsList(result) ?? []).filter(isVisibleFinding);
122
+ }
123
+ export function recommendLocalReview(run) {
124
+ const reasons = [];
125
+ let nitCount = 0;
126
+ const none = (extra = []) => ({ verdict: "none", approved: false, reasons: [...reasons, ...extra], blocking: 0, nits: nitCount });
127
+ const malformed = malformedLocalRun(run);
128
+ if (malformed.length)
129
+ return none(malformed.map(p => `malformed response: ${p}`));
130
+ const gate = reuseAndInheritanceProblems(run);
131
+ if (gate.length)
132
+ return none(gate);
133
+ const status = run.status;
134
+ const result = isObj(run.result) ? run.result : undefined;
135
+ // Findings are evidence even when coverage was bounded, so a partial run
136
+ // with blocking findings is CHANGES. Failed and cancelled runs present no
137
+ // usable result at all.
138
+ if (result && findingsList(result) && (status === "completed" || status === "partial")) {
139
+ const findings = visibleFindings(result);
140
+ // A non-string severity is unknown, and unknown blocks.
141
+ const blocking = findings.filter(f => !(typeof f.severity === "string" && NIT_SEVERITIES.has(f.severity.toLowerCase()))).length;
142
+ const nits = findings.length - blocking;
143
+ if (blocking)
144
+ return { verdict: "changes", approved: false, reasons: [`${blocking} blocking finding(s)`], blocking, nits };
145
+ nitCount = nits;
146
+ reasons.push(...(nits ? [`${nits} non-blocking finding(s)`] : []));
147
+ }
148
+ if (status !== "completed")
149
+ return none([`run status is ${status}; only a completed run can approve`]);
150
+ if (!result)
151
+ return none(["no review result is available"]);
152
+ if (result.complete !== true)
153
+ return none(["review coverage is incomplete (result.complete is not true)"]);
154
+ if (!findingsList(result))
155
+ return none(["result has no findings list; an absent list is not a clean review"]);
156
+ const present = (v) => v !== undefined && v !== null && v !== "";
157
+ if (present(run.error))
158
+ return none([`run error: ${typeof run.error === "string" ? run.error : JSON.stringify(run.error)}`]);
159
+ if (present(result.error))
160
+ return none([`result error: ${typeof result.error === "string" ? result.error : JSON.stringify(result.error)}`]);
161
+ // Every lens must finish every changed file. Local reviews only review the
162
+ // changed paths, so any abbreviated or failed entry is unfinished changed
163
+ // work (production run b14c5978 abbreviated its main file yet reported
164
+ // changed coverage complete). A missing coverage report is not complete.
165
+ // A present null is Go's nil-slice encoding of an empty list.
166
+ const files = isObj(result.files) ? result.files : undefined;
167
+ const list = (v) => (v === null ? [] : Array.isArray(v) ? v : undefined);
168
+ const abbreviated = files && "abbreviated" in files ? list(files.abbreviated) : undefined;
169
+ const failed = files && "failed" in files ? list(files.failed) : undefined;
170
+ if (!abbreviated || !failed)
171
+ return none(["the result has no per-file coverage report"]);
172
+ if (abbreviated.length || failed.length)
173
+ return none([`${abbreviated.length + failed.length} changed file(s) were reviewed briefly or not reviewed by every lens`]);
174
+ // Local receipts always carry both flags; anything but true is incomplete.
175
+ const local = isObj(result.local) ? result.local : {};
176
+ if (local.changedCoverageComplete !== true)
177
+ return none(["changed paths were not fully reviewed"]);
178
+ // An undecided withheld candidate means a change was not fully judged. The
179
+ // engine clears changedCoverageComplete for some (ditto-review#96); this
180
+ // check is independent and allowlist-based.
181
+ const held = (findingsList(result) ?? []).filter(f => f.status === "withheld" && !(typeof f.withheldReason === "string" && DECIDED_WITHHELD.has(f.withheldReason))).length;
182
+ if (held)
183
+ return none([`${held} withheld candidate finding(s) were not decided (unverified, over a limit, or an unknown reason)`]);
184
+ // DITTO-2455 (owner decision): a local review is complete once every change
185
+ // is fully reviewed, even when surrounding context is bounded. Bounded
186
+ // context is reported, never treated as approval-blocking.
187
+ if (local.contextComplete !== true)
188
+ reasons.push("surrounding context was bounded; omitted files were not reviewed");
189
+ if (run.workspaceCurrent !== true)
190
+ return none([run.workspaceCurrent === false ? "the working tree changed after capture" : "the current working tree could not be verified against the reviewed snapshot"]);
191
+ const nits = visibleFindings(result).length;
192
+ return { verdict: "approve", approved: true, reasons, blocking: 0, nits };
193
+ }
194
+ /** Exit code under --gate: 0 approve, 2 changes, 1 no recommendation. */
195
+ export function gateExitCode(rec) {
196
+ return rec.verdict === "approve" ? 0 : rec.verdict === "changes" ? 2 : 1;
197
+ }
198
+ export function formatRecommendation(rec) {
199
+ const head = rec.verdict === "approve" ? "Recommendation: approve" : rec.verdict === "changes" ? "Recommendation: changes requested" : "Recommendation: none (not approval)";
200
+ return `${head}${rec.reasons.length ? ` — ${rec.reasons.join("; ")}` : ""}\n`;
201
+ }
202
+ //# sourceMappingURL=review-recommendation.js.map