@opvs-ai/cli 0.26.0 → 0.27.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.
- package/README.md +25 -0
- package/dist/.build-stamp.json +4 -4
- package/dist/commands/calendar.d.ts +3 -0
- package/dist/commands/calendar.js +294 -0
- package/dist/commands/calendar.js.map +1 -0
- package/dist/commands/code.js +323 -1
- package/dist/commands/code.js.map +1 -1
- package/dist/commands/engines.d.ts +49 -0
- package/dist/commands/engines.js +306 -0
- package/dist/commands/engines.js.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/calendar-spec.d.ts +62 -0
- package/dist/lib/calendar-spec.js +199 -0
- package/dist/lib/calendar-spec.js.map +1 -0
- package/dist/lib/card-anchors.d.ts +12 -0
- package/dist/lib/card-anchors.js +67 -0
- package/dist/lib/card-anchors.js.map +1 -0
- package/package.json +2 -2
package/dist/commands/code.js
CHANGED
|
@@ -29,7 +29,9 @@
|
|
|
29
29
|
* `format=undefined` is a literal string on the URL. Each `if (opts.x) ...`
|
|
30
30
|
* gate exists so the request the server sees is the request the user asked for.
|
|
31
31
|
*/
|
|
32
|
-
import {
|
|
32
|
+
import { readFile } from "node:fs/promises";
|
|
33
|
+
import { codeCallers, createClient, getEffectiveConfig, } from "@opvs-ai/core";
|
|
34
|
+
import { extractCardAnchors, } from "../lib/card-anchors.js";
|
|
33
35
|
import { buildUrl, printResponse } from "../lib/format.js";
|
|
34
36
|
export function registerCodeCommands(program) {
|
|
35
37
|
const code = program
|
|
@@ -71,6 +73,140 @@ export function registerCodeCommands(program) {
|
|
|
71
73
|
process.exit(1);
|
|
72
74
|
}
|
|
73
75
|
});
|
|
76
|
+
// ── callers: resolve anchors, then ask who calls their live nodes ──
|
|
77
|
+
const MAX_CALLER_ANCHORS = 50;
|
|
78
|
+
code
|
|
79
|
+
.command("callers <anchors...>")
|
|
80
|
+
.description("Show callers and nearby test hints for up to 50 file or symbol anchors")
|
|
81
|
+
.requiredOption("--project <id>", "Project id (board_groups.id where kind=project)")
|
|
82
|
+
.option("--limit <n>", "Callers per anchor (1-100)", "20")
|
|
83
|
+
.option("--json", "Print the full JSON response plus unresolved anchors")
|
|
84
|
+
.option("--format <fmt>", "text | json (json returns the full response)")
|
|
85
|
+
.action(async (anchors, opts) => {
|
|
86
|
+
if (anchors.length > MAX_CALLER_ANCHORS) {
|
|
87
|
+
console.error(`Error: too many anchors (${anchors.length}); max is ${MAX_CALLER_ANCHORS}`);
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
const callersLimit = Number(opts.limit);
|
|
91
|
+
if (!Number.isInteger(callersLimit) || callersLimit < 1 || callersLimit > 100) {
|
|
92
|
+
console.error("Error: --limit must be an integer from 1 to 100");
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
const wsSlug = program.opts().workspace;
|
|
96
|
+
try {
|
|
97
|
+
const client = createClient(wsSlug);
|
|
98
|
+
const resolvedResponse = await client.post(`/api/v1/code/${opts.project}/nodes/resolve`, { anchors });
|
|
99
|
+
const resolutions = await resolvedResponse.json();
|
|
100
|
+
const live = resolutions.filter((item) => item.state === "live");
|
|
101
|
+
const unresolvedAnchors = resolutions
|
|
102
|
+
.filter((item) => item.state !== "live")
|
|
103
|
+
.map((item) => ({
|
|
104
|
+
anchor: item.anchor,
|
|
105
|
+
state: item.state,
|
|
106
|
+
moved_to_anchor: item.moved_to_anchor ?? null,
|
|
107
|
+
}));
|
|
108
|
+
if (live.length === 0) {
|
|
109
|
+
if (opts.json || opts.format === "json") {
|
|
110
|
+
console.log(JSON.stringify({ results: [], unresolved_anchors: unresolvedAnchors }, null, 2));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
printUnresolvedAnchors(anchors, resolutions);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const nodeIds = live.map((item) => item.node_id);
|
|
117
|
+
const callersOptions = { callersLimit, testsLimit: 10 };
|
|
118
|
+
const response = wsSlug
|
|
119
|
+
? await codeCallers(opts.project, nodeIds, callersOptions, wsSlug)
|
|
120
|
+
: await codeCallers(opts.project, nodeIds, callersOptions);
|
|
121
|
+
if (response.degraded) {
|
|
122
|
+
console.warn("Warning: code index unavailable; caller information is degraded");
|
|
123
|
+
}
|
|
124
|
+
if (opts.json || opts.format === "json") {
|
|
125
|
+
console.log(JSON.stringify({ ...response, unresolved_anchors: unresolvedAnchors }, null, 2));
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
printCallersText(anchors, resolutions, response);
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
const e = err;
|
|
132
|
+
console.error(`Error: ${e.detail || "Failed to fetch code callers"}`);
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
// ── check-card: bounded index facts for a planner's draft brief ──
|
|
137
|
+
code
|
|
138
|
+
.command("check-card <brief.md>")
|
|
139
|
+
.description("Check a draft card's paths and names against the code index")
|
|
140
|
+
.option("--project <id>", "Project id (or OPVS_CODE_PROJECT)")
|
|
141
|
+
.option("--similar <words>", "Append existing code similar to these words (repeatable, max 5)", (value, previous) => [...previous, value], [])
|
|
142
|
+
.option("--strict", "Exit 1 when an anchor is absent and not declared new")
|
|
143
|
+
.option("--json", "Print the same facts as JSON")
|
|
144
|
+
.action(async (briefPath, opts) => {
|
|
145
|
+
const project = opts.project || process.env.OPVS_CODE_PROJECT;
|
|
146
|
+
if (!project) {
|
|
147
|
+
reportCannotCheckCard("project required: pass --project <id> or set OPVS_CODE_PROJECT");
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const similarQueries = Array.isArray(opts.similar) ? opts.similar : [];
|
|
151
|
+
if (similarQueries.length > 5) {
|
|
152
|
+
reportCannotCheckCard("--similar may be repeated at most 5 times");
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
let markdown;
|
|
156
|
+
try {
|
|
157
|
+
markdown = await readFile(briefPath, "utf8");
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
reportCannotCheckCard(`cannot read brief: ${briefPath}`);
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
const extracted = extractCardAnchors(markdown);
|
|
164
|
+
const anchorNames = extracted.anchors.map((item) => item.anchor);
|
|
165
|
+
const wsSlug = program.opts().workspace;
|
|
166
|
+
try {
|
|
167
|
+
const client = createClient(wsSlug);
|
|
168
|
+
const resolvedResponse = await client.post(`/api/v1/code/${project}/nodes/resolve`, { anchors: anchorNames });
|
|
169
|
+
const resolutions = await resolvedResponse.json();
|
|
170
|
+
const resolutionByAnchor = new Map(resolutions.map((item) => [item.anchor, item]));
|
|
171
|
+
const live = resolutions.filter((item) => item.state === "live");
|
|
172
|
+
const nodeIds = live.map((item) => item.node_id);
|
|
173
|
+
const callersOptions = { callersLimit: 20, testsLimit: 10 };
|
|
174
|
+
const callersResponse = wsSlug
|
|
175
|
+
? await codeCallers(project, nodeIds, callersOptions, wsSlug)
|
|
176
|
+
: await codeCallers(project, nodeIds, callersOptions);
|
|
177
|
+
if (callersResponse.degraded || !callersResponse.index) {
|
|
178
|
+
reportCannotCheckCard("code index unavailable");
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const callerByNode = new Map(callersResponse.results.map((item) => [item.node_id, item]));
|
|
182
|
+
const facts = extracted.anchors.map((item) => cardAnchorFact(item, resolutionByAnchor.get(item.anchor), callersResponse, callerByNode));
|
|
183
|
+
const similar = await loadSimilarFacts(client, project, similarQueries);
|
|
184
|
+
const checkedAt = new Date().toISOString();
|
|
185
|
+
const output = {
|
|
186
|
+
version: "index-facts-v1",
|
|
187
|
+
project_id: project,
|
|
188
|
+
checked_at: checkedAt,
|
|
189
|
+
index: callersResponse.index,
|
|
190
|
+
paths_checked: facts.length,
|
|
191
|
+
paths_left_out: extracted.leftOut,
|
|
192
|
+
anchors: facts,
|
|
193
|
+
similar,
|
|
194
|
+
};
|
|
195
|
+
if (opts.json) {
|
|
196
|
+
console.log(JSON.stringify(output, null, 2));
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
console.log(boundIndexFactsMarkdown(indexFactsMarkdown(project, callersResponse, checkedAt, facts, extracted.leftOut, similar)));
|
|
200
|
+
}
|
|
201
|
+
if (opts.strict && facts.some((fact) => fact.in_index === "NO — not in the index and not declared new")) {
|
|
202
|
+
process.exitCode = 1;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
const e = err;
|
|
207
|
+
reportCannotCheckCard(e.detail || e.message || "code index unavailable");
|
|
208
|
+
}
|
|
209
|
+
});
|
|
74
210
|
// ── summary: the orientation document as data ───────────────────
|
|
75
211
|
code
|
|
76
212
|
.command("summary")
|
|
@@ -290,4 +426,190 @@ export function registerCodeCommands(program) {
|
|
|
290
426
|
}
|
|
291
427
|
});
|
|
292
428
|
}
|
|
429
|
+
function ageInWords(seconds) {
|
|
430
|
+
if (seconds < 60)
|
|
431
|
+
return `${Math.max(0, Math.floor(seconds))} s old`;
|
|
432
|
+
if (seconds < 3600)
|
|
433
|
+
return `${Math.floor(seconds / 60)} min old`;
|
|
434
|
+
if (seconds < 86_400)
|
|
435
|
+
return `${Math.floor(seconds / 3600)} h old`;
|
|
436
|
+
return `${Math.floor(seconds / 86_400)} d old`;
|
|
437
|
+
}
|
|
438
|
+
function nodeLabel(result, fallback) {
|
|
439
|
+
if (!result?.path)
|
|
440
|
+
return fallback;
|
|
441
|
+
return result.symbol ? `${result.path}#${result.symbol}` : result.path;
|
|
442
|
+
}
|
|
443
|
+
function printCallersText(anchors, resolutions, response) {
|
|
444
|
+
console.log(response.index
|
|
445
|
+
? `index: ${response.index.commit.slice(0, 7)}, ${ageInWords(response.index.age_seconds)}`
|
|
446
|
+
: "index: unavailable");
|
|
447
|
+
let resultIndex = 0;
|
|
448
|
+
for (let anchorIndex = 0; anchorIndex < anchors.length; anchorIndex += 1) {
|
|
449
|
+
const resolution = resolutions[anchorIndex];
|
|
450
|
+
if (!resolution || resolution.state !== "live") {
|
|
451
|
+
printUnresolvedAnchor(resolution?.anchor ?? anchors[anchorIndex], resolution);
|
|
452
|
+
continue;
|
|
453
|
+
}
|
|
454
|
+
const result = response.results[resultIndex];
|
|
455
|
+
resultIndex += 1;
|
|
456
|
+
console.log(`\n${nodeLabel(result, resolution.anchor)}`);
|
|
457
|
+
if (!response.calls_indexed) {
|
|
458
|
+
console.log("calls are not indexed for this repo: callers are UNKNOWN, not zero");
|
|
459
|
+
}
|
|
460
|
+
else if (!result?.callers_known) {
|
|
461
|
+
console.log("callers: UNKNOWN (calls are not indexed for this file type)");
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
console.log(`callers: ${result.callers_total} (showing ${result.callers.length})` +
|
|
465
|
+
(result.callers_truncated ? " — truncated" : ""));
|
|
466
|
+
for (const caller of result.callers) {
|
|
467
|
+
const label = caller.symbol ? `${caller.path}#${caller.symbol}` : caller.path;
|
|
468
|
+
console.log(` ${label} [${caller.resolution}]`);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
const hints = result?.nearby_tests.map((test) => test.path).join(", ") || "none";
|
|
472
|
+
console.log(`test hints (not coverage): ${hints}` +
|
|
473
|
+
(result?.nearby_tests_truncated ? " — truncated" : ""));
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
function printUnresolvedAnchors(anchors, resolutions) {
|
|
477
|
+
for (let anchorIndex = 0; anchorIndex < anchors.length; anchorIndex += 1) {
|
|
478
|
+
const resolution = resolutions[anchorIndex];
|
|
479
|
+
printUnresolvedAnchor(resolution?.anchor ?? anchors[anchorIndex], resolution);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
function printUnresolvedAnchor(anchor, resolution) {
|
|
483
|
+
let status = "NOT IN INDEX";
|
|
484
|
+
if (resolution?.state === "moved") {
|
|
485
|
+
status = resolution.moved_to_anchor
|
|
486
|
+
? `MOVED → ${resolution.moved_to_anchor}`
|
|
487
|
+
: "MOVED";
|
|
488
|
+
}
|
|
489
|
+
else if (resolution?.state === "removed") {
|
|
490
|
+
status = "REMOVED";
|
|
491
|
+
}
|
|
492
|
+
console.log(`\n${anchor}\n${status}`);
|
|
493
|
+
}
|
|
494
|
+
function reportCannotCheckCard(reason) {
|
|
495
|
+
console.error(`CANNOT: ${reason}`);
|
|
496
|
+
process.exitCode = 2;
|
|
497
|
+
}
|
|
498
|
+
function cardAnchorFact(cardAnchor, resolution, response, callerByNode) {
|
|
499
|
+
const state = resolution?.state ?? "unknown";
|
|
500
|
+
if (state === "moved") {
|
|
501
|
+
return {
|
|
502
|
+
anchor: cardAnchor.anchor,
|
|
503
|
+
declared_new: cardAnchor.declaredNew,
|
|
504
|
+
state,
|
|
505
|
+
moved_to_anchor: resolution?.moved_to_anchor ?? null,
|
|
506
|
+
in_index: resolution?.moved_to_anchor
|
|
507
|
+
? `MOVED → ${resolution.moved_to_anchor}`
|
|
508
|
+
: "MOVED",
|
|
509
|
+
callers: "n/a",
|
|
510
|
+
test_hints: "n/a",
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
if (state !== "live" || !resolution) {
|
|
514
|
+
return {
|
|
515
|
+
anchor: cardAnchor.anchor,
|
|
516
|
+
declared_new: cardAnchor.declaredNew,
|
|
517
|
+
state,
|
|
518
|
+
moved_to_anchor: null,
|
|
519
|
+
in_index: cardAnchor.declaredNew
|
|
520
|
+
? "no (declared new)"
|
|
521
|
+
: "NO — not in the index and not declared new",
|
|
522
|
+
callers: "n/a",
|
|
523
|
+
test_hints: "n/a",
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
const result = callerByNode.get(resolution.node_id);
|
|
527
|
+
let callers;
|
|
528
|
+
if (!response.calls_indexed) {
|
|
529
|
+
callers = "unknown (calls not indexed)";
|
|
530
|
+
}
|
|
531
|
+
else if (!result?.callers_known) {
|
|
532
|
+
callers = "unknown (calls not indexed for this file type)";
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
const shown = result.callers.slice(0, 5);
|
|
536
|
+
const exact = result.callers.filter((caller) => caller.resolution === "exact").length;
|
|
537
|
+
const heuristic = result.callers.filter((caller) => caller.resolution === "heuristic").length;
|
|
538
|
+
const labels = shown.map((caller) => caller.symbol ? `${caller.path}#${caller.symbol}` : caller.path);
|
|
539
|
+
const more = result.callers_total > shown.length ? ", …" : "";
|
|
540
|
+
callers = `${result.callers_total} (${exact} exact, ${heuristic} heuristic)` +
|
|
541
|
+
(labels.length > 0 ? `: ${labels.map(inlineCode).join(", ")}${more}` : "");
|
|
542
|
+
}
|
|
543
|
+
const testHints = result?.nearby_tests.length
|
|
544
|
+
? result.nearby_tests.map((test) => inlineCode(test.path)).join(", ")
|
|
545
|
+
: "none";
|
|
546
|
+
return {
|
|
547
|
+
anchor: cardAnchor.anchor,
|
|
548
|
+
declared_new: cardAnchor.declaredNew,
|
|
549
|
+
state,
|
|
550
|
+
moved_to_anchor: null,
|
|
551
|
+
in_index: "yes",
|
|
552
|
+
callers,
|
|
553
|
+
test_hints: testHints,
|
|
554
|
+
};
|
|
555
|
+
}
|
|
556
|
+
async function loadSimilarFacts(client, project, queries) {
|
|
557
|
+
const facts = [];
|
|
558
|
+
for (const query of queries) {
|
|
559
|
+
const response = await client.get(buildUrl(`/api/v1/code/${project}/context`, { query, limit: "5" }, "json"));
|
|
560
|
+
const body = await response.json();
|
|
561
|
+
for (const match of (body.matches ?? []).slice(0, 5)) {
|
|
562
|
+
const path = match.file_path;
|
|
563
|
+
const symbol = match.name;
|
|
564
|
+
const detail = firstLine(match.doc_first_line) || firstLine(match.signature) || "matching code";
|
|
565
|
+
facts.push({ query, anchor: symbol ? `${path}#${symbol}` : path, detail });
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
return facts;
|
|
569
|
+
}
|
|
570
|
+
function firstLine(value) {
|
|
571
|
+
return value?.split(/\r?\n/, 1)[0].trim() ?? "";
|
|
572
|
+
}
|
|
573
|
+
function indexFactsMarkdown(project, response, checkedAt, facts, leftOut, similar) {
|
|
574
|
+
const index = response.index;
|
|
575
|
+
const lines = [
|
|
576
|
+
"## Index facts",
|
|
577
|
+
`<!-- index-facts v1 commit=${index.commit} indexed_at=${index.indexed_at} checked_at=${checkedAt} -->`,
|
|
578
|
+
`index: ${index.commit.slice(0, 7)}, ${ageInWords(index.age_seconds)} · project ${project} · ${facts.length} paths checked`,
|
|
579
|
+
];
|
|
580
|
+
if (leftOut > 0) {
|
|
581
|
+
lines.push(`_${leftOut} ${leftOut === 1 ? "path" : "paths"} left out after the 50-anchor limit._`);
|
|
582
|
+
}
|
|
583
|
+
lines.push("| Anchor | In the index | Callers | Test hints (not coverage) |", "| --- | --- | --- | --- |");
|
|
584
|
+
for (const fact of facts) {
|
|
585
|
+
lines.push(`| ${inlineCode(fact.anchor)} | ${markdownCell(fact.in_index)} | ${markdownCell(fact.callers)} | ${markdownCell(fact.test_hints)} |`);
|
|
586
|
+
}
|
|
587
|
+
for (const fact of similar) {
|
|
588
|
+
lines.push(`Already exists for "${markdownText(fact.query)}": ${inlineCode(fact.anchor)} — ${markdownText(fact.detail)}`);
|
|
589
|
+
}
|
|
590
|
+
return lines.join("\n");
|
|
591
|
+
}
|
|
592
|
+
const INDEX_FACTS_MAX_BYTES = 6_000;
|
|
593
|
+
const INDEX_FACTS_TRUNCATED = "_Truncated: output exceeded 6,000 bytes._";
|
|
594
|
+
function boundIndexFactsMarkdown(markdown) {
|
|
595
|
+
if (Buffer.byteLength(`${markdown}\n`, "utf8") <= INDEX_FACTS_MAX_BYTES)
|
|
596
|
+
return markdown;
|
|
597
|
+
const kept = [];
|
|
598
|
+
for (const line of markdown.split("\n")) {
|
|
599
|
+
const candidate = [...kept, line, INDEX_FACTS_TRUNCATED].join("\n");
|
|
600
|
+
if (Buffer.byteLength(`${candidate}\n`, "utf8") > INDEX_FACTS_MAX_BYTES)
|
|
601
|
+
break;
|
|
602
|
+
kept.push(line);
|
|
603
|
+
}
|
|
604
|
+
return [...kept, INDEX_FACTS_TRUNCATED].join("\n");
|
|
605
|
+
}
|
|
606
|
+
function inlineCode(value) {
|
|
607
|
+
return `\`${markdownText(value).replaceAll("`", "\\`")}\``;
|
|
608
|
+
}
|
|
609
|
+
function markdownCell(value) {
|
|
610
|
+
return value.replaceAll("|", "\\|").replaceAll("\n", " ");
|
|
611
|
+
}
|
|
612
|
+
function markdownText(value) {
|
|
613
|
+
return value.replaceAll("|", "\\|").replaceAll("\r", " ").replaceAll("\n", " ");
|
|
614
|
+
}
|
|
293
615
|
//# sourceMappingURL=code.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/commands/code.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/commands/code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,GAGnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,GAEnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA0C3D,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0DAA0D,CAAC,CAAC;IAE3E,mEAAmE;IACnE,IAAI;SACD,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,qDAAqD,CAAC;SAClE,cAAc,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SACnF,MAAM,CAAC,eAAe,EAAE,kDAAkD,CAAC;SAC3E,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,iCAAiC,CAAC;SACxD,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAI,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,GAA2B,EAAE,KAAK,EAAE,CAAC;YACjD,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvC,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,uEAAuE;YACvE,4DAA4D;YAC5D,yEAAyE;YACzE,kEAAkE;YAClE,qCAAqC;YACrC,MAAM,GAAG,GAAG,QAAQ,CAClB,gBAAgB,IAAI,CAAC,OAAO,UAAU,EACtC,MAAM,EACN,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAC1B,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,8BAA8B,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sEAAsE;IACtE,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,IAAI;SACD,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,wEAAwE,CAAC;SACrF,cAAc,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SACnF,MAAM,CAAC,aAAa,EAAE,4BAA4B,EAAE,IAAI,CAAC;SACzD,MAAM,CAAC,QAAQ,EAAE,sDAAsD,CAAC;SACxE,MAAM,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,OAAiB,EAAE,IAAI,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,CACX,4BAA4B,OAAO,CAAC,MAAM,aAAa,kBAAkB,EAAE,CAC5E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,GAAG,EAAE,CAAC;YAC9E,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAA+B,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,IAAI,CACxC,gBAAgB,IAAI,CAAC,OAAO,gBAAgB,EAC5C,EAAE,OAAO,EAAE,CACZ,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAA0B,CAAC;YAC1E,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;YACjE,MAAM,iBAAiB,GAAG,WAAW;iBAClC,MAAM,CAAC,CAAC,IAAI,EAAqE,EAAE,CAClF,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;iBACvB,GAAG,CAAC,CAAC,IAAI,EAAoB,EAAE,CAAC,CAAC;gBAChC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;aAC9C,CAAC,CAAC,CAAC;YAEN,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC7F,OAAO;gBACT,CAAC;gBACD,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,cAAc,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM;gBACrB,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC;gBAClE,CAAC,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAE7D,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YACD,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,8BAA8B,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,oEAAoE;IACpE,IAAI;SACD,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,6DAA6D,CAAC;SAC1E,MAAM,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;SAC7D,MAAM,CACL,mBAAmB,EACnB,iEAAiE,EACjE,CAAC,KAAa,EAAE,QAAkB,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,EAC3D,EAAc,CACf;SACA,MAAM,CAAC,UAAU,EAAE,sDAAsD,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAI,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,qBAAqB,CAAC,gEAAgE,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QACD,MAAM,cAAc,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,qBAAqB,CAAC,2CAA2C,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAA+B,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,IAAI,CACxC,gBAAgB,OAAO,gBAAgB,EACvC,EAAE,OAAO,EAAE,WAAW,EAAE,CACzB,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAA0B,CAAC;YAC1E,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,cAAc,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC5D,MAAM,eAAe,GAAG,MAAM;gBAC5B,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC;gBAC7D,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAExD,IAAI,eAAe,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBACvD,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAC5D,CAAC;YACF,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAC1D,IAAI,EACJ,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EACnC,eAAe,EACf,YAAY,CACb,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG;gBACb,OAAO,EAAE,gBAAgB;gBACzB,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,SAAS;gBACrB,KAAK,EAAE,eAAe,CAAC,KAAK;gBAC5B,aAAa,EAAE,KAAK,CAAC,MAAM;gBAC3B,cAAc,EAAE,SAAS,CAAC,OAAO;gBACjC,OAAO,EAAE,KAAK;gBACd,OAAO;aACR,CAAC;YAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,kBAAkB,CACpD,OAAO,EACP,eAAe,EACf,SAAS,EACT,KAAK,EACL,SAAS,CAAC,OAAO,EACjB,OAAO,CACR,CAAC,CAAC,CAAC;YACN,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACrC,IAAI,CAAC,QAAQ,KAAK,4CAA4C,CAAC,EAAE,CAAC;gBAClE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA4C,CAAC;YACvD,qBAAqB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,IAAI,wBAAwB,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mEAAmE;IACnE,IAAI;SACD,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,gFAAgF,CAAC;SAC7F,cAAc,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SACnF,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;SAClE,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,MAAM,GAAG,GAAG,QAAQ,CAClB,gBAAgB,IAAI,CAAC,OAAO,UAAU,EACtC,MAAM,EACN,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAC1B,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,8BAA8B,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mEAAmE;IACnE,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0FAA0F,CAAC;SACvG,cAAc,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SACnF,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,2DAA2D,CAAC;SAClF,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,MAAM,GAAG,GAAG,QAAQ,CAClB,gBAAgB,IAAI,CAAC,OAAO,OAAO,EACnC,MAAM,EACN,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAC1B,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,2BAA2B,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mEAAmE;IACnE,IAAI;SACD,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,mFAAmF,CAAC;SAChG,cAAc,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SACnF,MAAM,CAAC,UAAU,EAAE,8DAA8D,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC;SAC5C,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,IAAI,EAAE,EAAE;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,uEAAuE;YACvE,qEAAqE;YACrE,kCAAkC;YAClC,IAAI,SAAS,KAAK,SAAS;gBAAE,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC1D,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,MAAM,GAAG,GAAG,QAAQ,CAClB,gBAAgB,IAAI,CAAC,OAAO,QAAQ,EACpC,MAAM,EACN,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAC1B,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,4BAA4B,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,oEAAoE;IACpE,IAAI;SACD,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,oDAAoD,CAAC;SACjE,cAAc,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SACnF,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;SAClE,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;SAC9C,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,IAAI,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,GAA2B,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,MAAM,GAAG,GAAG,QAAQ,CAClB,gBAAgB,IAAI,CAAC,OAAO,UAAU,EACtC,MAAM,EACN,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAC1B,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,8BAA8B,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,mEAAmE;IACnE,yEAAyE;IACzE,0EAA0E;IAC1E,wEAAwE;IACxE,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM,mBAAmB,GAAG,IAAI,CAAC;IACjC,IAAI;SACD,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,mFAAmF,CAAC;SAChG,cAAc,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SACnF,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,OAAiB,EAAE,IAAI,EAAE,EAAE;QACxC,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CACX,4BAA4B,OAAO,CAAC,MAAM,aAAa,mBAAmB,EAAE,CAC7E,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,GAAG,GAAG,QAAQ,CAClB,gBAAgB,IAAI,CAAC,OAAO,gBAAgB,EAC5C,SAAS,EACT,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAC1B,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAChD,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,8BAA8B,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,oEAAoE;IACpE,4EAA4E;IAC5E,2EAA2E;IAC3E,4EAA4E;IAC5E,sDAAsD;IACtD,EAAE;IACF,yEAAyE;IACzE,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,yEAAyE;IACzE,yDAAyD;IACzD,MAAM,mBAAmB,GAAG,GAAG,CAAC;IAChC,IAAI;SACD,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,cAAc,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SACnF,MAAM,CAAC,cAAc,EAAE,4CAA4C,CAAC;SACpE,MAAM,CAAC,eAAe,EAAE,wDAAwD,CAAC;SACjF,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;SAC7D,MAAM,CAAC,aAAa,EAAE,uCAAuC,CAAC;SAC9D,MAAM,CACL,gBAAgB,EAChB,oDAAoD,EACpD,CAAC,KAAa,EAAE,IAAc,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,EACnD,EAAc,CACf;SACA,MAAM,CACL,sBAAsB,EACtB,iEAAiE,CAClE;SACA,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,OAAO,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CACX,qCAAqC,OAAO,CAAC,MAAM,aAAa,mBAAmB,EAAE,CACtF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;QAClC,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,IAAI,CAAC,UAAU;gBAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YAC1D,MAAM,GAAG,GAAG,QAAQ,CAClB,gBAAgB,IAAI,CAAC,OAAO,gBAAgB,EAC5C,MAAM,EACN,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAC1B,CAAC;YACF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;gBACjC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO;qBAC7C,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;qBAChD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAChB,CAAC,CAAC,GAAG,CAAC;YACR,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,GAA0B,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,mCAAmC,EAAE,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;IACrE,IAAI,OAAO,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC;IACjE,IAAI,OAAO,GAAG,MAAM;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;AACjD,CAAC;AAED,SAAS,SAAS,CAAC,MAAqC,EAAE,QAAgB;IACxE,IAAI,CAAC,MAAM,EAAE,IAAI;QAAE,OAAO,QAAQ,CAAC;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACzE,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAiB,EACjB,WAAiC,EACjC,QAA6B;IAE7B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK;QACxB,CAAC,CAAC,UAAU,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;QAC1F,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAE1B,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC/C,qBAAqB,CAAC,UAAU,EAAE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,WAAW,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;QACpF,CAAC;aAAM,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,YAAY,MAAM,CAAC,aAAa,aAAa,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;gBACnE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CACnD,CAAC;YACF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;QACjF,OAAO,CAAC,GAAG,CACT,8BAA8B,KAAK,EAAE;YACnC,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CACzD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAAiB,EACjB,WAAiC;IAEjC,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,EAAE,CAAC;QACzE,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5C,qBAAqB,CAAC,UAAU,EAAE,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAc,EACd,UAA0C;IAE1C,IAAI,MAAM,GAAG,cAAc,CAAC;IAC5B,IAAI,UAAU,EAAE,KAAK,KAAK,OAAO,EAAE,CAAC;QAClC,MAAM,GAAG,UAAU,CAAC,eAAe;YACjC,CAAC,CAAC,WAAW,UAAU,CAAC,eAAe,EAAE;YACzC,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;SAAM,IAAI,UAAU,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,GAAG,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IAC3C,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CACrB,UAAsB,EACtB,UAA0C,EAC1C,QAA6B,EAC7B,YAA4C;IAE5C,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC;IAC7C,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,YAAY,EAAE,UAAU,CAAC,WAAW;YACpC,KAAK;YACL,eAAe,EAAE,UAAU,EAAE,eAAe,IAAI,IAAI;YACpD,QAAQ,EAAE,UAAU,EAAE,eAAe;gBACnC,CAAC,CAAC,WAAW,UAAU,CAAC,eAAe,EAAE;gBACzC,CAAC,CAAC,OAAO;YACX,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,YAAY,EAAE,UAAU,CAAC,WAAW;YACpC,KAAK;YACL,eAAe,EAAE,IAAI;YACrB,QAAQ,EAAE,UAAU,CAAC,WAAW;gBAC9B,CAAC,CAAC,mBAAmB;gBACrB,CAAC,CAAC,4CAA4C;YAChD,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5B,OAAO,GAAG,6BAA6B,CAAC;IAC1C,CAAC;SAAM,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,GAAG,gDAAgD,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QACtF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;QAC9F,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAClC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,OAAO,GAAG,GAAG,MAAM,CAAC,aAAa,KAAK,KAAK,WAAW,SAAS,aAAa;YAC1E,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3C,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACrE,CAAC,CAAC,MAAM,CAAC;IAEX,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,YAAY,EAAE,UAAU,CAAC,WAAW;QACpC,KAAK;QACL,eAAe,EAAE,IAAI;QACrB,QAAQ,EAAE,KAAK;QACf,OAAO;QACP,UAAU,EAAE,SAAS;KACtB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,MAAuC,EACvC,OAAe,EACf,OAAiB;IAEjB,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CACxC,gBAAgB,OAAO,UAAU,EACjC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EACrB,MAAM,CACP,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAqB,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;YAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC;YAChG,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAgC;IACjD,OAAO,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAe,EACf,QAA6B,EAC7B,SAAiB,EACjB,KAAuB,EACvB,OAAe,EACf,OAAsB;IAEtB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAM,CAAC;IAC9B,MAAM,KAAK,GAAG;QACZ,gBAAgB;QAChB,8BAA8B,KAAK,CAAC,MAAM,eAAe,KAAK,CAAC,UAAU,eAAe,SAAS,MAAM;QACvG,UAAU,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,OAAO,MAAM,KAAK,CAAC,MAAM,gBAAgB;KAC5H,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,uCAAuC,CAAC,CAAC;IACrG,CAAC;IACD,KAAK,CAAC,IAAI,CACR,iEAAiE,EACjE,2BAA2B,CAC5B,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CACR,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CACrI,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,uBAAuB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC9G,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,qBAAqB,GAAG,2CAA2C,CAAC;AAE1E,SAAS,uBAAuB,CAAC,QAAgB;IAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,IAAI,EAAE,MAAM,CAAC,IAAI,qBAAqB;QAAE,OAAO,QAAQ,CAAC;IACzF,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,IAAI,EAAE,MAAM,CAAC,GAAG,qBAAqB;YAAE,MAAM;QAC/E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* opvs engines — switch the build engines on and off (REAS-217).
|
|
3
|
+
*
|
|
4
|
+
* The route is `GET / PUT / DELETE /api/v1/factory/engines-off/{harness}` (built
|
|
5
|
+
* by REAS-216, the switch route that owns the authz and storage). This command
|
|
6
|
+
* is the CLI face of that surface — and only that surface; it does not invent
|
|
7
|
+
* any state the route does not already advertise.
|
|
8
|
+
*
|
|
9
|
+
* OFF has three visible states on screen:
|
|
10
|
+
* - until is null → "OFF" (off until switched on)
|
|
11
|
+
* - until in future → "off until <local>" (timed pause)
|
|
12
|
+
* - until in past → "expired" (a timed pause whose clock ran out;
|
|
13
|
+
* the route drops it on the next call,
|
|
14
|
+
* and the list shows it before that)
|
|
15
|
+
*
|
|
16
|
+
* `--until` accepts four forms. `--reason` is required for `off` because the route
|
|
17
|
+
* records it as the reason the next operator will read.
|
|
18
|
+
*/
|
|
19
|
+
import { Command } from "commander";
|
|
20
|
+
/**
|
|
21
|
+
* The list of harness identifiers the route accepts (REAS-216 enumerates them
|
|
22
|
+
* on the server). Help text only — the route is the authority, a typo is a 422
|
|
23
|
+
* with the canonical list it returned, and pinning it on the CLI as a second
|
|
24
|
+
* source of truth invites the two to drift.
|
|
25
|
+
*
|
|
26
|
+
* ⚠️ Two existing CLI commands spell this vocabulary with HYPHENS because their
|
|
27
|
+
* upstream enum (`agentboard BuildProvider`) does. This one is a `factory`
|
|
28
|
+
* harness, and REAS-216's enum is underscored (`claude_code`, `opencode`,
|
|
29
|
+
* `codex`, `pi`, `grok`, `agy`, `cursor`, `openhands`). The two do NOT match —
|
|
30
|
+
* mixing them is the 422 a reader of `--help` should not have to discover.
|
|
31
|
+
*/
|
|
32
|
+
export declare const HARNESSES: readonly string[];
|
|
33
|
+
/** Standardised access to "now". The action handler calls this with no args,
|
|
34
|
+
* the parser accepts an explicit one — letting tests pin the clock. */
|
|
35
|
+
export declare function now(): Date;
|
|
36
|
+
/**
|
|
37
|
+
* Parse the four `--until` forms into an ISO-8601 UTC string the server stores
|
|
38
|
+
* verbatim. Pure on purpose: the only input is `(raw, now)`; the only output is
|
|
39
|
+
* the ISO string or `null` when `--until` was omitted, or an `Error` on bad
|
|
40
|
+
* input. Pure functions are why the test can fix the clock without standing up
|
|
41
|
+
* the rest of the action.
|
|
42
|
+
*
|
|
43
|
+
* - undefined → null (off until switched on)
|
|
44
|
+
* - "+Nh" | "+Nm" → raw minutes/hours from now
|
|
45
|
+
* - "HH:MM" (24h, local time) → the next such local time; tomorrow if today's HH:MM already passed
|
|
46
|
+
* - ISO-8601 already → passed through (any timezone accepted; we re-emit UTC if it parses)
|
|
47
|
+
*/
|
|
48
|
+
export declare function parseUntil(raw: string | undefined, nowArg: Date): string | null;
|
|
49
|
+
export declare function registerEnginesCommands(program: Command): void;
|