@meshy-ai/cli 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +69 -565
  2. package/dist/cmd/auth.d.ts.map +1 -1
  3. package/dist/cmd/auth.js +14 -12
  4. package/dist/cmd/auth.js.map +1 -1
  5. package/dist/cmd/download.d.ts.map +1 -1
  6. package/dist/cmd/download.js +3 -2
  7. package/dist/cmd/download.js.map +1 -1
  8. package/dist/cmd/make.d.ts.map +1 -1
  9. package/dist/cmd/make.js +26 -10
  10. package/dist/cmd/make.js.map +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +29 -8
  13. package/dist/index.js.map +1 -1
  14. package/dist/internal/color.d.ts +37 -0
  15. package/dist/internal/color.d.ts.map +1 -0
  16. package/dist/internal/color.js +57 -0
  17. package/dist/internal/color.js.map +1 -0
  18. package/dist/internal/command-helpers.d.ts.map +1 -1
  19. package/dist/internal/command-helpers.js +5 -1
  20. package/dist/internal/command-helpers.js.map +1 -1
  21. package/dist/internal/context.d.ts +5 -0
  22. package/dist/internal/context.d.ts.map +1 -1
  23. package/dist/internal/context.js +5 -0
  24. package/dist/internal/context.js.map +1 -1
  25. package/dist/internal/doctor.d.ts +1 -0
  26. package/dist/internal/doctor.d.ts.map +1 -1
  27. package/dist/internal/doctor.js +17 -5
  28. package/dist/internal/doctor.js.map +1 -1
  29. package/dist/internal/errors.d.ts.map +1 -1
  30. package/dist/internal/errors.js +13 -4
  31. package/dist/internal/errors.js.map +1 -1
  32. package/dist/internal/global-options.d.ts.map +1 -1
  33. package/dist/internal/global-options.js +7 -3
  34. package/dist/internal/global-options.js.map +1 -1
  35. package/dist/internal/logger.d.ts.map +1 -1
  36. package/dist/internal/logger.js +2 -0
  37. package/dist/internal/logger.js.map +1 -1
  38. package/dist/internal/oauth-page.d.ts +4 -0
  39. package/dist/internal/oauth-page.d.ts.map +1 -0
  40. package/dist/internal/oauth-page.js +67 -0
  41. package/dist/internal/oauth-page.js.map +1 -0
  42. package/dist/internal/oauth.d.ts.map +1 -1
  43. package/dist/internal/oauth.js +10 -35
  44. package/dist/internal/oauth.js.map +1 -1
  45. package/dist/internal/output.d.ts +30 -4
  46. package/dist/internal/output.d.ts.map +1 -1
  47. package/dist/internal/output.js +96 -13
  48. package/dist/internal/output.js.map +1 -1
  49. package/dist/internal/progress.d.ts +62 -0
  50. package/dist/internal/progress.d.ts.map +1 -0
  51. package/dist/internal/progress.js +198 -0
  52. package/dist/internal/progress.js.map +1 -0
  53. package/dist/internal/runtime.d.ts +16 -1
  54. package/dist/internal/runtime.d.ts.map +1 -1
  55. package/dist/internal/runtime.js +22 -7
  56. package/dist/internal/runtime.js.map +1 -1
  57. package/dist/internal/task-command.d.ts +0 -1
  58. package/dist/internal/task-command.d.ts.map +1 -1
  59. package/dist/internal/task-command.js +40 -10
  60. package/dist/internal/task-command.js.map +1 -1
  61. package/dist/internal/update-notifier.d.ts +10 -2
  62. package/dist/internal/update-notifier.d.ts.map +1 -1
  63. package/dist/internal/update-notifier.js +13 -6
  64. package/dist/internal/update-notifier.js.map +1 -1
  65. package/dist/internal/version.d.ts +10 -0
  66. package/dist/internal/version.d.ts.map +1 -1
  67. package/dist/internal/version.js +17 -6
  68. package/dist/internal/version.js.map +1 -1
  69. package/dist/internal/views.d.ts +57 -0
  70. package/dist/internal/views.d.ts.map +1 -0
  71. package/dist/internal/views.js +570 -0
  72. package/dist/internal/views.js.map +1 -0
  73. package/dist/root.d.ts.map +1 -1
  74. package/dist/root.js +4 -1
  75. package/dist/root.js.map +1 -1
  76. package/package.json +3 -3
  77. package/skills/meshy-cli/SKILL.md +11 -3
@@ -0,0 +1,570 @@
1
+ /**
2
+ * Per-command views for `--format pretty` (gh: view/display, kubectl: printers).
3
+ *
4
+ * `pretty` is what a person sees at a terminal, so it is designed per command
5
+ * instead of dumping the payload: the fields a reader acts on first, times a
6
+ * person can read, and no 400-character signed URLs (`--json` has all of it).
7
+ * Nothing here is a contract — json/ndjson are, and they never pass through
8
+ * this file.
9
+ *
10
+ * Views are pure (command, value, painter) → text and accept either schema:
11
+ * tasks are normalised through toTaskView, so a legacy summary and a v1
12
+ * result of the same command read the same. A command without a view — or a
13
+ * payload its view does not recognise — gets the generic fallback: the v1
14
+ * `result` only, epoch-ms times as local time, URLs shortened.
15
+ */
16
+ import { relative } from "node:path";
17
+ import { plain } from "./color.js";
18
+ import { renderPretty } from "./output.js";
19
+ import { safeSegment } from "./paths.js";
20
+ import { SCHEMA_VERSION } from "./result.js";
21
+ import { toTaskView } from "./task-view.js";
22
+ export function renderView(command, value, paint = plain, facts = {}) {
23
+ const body = isEnvelope(value) ? value["result"] : value;
24
+ return (command ? viewFor(command, body, paint, facts) : null) ?? fallback(body, paint);
25
+ }
26
+ function viewFor(command, body, paint, facts) {
27
+ switch (command) {
28
+ case "make":
29
+ return spaced(makeView(body, paint, facts));
30
+ case "balance":
31
+ return balanceView(body);
32
+ case "doctor":
33
+ return doctorView(body, paint);
34
+ case "download":
35
+ return downloadView(body, paint);
36
+ case "delete":
37
+ return deleteView(body, paint);
38
+ case "auth.login":
39
+ return loginView(body, paint);
40
+ case "auth.status":
41
+ return authStatusView(body, paint);
42
+ case "auth.logout":
43
+ case "auth.use":
44
+ return profileChangeView(body, paint);
45
+ case "auth.list":
46
+ return profileListView(body, paint);
47
+ }
48
+ const dot = command.lastIndexOf(".");
49
+ const prefix = command.slice(0, Math.max(0, dot));
50
+ switch (command.slice(dot + 1)) {
51
+ case "get":
52
+ return taskResultView(body, paint, prefix);
53
+ case "create":
54
+ case "wait":
55
+ case "stream":
56
+ return spaced(taskResultView(body, paint, prefix));
57
+ case "list":
58
+ return taskListView(body, paint);
59
+ case "delete":
60
+ return deleteView(body, paint);
61
+ }
62
+ return null;
63
+ }
64
+ /** Commands that showed progress on stderr start their result one line below it. */
65
+ function spaced(view) {
66
+ return view === null ? null : `\n${view}`;
67
+ }
68
+ // ---------------------------------------------------------------------------
69
+ // Tasks
70
+ // ---------------------------------------------------------------------------
71
+ function taskResultView(body, paint, prefix) {
72
+ if (!isObj(body))
73
+ return null;
74
+ const task = taskFrom(body);
75
+ if (!task)
76
+ return submittedView(body, paint, prefix);
77
+ const resource = task.resource ?? str(body["resource"]) ?? prefix;
78
+ const saved = savedFiles(body);
79
+ const lines = taskCard(task, paint, { fallbackSeconds: elapsedOf(body), saved });
80
+ if (task.status === "SUCCEEDED" && saved.length === 0) {
81
+ lines.push("", ...downloadTip(resource, task.task_id, `${safeSegment(resource)}-${task.task_id.slice(0, 8)}`, "the command", paint));
82
+ }
83
+ return lines.join("\n");
84
+ }
85
+ /** `create --async`: nothing but an id and how to follow it. */
86
+ function submittedView(body, paint, prefix) {
87
+ const taskId = str(body["task_id"]);
88
+ if (!taskId)
89
+ return null;
90
+ return [
91
+ `${paint("⧗", "yellow")} Submitted ${taskId}`,
92
+ paint(`next: meshy ${prefix.split(".").join(" ")} wait ${taskId}`, "dim"),
93
+ ].join("\n");
94
+ }
95
+ /** The fields a person reads first, in the order they read them. No URLs. */
96
+ export function taskCard(task, paint, opts = {}) {
97
+ const lines = [statusLine(task, paint)];
98
+ const row = (label, value) => {
99
+ lines.push(`${paint(label.padEnd(9), "dim")}${value}`);
100
+ };
101
+ row("Task", task.task_id);
102
+ if (task.created_at !== null)
103
+ row("Created", localTime(task.created_at));
104
+ const start = task.started_at ?? task.created_at;
105
+ const server = task.finished_at !== null && start !== null ? (task.finished_at - start) / 1000 : null;
106
+ const took = opts.seconds ?? server ?? opts.fallbackSeconds ?? null;
107
+ if (took !== null && took >= 0)
108
+ row("Took", formatDuration(took));
109
+ if (opts.credits)
110
+ row("Credits", opts.credits);
111
+ // A missing count is unknown, not zero — say nothing rather than "0".
112
+ else if (task.consumed_credits !== null)
113
+ row("Credits", String(task.consumed_credits));
114
+ const assets = assetSummary(task);
115
+ if (assets)
116
+ row("Assets", assets);
117
+ const saved = opts.saved ?? [];
118
+ saved.forEach((file, i) => row(i === 0 ? "Saved" : "", displayPath(file)));
119
+ if (task.task_error?.message)
120
+ row("Error", paint(task.task_error.message, "red"));
121
+ return lines;
122
+ }
123
+ function statusLine(task, paint) {
124
+ const status = task.status ?? "UNKNOWN";
125
+ const type = task.type ? ` ${paint(task.type, "dim")}` : "";
126
+ if (status === "SUCCEEDED")
127
+ return `${paint("✓", "green")} ${paint(status, "green")}${type}`;
128
+ if (status === "FAILED" || status === "CANCELED" || status === "EXPIRED")
129
+ return `${paint("✗", "red")} ${paint(status, "red")}${type}`;
130
+ const pct = task.progress !== null && status === "IN_PROGRESS" ? ` ${task.progress}%` : "";
131
+ return `${paint("⧗", "yellow")} ${paint(`${status}${pct}`, "yellow")}${type}`;
132
+ }
133
+ function assetSummary(task) {
134
+ const parts = [];
135
+ const models = Object.entries(task.model_urls).filter(([, u]) => u).map(([k]) => k);
136
+ if (models.length)
137
+ parts.push(models.join(", "));
138
+ const sets = task.texture_urls.filter((s) => Object.values(s).some(Boolean));
139
+ if (sets.length === 1)
140
+ parts.push(`textures: ${Object.keys(sets[0]).filter((k) => sets[0][k]).join(", ")}`);
141
+ else if (sets.length > 1)
142
+ parts.push(`${sets.length} texture sets`);
143
+ if (task.image_urls.length)
144
+ parts.push(plural(task.image_urls.length, "image"));
145
+ const resultFiles = task.result ? countUrls(task.result) : 0;
146
+ if (resultFiles)
147
+ parts.push(plural(resultFiles, "result file"));
148
+ if (task.thumbnail_url)
149
+ parts.push("thumbnail");
150
+ return parts.join(" · ");
151
+ }
152
+ function downloadTip(resource, taskId, dir, where, paint) {
153
+ return [
154
+ paint(`tip: download it now: meshy download --resource ${resource} --task-id ${taskId} --all --output-dir ./${dir}`, "dim"),
155
+ paint(` or add -o <dir> to ${where} to save files automatically`, "dim"),
156
+ ];
157
+ }
158
+ function taskListView(body, paint) {
159
+ const items = Array.isArray(body) ? body : isObj(body) && Array.isArray(body["items"]) ? body["items"] : null;
160
+ if (!items)
161
+ return null;
162
+ const tasks = items.map((i) => (isObj(i) ? taskFrom({ task: i }) ?? taskFrom(i) : null));
163
+ if (tasks.some((t) => t === null))
164
+ return null; // not a task list (showcases, projects, …)
165
+ // Only a task list has a legacy array body or a v1 `page`; an empty showcase list is not "No tasks".
166
+ if (tasks.length === 0)
167
+ return Array.isArray(body) || (isObj(body) && isObj(body["page"])) ? paint("No tasks.", "dim") : null;
168
+ const rows = tasks.map((t) => [
169
+ t.task_id,
170
+ t.status ?? "-",
171
+ t.progress !== null ? `${t.progress}%` : "-",
172
+ t.type ?? "-",
173
+ t.created_at !== null ? relativeTime(t.created_at) : "-",
174
+ ]);
175
+ const out = [table(["TASK ID", "STATUS", "PROGRESS", "TYPE", "CREATED"], rows, paint, (col, v) => (col === 1 ? statusStyle(v) : null))];
176
+ const page = isObj(body) && isObj(body["page"]) ? body["page"] : null;
177
+ if (page && typeof page["page_num"] === "number" && tasks.length === page["page_size"]) {
178
+ out.push(paint(`more: --page ${page["page_num"] + 1}`, "dim"));
179
+ }
180
+ return out.join("\n");
181
+ }
182
+ function deleteView(body, paint) {
183
+ if (!isObj(body) || body["deleted"] !== true || !str(body["task_id"]))
184
+ return null;
185
+ return `${paint("✓", "green")} Deleted ${body["task_id"]}`;
186
+ }
187
+ // ---------------------------------------------------------------------------
188
+ // make
189
+ // ---------------------------------------------------------------------------
190
+ function makeView(body, paint, facts) {
191
+ if (!isObj(body))
192
+ return null;
193
+ if (Array.isArray(body["steps"]))
194
+ return planView(body, paint);
195
+ const stopped = body["stopped_after"];
196
+ if (stopped !== undefined) {
197
+ const id = str(body["task_id"]) ?? (isObj(stopped) ? str(stopped["task_id"]) : null);
198
+ const resume = str(body["resume"]) ?? str(body["hint"]);
199
+ return [`${paint("✓", "green")} Stopped after step 1 ${id ?? ""}`, ...(resume ? [paint(`resume: ${resume}`, "dim")] : [])].join("\n");
200
+ }
201
+ const task = taskFrom(body);
202
+ if (!task) {
203
+ // --async: step 1 submitted, the rest is the caller's.
204
+ const submitted = body["submitted"];
205
+ const id = str(body["task_id"]) ?? (isObj(submitted) ? str(submitted["task_id"]) : null);
206
+ if (!id)
207
+ return null;
208
+ const resource = isObj(submitted) ? str(submitted["resource"]) : null;
209
+ const next = str(body["hint"]) ?? `meshy ${resource ?? "text-to-3d"} wait ${id}`;
210
+ const later = Array.isArray(body["pending_steps"])
211
+ ? body["pending_steps"].map((s) => (isObj(s) ? str(s["command"]) : null)).filter((c) => Boolean(c))
212
+ : [];
213
+ return [`${paint("⧗", "yellow")} Submitted step 1 ${id}`, paint(`next: ${next}`, "dim"), ...later.map((c) => paint(`then: ${c}`, "dim"))].join("\n");
214
+ }
215
+ const saved = savedFiles(body);
216
+ const lines = taskCard(task, paint, {
217
+ seconds: facts.totalSeconds ?? null,
218
+ fallbackSeconds: elapsedOf(body),
219
+ saved,
220
+ ...(facts.estimatedCredits !== undefined ? { credits: `~${facts.estimatedCredits} (estimate for the whole chain)` } : {}),
221
+ });
222
+ if (task.status === "SUCCEEDED" && saved.length === 0) {
223
+ const resource = task.resource ?? str(body["resource"]) ?? "text-to-3d";
224
+ lines.push("", ...downloadTip(resource, task.task_id, dirName(facts.name, task.task_id), "make", paint));
225
+ }
226
+ return lines.join("\n");
227
+ }
228
+ function planView(body, paint) {
229
+ const steps = body["steps"].filter(isObj);
230
+ const rows = steps.map((s) => [`${String(s["step"] ?? "")}.`, `${String(s["resource"] ?? "")} ${String(s["action"] ?? "")}`, `~${String(s["estimated_credits"] ?? "?")}`]);
231
+ const out = [
232
+ `Plan ${plural(steps.length, "step")} · ~${String(body["estimated_credits"] ?? "?")} credits`,
233
+ table(null, rows, paint),
234
+ ];
235
+ if (str(body["note"]))
236
+ out.push(paint(body["note"], "dim"));
237
+ return out.join("\n");
238
+ }
239
+ /** A directory name a person would pick: the prompt, lower-cased and hyphenated. */
240
+ function dirName(name, taskId) {
241
+ const slug = (name ?? "").toLowerCase().trim().replace(/\s+/g, "-").slice(0, 48);
242
+ return safeSegment(slug, `meshy-${taskId.slice(0, 8)}`);
243
+ }
244
+ // ---------------------------------------------------------------------------
245
+ // balance / doctor / download
246
+ // ---------------------------------------------------------------------------
247
+ function balanceView(body) {
248
+ if (!isObj(body) || typeof body["balance"] !== "number")
249
+ return null;
250
+ return `Balance ${body["balance"].toLocaleString("en-US")} credits`;
251
+ }
252
+ const CHECK_STYLE = {
253
+ ok: { icon: "✓", style: "green" },
254
+ warn: { icon: "!", style: "yellow" },
255
+ fail: { icon: "✗", style: "red" },
256
+ skipped: { icon: "-", style: "dim" },
257
+ };
258
+ function doctorView(body, paint) {
259
+ if (!isObj(body) || !Array.isArray(body["checks"]))
260
+ return null;
261
+ const cli = isObj(body["cli"]) ? body["cli"] : {};
262
+ const checks = body["checks"].filter(isObj);
263
+ const width = Math.max(0, ...checks.map((c) => String(c["id"] ?? "").length));
264
+ const out = [paint(`meshy-cli ${String(cli["version"] ?? "?")} · node ${String(cli["node"] ?? "?")} · ${String(cli["platform"] ?? "")} ${String(cli["arch"] ?? "")}`, "dim")];
265
+ for (const c of checks) {
266
+ const s = CHECK_STYLE[String(c["status"])] ?? CHECK_STYLE["skipped"];
267
+ out.push(`${paint(s.icon, s.style)} ${String(c["id"] ?? "").padEnd(width)} ${String(c["detail"] ?? "")}`);
268
+ }
269
+ const api = body["api_ready"] === null ? paint("not checked (--check-api)", "dim") : yesNo(body["api_ready"] === true, paint);
270
+ out.push("", `Local ready ${yesNo(body["local_ready"] === true, paint)}`, `API ready ${api}`);
271
+ return out.join("\n");
272
+ }
273
+ function downloadView(body, paint) {
274
+ if (!isObj(body))
275
+ return null;
276
+ const downloads = isObj(body["downloads"]) ? body["downloads"] : null;
277
+ if (!downloads && Array.isArray(body["assets"])) {
278
+ const assets = body["assets"].filter(isObj);
279
+ if (assets.length === 0)
280
+ return paint("No downloadable assets.", "dim");
281
+ return table(["KEY", "KIND", "FORMAT", "FILE"], assets.map((a) => [String(a["key"] ?? ""), String(a["kind"] ?? "-"), String(a["format"] ?? "-"), String(a["filename"] ?? "-")]), paint);
282
+ }
283
+ if (!downloads)
284
+ return null;
285
+ if (downloads["state"] === "not_ready")
286
+ return `${paint("⧗", "yellow")} Not ready yet — nothing to download`;
287
+ const files = Array.isArray(downloads["files"]) ? downloads["files"].filter(isObj) : [];
288
+ const written = files.filter((f) => f["status"] === "written");
289
+ const out = [`${paint("✓", "green")} Saved ${plural(written.length, "file")}`];
290
+ for (const f of files) {
291
+ const failed = f["status"] === "failed";
292
+ const mark = failed ? paint("✗", "red") : f["status"] === "skipped" ? paint("-", "dim") : " ";
293
+ out.push(`${mark} ${displayPath(String(f["path"] ?? f["key"] ?? ""))}${failed && f["error"] ? ` ${paint(String(f["error"]), "red")}` : ""}`);
294
+ }
295
+ if (str(downloads["metadata_path"]))
296
+ out.push(paint(`metadata: ${displayPath(downloads["metadata_path"])}`, "dim"));
297
+ return out.join("\n");
298
+ }
299
+ // ---------------------------------------------------------------------------
300
+ // auth
301
+ // ---------------------------------------------------------------------------
302
+ const SOURCE = {
303
+ flag: "--api-key",
304
+ env: "MESHY_API_KEY",
305
+ "env-file": "--api-key-file",
306
+ file: "stored profile",
307
+ };
308
+ function loginView(body, paint) {
309
+ if (!isObj(body))
310
+ return null;
311
+ if (body["status"] === "device_flow_started") {
312
+ return [
313
+ `${paint("⧗", "yellow")} Approve this login in the browser`,
314
+ `${paint("Code".padEnd(9), "dim")}${String(body["user_code"] ?? "")}`,
315
+ `${paint("Open".padEnd(9), "dim")}${String(body["verification_url"] ?? "")}`,
316
+ paint(`then: ${String(body["poll_command"] ?? "meshy auth login --device-flow <id>")}`, "dim"),
317
+ ].join("\n");
318
+ }
319
+ if (body["status"] !== "logged_in")
320
+ return null;
321
+ const hint = str(body["hint"]);
322
+ const out = [
323
+ hint ? `${paint("!", "yellow")} Logged in, but the credential could not be verified` : `${paint("✓", "green")} Logged in to Meshy`,
324
+ `${paint("Profile".padEnd(9), "dim")}${String(body["profile"] ?? "default")}`,
325
+ ];
326
+ const balance = balanceOf(body);
327
+ if (balance !== null)
328
+ out.push(`${paint("Balance".padEnd(9), "dim")}${balance}`);
329
+ if (str(body["credentials_file"]))
330
+ out.push(`${paint("Saved to".padEnd(9), "dim")}${tildify(body["credentials_file"])}`);
331
+ if (hint)
332
+ out.push(paint(`hint: ${hint}`, "dim"));
333
+ return out.join("\n");
334
+ }
335
+ function authStatusView(body, paint) {
336
+ if (!isObj(body) || typeof body["authenticated"] !== "boolean")
337
+ return null;
338
+ const hint = str(body["hint"]);
339
+ if (!body["authenticated"]) {
340
+ return [`${paint("✗", "red")} Not logged in`, paint(`hint: ${hint ?? "meshy auth login"}`, "dim")].join("\n");
341
+ }
342
+ const source = SOURCE[String(body["source"])] ?? String(body["source"] ?? "");
343
+ const profile = str(body["profile"]);
344
+ const head = body["verified"] === false
345
+ ? `${paint("✗", "red")} Credential rejected`
346
+ : body["verified"] === true
347
+ ? `${paint("✓", "green")} Logged in`
348
+ : `${paint("✓", "green")} Logged in ${paint("(not verified: --offline)", "dim")}`;
349
+ const out = [head];
350
+ const row = (label, value) => {
351
+ out.push(`${paint(label.padEnd(11), "dim")}${value}`);
352
+ };
353
+ row("Using", profile ? `${source} "${profile}"` : source);
354
+ const balance = balanceOf(body);
355
+ if (balance !== null)
356
+ row("Balance", balance);
357
+ row("Credential", String(body["credential"] ?? ""));
358
+ const profiles = Array.isArray(body["profiles"]) ? body["profiles"].map(String) : [];
359
+ if (profiles.length > 1)
360
+ row("Profiles", profiles.map((p) => (p === body["active_profile"] ? `${p} (active)` : p)).join(", "));
361
+ if (str(body["base_url_v1"]) && !String(body["base_url_v1"]).startsWith("https://api.meshy.ai/"))
362
+ row("API", body["base_url_v1"]);
363
+ if (hint)
364
+ out.push(paint(`hint: ${hint}`, "dim"));
365
+ return out.join("\n");
366
+ }
367
+ function profileChangeView(body, paint) {
368
+ if (!isObj(body))
369
+ return null;
370
+ const ok = `${paint("✓", "green")} `;
371
+ const profile = String(body["profile"] ?? body["active_profile"] ?? "");
372
+ switch (body["status"]) {
373
+ case "switched":
374
+ return `${ok}Switched to profile ${profile}`;
375
+ case "removed":
376
+ return `${ok}Logged out of profile ${profile}`;
377
+ case "nothing_to_remove":
378
+ return paint(`No stored profile named ${profile} — nothing to log out.`, "dim");
379
+ case "deleted":
380
+ return `${ok}Removed every stored credential (${tildify(String(body["credentials_file"] ?? ""))})`;
381
+ case "nothing_to_delete":
382
+ return paint("No stored credentials — nothing to remove.", "dim");
383
+ }
384
+ return null;
385
+ }
386
+ function profileListView(body, paint) {
387
+ if (!isObj(body) || !Array.isArray(body["profiles"]))
388
+ return null;
389
+ const profiles = body["profiles"].filter(isObj);
390
+ if (profiles.length === 0)
391
+ return `${paint("No stored profiles.", "dim")}\n${paint("hint: meshy auth login", "dim")}`;
392
+ const rows = profiles.map((p) => [
393
+ `${p["active"] ? "*" : " "} ${String(p["name"] ?? "")}`,
394
+ p["kind"] === "oauth" ? "browser login" : "API key",
395
+ String(p["credential"] ?? ""),
396
+ typeof p["created_at"] === "number" ? relativeTime(p["created_at"]) : typeof p["created_at"] === "string" ? String(p["created_at"]).slice(0, 10) : "-",
397
+ ]);
398
+ return table([" PROFILE", "KIND", "CREDENTIAL", "CREATED"], rows, paint);
399
+ }
400
+ /** `balance` in auth payloads is the API's `{balance: n}` object. */
401
+ function balanceOf(body) {
402
+ const b = body["balance"];
403
+ const n = typeof b === "number" ? b : isObj(b) && typeof b["balance"] === "number" ? b["balance"] : null;
404
+ return n === null ? null : `${n.toLocaleString("en-US")} credits`;
405
+ }
406
+ function tildify(p) {
407
+ const home = process.env["HOME"];
408
+ return home && p.startsWith(`${home}/`) ? `~${p.slice(home.length)}` : p;
409
+ }
410
+ // ---------------------------------------------------------------------------
411
+ // Fallback
412
+ // ---------------------------------------------------------------------------
413
+ /** The generic dump, made readable: times as local time, URLs without their signatures. */
414
+ function fallback(body, paint) {
415
+ return renderPretty(humanize(body), 0, paint);
416
+ }
417
+ function humanize(v, key = "") {
418
+ if (Array.isArray(v))
419
+ return v.map((x) => humanize(x));
420
+ if (isObj(v))
421
+ return Object.fromEntries(Object.entries(v).map(([k, x]) => [k, humanize(x, k)]));
422
+ // Epoch milliseconds: anything after 2001 in a *_at field.
423
+ if (typeof v === "number" && key.endsWith("_at") && v > 1e12)
424
+ return localTime(v);
425
+ if (typeof v === "string" && /^https?:\/\//i.test(v))
426
+ return shortUrl(v);
427
+ return v;
428
+ }
429
+ // ---------------------------------------------------------------------------
430
+ // Small formatters
431
+ // ---------------------------------------------------------------------------
432
+ /**
433
+ * A recovery command as a person should run it. Hints are written for agents
434
+ * (`--output-schema v1 --format json`), and since D-065 an explicit
435
+ * `--output-schema v1` means JSON — copied at a terminal it would answer in
436
+ * braces. The views are the same in both schemas, so the flags only get in the way.
437
+ */
438
+ export function forHumans(text) {
439
+ return text.replace(/\s+--output-schema[ =]v1\b/g, "").replace(/\s+--format[ =](?:json|ndjson)\b/g, "");
440
+ }
441
+ /**
442
+ * The line under `error:` for a person: the hint, else the recovery command,
443
+ * else — when the failure still names a task (a poll that lost the network) —
444
+ * the fact that the server keeps running it and how to pick it up again.
445
+ */
446
+ export function humanHint(hint, recovery, result) {
447
+ if (typeof hint === "string" && hint)
448
+ return forHumans(hint);
449
+ if (recovery)
450
+ return forHumans(recovery);
451
+ const wait = isObj(result) && isObj(result["next"]) ? str(result["next"]["wait"]) : null;
452
+ return wait ? `the task keeps running on the server — resume with: ${forHumans(wait)}` : undefined;
453
+ }
454
+ export function formatDuration(seconds) {
455
+ const s = Math.max(0, Math.round(seconds));
456
+ if (s < 60)
457
+ return `${s}s`;
458
+ if (s < 3600)
459
+ return `${Math.floor(s / 60)}m ${String(s % 60).padStart(2, "0")}s`;
460
+ return `${Math.floor(s / 3600)}h ${String(Math.floor((s % 3600) / 60)).padStart(2, "0")}m`;
461
+ }
462
+ export function localTime(ms) {
463
+ const d = new Date(ms);
464
+ const p = (n) => String(n).padStart(2, "0");
465
+ return `${d.getFullYear()}-${p(d.getMonth() + 1)}-${p(d.getDate())} ${p(d.getHours())}:${p(d.getMinutes())}`;
466
+ }
467
+ export function relativeTime(ms, now = Date.now()) {
468
+ const s = Math.round((now - ms) / 1000);
469
+ if (s < 0)
470
+ return localTime(ms);
471
+ if (s < 60)
472
+ return "just now";
473
+ if (s < 3600)
474
+ return `${Math.floor(s / 60)}m ago`;
475
+ if (s < 86_400)
476
+ return `${Math.floor(s / 3600)}h ago`;
477
+ if (s < 7 * 86_400)
478
+ return `${Math.floor(s / 86_400)}d ago`;
479
+ return localTime(ms).slice(0, 10);
480
+ }
481
+ /** Drop the query string (signatures) and keep the host plus the last two path segments. */
482
+ export function shortUrl(url, max = 80) {
483
+ const bare = url.split(/[?#]/)[0];
484
+ if (bare.length <= max)
485
+ return bare;
486
+ const m = /^(https?:\/\/[^/]+)(\/.*)$/i.exec(bare);
487
+ if (!m)
488
+ return `${bare.slice(0, max - 1)}…`;
489
+ const segs = m[2].split("/").filter(Boolean);
490
+ return `${m[1]}/…/${segs.slice(-2).join("/")}`;
491
+ }
492
+ /** Columns padded on plain text, painted after, so escapes never skew the widths. */
493
+ export function table(headers, rows, paint, styleFor) {
494
+ const all = headers ? [headers, ...rows] : rows;
495
+ const widths = all[0]?.map((_, c) => Math.max(...all.map((r) => (r[c] ?? "").length))) ?? [];
496
+ const line = (r, head) => r
497
+ .map((cell, c) => {
498
+ const padded = c === r.length - 1 ? cell : cell.padEnd(widths[c]);
499
+ const style = head ? "dim" : styleFor?.(c, cell);
500
+ return style ? paint(padded, style) : padded;
501
+ })
502
+ .join(" ")
503
+ .trimEnd();
504
+ return [...(headers ? [line(headers, true)] : []), ...rows.map((r) => line(r, false))].join("\n");
505
+ }
506
+ function statusStyle(status) {
507
+ if (status === "SUCCEEDED")
508
+ return "green";
509
+ if (status === "FAILED" || status === "CANCELED" || status === "EXPIRED")
510
+ return "red";
511
+ if (status === "PENDING" || status === "IN_PROGRESS")
512
+ return "yellow";
513
+ return null;
514
+ }
515
+ function yesNo(v, paint) {
516
+ return v ? paint("yes", "green") : paint("no", "red");
517
+ }
518
+ function plural(n, word) {
519
+ return `${n} ${word}${n === 1 ? "" : "s"}`;
520
+ }
521
+ function displayPath(p) {
522
+ const rel = relative(process.cwd(), p);
523
+ return rel && !rel.startsWith("..") ? rel : p;
524
+ }
525
+ // ---------------------------------------------------------------------------
526
+ // Shape helpers
527
+ // ---------------------------------------------------------------------------
528
+ function isObj(v) {
529
+ return v !== null && typeof v === "object" && !Array.isArray(v);
530
+ }
531
+ function str(v) {
532
+ return typeof v === "string" && v ? v : null;
533
+ }
534
+ function isEnvelope(v) {
535
+ return isObj(v) && v["schema_version"] === SCHEMA_VERSION && "result" in v;
536
+ }
537
+ /** A v1 result's `task` (a TaskView), or a legacy summary normalised into one. */
538
+ function taskFrom(body) {
539
+ const t = body["task"];
540
+ if (isObj(t) && typeof t["task_id"] === "string")
541
+ return t;
542
+ if (typeof body["id"] === "string" && typeof body["status"] === "string")
543
+ return toTaskView(body);
544
+ return null;
545
+ }
546
+ function savedFiles(body) {
547
+ const downloads = isObj(body["downloads"]) ? body["downloads"] : null;
548
+ const files = downloads && Array.isArray(downloads["files"]) ? downloads["files"] : [];
549
+ return files.filter((f) => isObj(f) && f["status"] === "written" && typeof f["path"] === "string").map((f) => f["path"]);
550
+ }
551
+ function elapsedOf(body) {
552
+ if (typeof body["elapsed_seconds"] === "number")
553
+ return body["elapsed_seconds"];
554
+ for (const k of ["wait", "stream"]) {
555
+ const info = body[k];
556
+ if (isObj(info) && typeof info["elapsed_seconds"] === "number")
557
+ return info["elapsed_seconds"];
558
+ }
559
+ return null;
560
+ }
561
+ function countUrls(v) {
562
+ if (typeof v === "string")
563
+ return /^https?:\/\//i.test(v) ? 1 : 0;
564
+ if (Array.isArray(v))
565
+ return v.reduce((n, x) => n + countUrls(x), 0);
566
+ if (isObj(v))
567
+ return Object.values(v).reduce((n, x) => n + countUrls(x), 0);
568
+ return 0;
569
+ }
570
+ //# sourceMappingURL=views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/internal/views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,KAAK,EAA4B,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAiB,MAAM,gBAAgB,CAAC;AAY3D,MAAM,UAAU,UAAU,CAAC,OAA2B,EAAE,KAAc,EAAE,KAAK,GAAY,KAAK,EAAE,KAAK,GAAc,EAAE;IACnH,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACzD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,IAAa,EAAE,KAAc,EAAE,KAAgB;IAC/E,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9C,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,KAAK,UAAU;YACb,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,KAAK,YAAY;YACf,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChC,KAAK,aAAa;YAChB,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU;YACb,OAAO,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,KAAK,WAAW;YACd,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAClD,QAAQ,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/B,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oFAAoF;AACpF,SAAS,MAAM,CAAC,IAAmB;IACjC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,SAAS,cAAc,CAAC,IAAa,EAAE,KAAc,EAAE,MAAc;IACnE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC;IAClE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IACvI,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gEAAgE;AAChE,SAAS,aAAa,CAAC,IAAS,EAAE,KAAc,EAAE,MAAc;IAC9D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO;QACL,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,eAAe,MAAM,EAAE;QAC9C,KAAK,CAAC,eAAe,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,MAAM,EAAE,EAAE,KAAK,CAAC;KAC1E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAYD,6EAA6E;AAC7E,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,KAAc,EAAE,IAAI,GAAoB,EAAE;IACjF,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,KAAa,EAAQ,EAAE;QACjD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC;IACF,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;QAAE,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACtG,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC;IACpE,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC;QAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,IAAI,CAAC,OAAO;QAAE,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,sEAAsE;SACjE,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI;QAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,MAAM;QAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO;QAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,IAAc,EAAE,KAAc;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;IAC7F,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IACvI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG,EAAE,EAAE,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACzG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,eAAe,CAAC,CAAC;IACpE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,MAAc,EAAE,GAAW,EAAE,KAAa,EAAE,KAAc;IAC/F,OAAO;QACL,KAAK,CAAC,oDAAoD,QAAQ,cAAc,MAAM,yBAAyB,GAAG,EAAE,EAAE,KAAK,CAAC;QAC5H,KAAK,CAAC,2BAA2B,KAAK,8BAA8B,EAAE,KAAK,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAa,EAAE,KAAc;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,OAAO,CAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7H,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,2CAA2C;IAC3F,qGAAqG;IACrG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9H,MAAM,IAAI,GAAI,KAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5C,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,MAAM,IAAI,GAAG;QACf,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG;QAC5C,CAAC,CAAC,IAAI,IAAI,GAAG;QACb,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG;KACzD,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxI,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,UAAU,CAAC,IAAa,EAAE,KAAc;IAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC,SAAS,CAAW,EAAE,CAAC;AACvE,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,IAAa,EAAE,KAAc,EAAE,KAAgB;IAC/D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzI,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,uDAAuD;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,QAAQ,IAAI,YAAY,SAAS,EAAE,EAAE,CAAC;QACjF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChD,CAAC,CAAE,IAAI,CAAC,eAAe,CAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/H,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,sBAAsB,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxJ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAClC,OAAO,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;QACnC,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC;QAChC,KAAK;QACL,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,gBAAgB,iCAAiC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1H,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,YAAY,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAS,EAAE,KAAc;IACzC,MAAM,KAAK,GAAI,IAAI,CAAC,OAAO,CAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3K,MAAM,GAAG,GAAG;QACV,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,UAAU;QAC9F,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;KACzB,CAAC;IACF,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,oFAAoF;AACpF,SAAS,OAAO,CAAC,IAAwB,EAAE,MAAc;IACvD,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,WAAW,CAAC,IAAI,EAAE,SAAS,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAE9E,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO,YAAY,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;AACvE,CAAC;AAED,MAAM,WAAW,GAAmD;IAClE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;IACjC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;IACjC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;CACrC,CAAC;AAEF,SAAS,UAAU,CAAC,IAAa,EAAE,KAAc;IAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,MAAM,GAAI,IAAI,CAAC,QAAQ,CAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,WAAW,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9K,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,SAAS,CAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9H,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAAC;IAClG,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,YAAY,CAAC,IAAa,EAAE,KAAc;IACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAI,IAAI,CAAC,QAAQ,CAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1L,CAAC;IACD,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,WAAW;QAAE,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,sCAAsC,CAAC;IAC7G,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,SAAS,CAAC,OAAO,CAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvG,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/E,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC9F,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,WAAW,CAAC,SAAS,CAAC,eAAe,CAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9H,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,MAAM,MAAM,GAA2B;IACrC,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,eAAe;IACpB,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,gBAAgB;CACvB,CAAC;AAEF,SAAS,SAAS,CAAC,IAAa,EAAE,KAAc;IAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,qBAAqB,EAAE,CAAC;QAC7C,OAAO;YACL,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,oCAAoC;YAC3D,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE;YACrE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE;YAC5E,KAAK,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,qCAAqC,CAAC,EAAE,EAAE,KAAK,CAAC;SAC/F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG;QACV,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,sDAAsD,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,qBAAqB;QAClI,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,EAAE;KAC9E,CAAC;IACF,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IACjF,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAW,CAAC,EAAE,CAAC,CAAC;IACnI,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,IAAa,EAAE,KAAc;IACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,kBAAkB,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChH,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACrC,MAAM,IAAI,GACR,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK;QACxB,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,sBAAsB;QAC5C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI;YACzB,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY;YACpC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC;IACxF,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,KAAa,EAAQ,EAAE;QACjD,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,IAAI;QAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9C,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,UAAU,CAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/H,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,uBAAuB,CAAC;QAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAW,CAAC,CAAC;IAC5I,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa,EAAE,KAAc;IACtD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,GAAG,EAAE,uBAAuB,OAAO,EAAE,CAAC;QAC/C,KAAK,SAAS;YACZ,OAAO,GAAG,EAAE,yBAAyB,OAAO,EAAE,CAAC;QACjD,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,2BAA2B,OAAO,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAClF,KAAK,SAAS;YACZ,OAAO,GAAG,EAAE,oCAAoC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;QACrG,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAa,EAAE,KAAc;IACpD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,QAAQ,GAAI,IAAI,CAAC,UAAU,CAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtH,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE;QACvD,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;QACnD,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;KACvJ,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5E,CAAC;AAED,qEAAqE;AACrE,SAAS,SAAS,CAAC,IAAS;IAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;AACpE,CAAC;AAED,SAAS,OAAO,CAAC,CAAS;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,2FAA2F;AAC3F,SAAS,QAAQ,CAAC,IAAa,EAAE,KAAc;IAC7C,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAU,EAAE,GAAG,GAAG,EAAE;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChG,2DAA2D;IAC3D,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;AAC1G,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,QAAmC,EAAE,MAAe;IAC3F,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI;QAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7D,IAAI,QAAQ;QAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,OAAO,IAAI,CAAC,CAAC,CAAC,uDAAuD,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACrG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC3B,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;IAClF,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,CAAC,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE;IAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IAC9B,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAClD,IAAI,CAAC,GAAG,MAAM;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IACtD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IAC5D,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAG,GAAG,EAAE;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,CAAC,GAAG,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,KAAK,CAAC,OAAwB,EAAE,IAAgB,EAAE,KAAc,EAAE,QAAuD;IACvI,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7F,MAAM,IAAI,GAAG,CAAC,CAAW,EAAE,IAAa,EAAU,EAAE,CAClD,CAAC;SACE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,EAAE,CAAC;IACf,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IAC3C,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,aAAa;QAAE,OAAO,QAAQ,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,KAAK,CAAC,CAAU,EAAE,KAAc;IACvC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,MAAM,CAAC,CAAS,EAAE,IAAY;IACrC,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACvC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,SAAS,KAAK,CAAC,CAAU;IACvB,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,KAAK,cAAc,IAAI,QAAQ,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,kFAAkF;AAClF,SAAS,QAAQ,CAAC,IAAS;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAwB,CAAC;IAClF,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAClG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAS;IAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,MAAM,KAAK,GAAG,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,SAAS,CAAC,OAAO,CAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAW,CAAC,CAAC;AAC/I,CAAC;AAED,SAAS,SAAS,CAAC,IAAS;IAC1B,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChF,KAAK,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,CAAU;IAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAW/C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAU7C,CAAC;AA+EH,wBAAgB,gBAAgB,IAAI,OAAO,CAoE1C"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../src/root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwCpC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAW/C,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAU7C,CAAC;AA+EH,wBAAgB,gBAAgB,IAAI,OAAO,CAuE1C"}