@codetreker/daynight 0.24.3 → 0.25.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.
- package/README.md +177 -27
- package/dist/commands/skill/skills/using-daynight/SKILL.md +6 -1
- package/dist/commands/skill/skills/using-daynight/references/autopilot-managed-task.md +205 -0
- package/dist/commands/skill/skills/using-daynight/references/handbook.md +6 -2
- package/dist/commands/skill/skills/using-daynight/references/task-content.md +3 -0
- package/dist/commands/worker/coordinator.js +78 -31
- package/dist/commands/worker/coordinator.js.map +1 -1
- package/dist/commands/worker/definition.js +6 -1
- package/dist/commands/worker/definition.js.map +1 -1
- package/dist/commands/worker/diagnostics.js +2 -1
- package/dist/commands/worker/diagnostics.js.map +1 -1
- package/dist/commands/worker/execution.d.ts +2 -0
- package/dist/commands/worker/execution.js +5 -5
- package/dist/commands/worker/execution.js.map +1 -1
- package/dist/commands/worker/herdr/agents.d.ts +6 -9
- package/dist/commands/worker/herdr/agents.js +78 -37
- package/dist/commands/worker/herdr/agents.js.map +1 -1
- package/dist/commands/worker/herdr/codex-install-safety.d.ts +2 -0
- package/dist/commands/worker/herdr/codex-install-safety.js +104 -0
- package/dist/commands/worker/herdr/codex-install-safety.js.map +1 -0
- package/dist/commands/worker/herdr/instance.d.ts +2 -0
- package/dist/commands/worker/herdr/instance.js +44 -3
- package/dist/commands/worker/herdr/instance.js.map +1 -1
- package/dist/commands/worker/herdr/preflight.d.ts +1 -0
- package/dist/commands/worker/herdr/preflight.js +60 -7
- package/dist/commands/worker/herdr/preflight.js.map +1 -1
- package/dist/commands/worker/herdr.d.ts +2 -1
- package/dist/commands/worker/herdr.js +1 -0
- package/dist/commands/worker/herdr.js.map +1 -1
- package/dist/commands/worker/index.d.ts +5 -0
- package/dist/commands/worker/index.js +5 -0
- package/dist/commands/worker/index.js.map +1 -1
- package/dist/commands/worker/migration-state.d.ts +40 -0
- package/dist/commands/worker/migration-state.js +197 -0
- package/dist/commands/worker/migration-state.js.map +1 -0
- package/dist/commands/worker/migration.d.ts +21 -0
- package/dist/commands/worker/migration.js +406 -0
- package/dist/commands/worker/migration.js.map +1 -0
- package/dist/commands/worker/prompts.js +3 -3
- package/dist/commands/worker/prompts.js.map +1 -1
- package/dist/commands/worker/resource-owner.d.ts +5 -0
- package/dist/commands/worker/resource-owner.js +29 -0
- package/dist/commands/worker/resource-owner.js.map +1 -0
- package/dist/commands/worker/runtime.js +3 -0
- package/dist/commands/worker/runtime.js.map +1 -1
- package/dist/commands/worker/types.d.ts +0 -1
- package/dist/commands/worker/worktrees.js +5 -3
- package/dist/commands/worker/worktrees.js.map +1 -1
- package/package.json +3 -2
- package/dist/commands/skill/skills/using-daynight/references/execute-task-in-managed.md +0 -92
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { realpath } from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { OperationError } from "../../../api/operation.js";
|
|
4
5
|
import { canonicalId } from "../../../api/parse.js";
|
|
5
|
-
import {
|
|
6
|
+
import { parseResourceOwner, resourceOwnerKey, sameResourceOwner } from "../resource-owner.js";
|
|
6
7
|
import { buildHerdrAgentArguments, nativeAgentPermissionEnvironment, validateHerdrAgentArguments } from "./arguments.js";
|
|
7
8
|
import { codexInputSurface } from "./codex-input.js";
|
|
8
9
|
import { HerdrRpcError } from "./rpc.js";
|
|
@@ -29,27 +30,32 @@ const counter = (value, name) => { if (typeof value !== "number" || !Number.isSa
|
|
|
29
30
|
throw new TypeError(`${name} must be a nonnegative safe integer.`); return value; };
|
|
30
31
|
const expectedResult = (value, type) => { if (value.type !== type)
|
|
31
32
|
throw new TypeError(`Expected Herdr ${type} result; received ${value.type}.`); return value; };
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
const labelSeparator = " | daynight:";
|
|
34
|
+
const unsafeTitleCharacter = /[\p{Cc}\u061c\u200e\u200f\u2028-\u202e\u2066-\u2069]/u;
|
|
35
|
+
const workspaceTitle = (title) => {
|
|
36
|
+
if (typeof title !== "string" || title.trim().length === 0)
|
|
37
|
+
throw new TypeError("The task title must be nonempty text.");
|
|
38
|
+
return Array.from(title, (character) => unsafeTitleCharacter.test(character) ? `\\u{${character.codePointAt(0).toString(16)}}` : character).join("");
|
|
36
39
|
};
|
|
37
|
-
export const herdrExecutionLabel = (context) =>
|
|
38
|
-
export const herdrExecutionAgentName = (context) => `dn_${createHash("sha256").update(
|
|
40
|
+
export const herdrExecutionLabel = (context, title) => `${workspaceTitle(title)}${labelSeparator}${resourceOwnerKey(context)}`;
|
|
41
|
+
export const herdrExecutionAgentName = (context) => `dn_${createHash("sha256").update(resourceOwnerKey(context)).digest("hex").slice(0, 24)}`;
|
|
39
42
|
export const parseHerdrExecutionLabel = (label) => {
|
|
40
|
-
|
|
43
|
+
const separator = label.lastIndexOf(labelSeparator);
|
|
44
|
+
if (separator === -1) {
|
|
45
|
+
if (label.startsWith("daynight:"))
|
|
46
|
+
throw new TypeError("The Herdr workspace uses legacy ownership. Stop the worker and run daynight worker migrate-workspaces before restarting.");
|
|
41
47
|
return null;
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
45
|
-
throw new TypeError("The
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return owner;
|
|
48
|
+
}
|
|
49
|
+
const title = label.slice(0, separator);
|
|
50
|
+
if (title.trim().length === 0 || unsafeTitleCharacter.test(title))
|
|
51
|
+
throw new TypeError("The managed Herdr workspace title must be nonempty single-line display text.");
|
|
52
|
+
return parseResourceOwner(label.slice(separator + labelSeparator.length));
|
|
53
|
+
};
|
|
54
|
+
const matchesWorkspaceOwner = (workspace, owner) => {
|
|
55
|
+
if (typeof workspace.label !== "string")
|
|
56
|
+
throw new TypeError("The Herdr workspace label must be a string.");
|
|
57
|
+
const actual = parseHerdrExecutionLabel(workspace.label);
|
|
58
|
+
return actual !== null && sameResourceOwner(actual, owner);
|
|
53
59
|
};
|
|
54
60
|
export class HerdrAgentActionError extends Error {
|
|
55
61
|
action;
|
|
@@ -166,20 +172,33 @@ export const createHerdrAgentManager = (options) => {
|
|
|
166
172
|
if (binding.session !== session)
|
|
167
173
|
throw new Error("The task binding belongs to another Herdr session.");
|
|
168
174
|
const data = await snapshot(operation);
|
|
169
|
-
const
|
|
170
|
-
const matching = data.workspaces.filter((workspace) => workspace.label === label);
|
|
175
|
+
const matching = data.workspaces.filter((workspace) => matchesWorkspaceOwner(workspace, context));
|
|
171
176
|
if (matching.length !== 1 || matching[0].workspace_id !== binding.workspaceId)
|
|
172
177
|
throw new Error("The original task workspace is missing, duplicated or has different ownership.");
|
|
173
178
|
const panes = data.panes.filter((pane) => pane.pane_id === binding.paneId);
|
|
174
179
|
if (panes.length === 0 && allowMissingPane)
|
|
175
|
-
return { data, pane: null };
|
|
180
|
+
return { data, workspace: matching[0], pane: null };
|
|
176
181
|
if (panes.length !== 1)
|
|
177
182
|
throw new Error("The original task pane is missing or duplicated.");
|
|
178
183
|
const pane = panes[0];
|
|
179
184
|
if (pane.workspace_id !== binding.workspaceId || pane.terminal_id !== binding.terminalId)
|
|
180
185
|
throw new Error("The task pane or terminal identity has changed.");
|
|
181
186
|
await verifyCwd(pane.cwd, context);
|
|
182
|
-
return { data, pane };
|
|
187
|
+
return { data, workspace: matching[0], pane };
|
|
188
|
+
};
|
|
189
|
+
const readNameOwnership = async (context, binding, operation, submission) => {
|
|
190
|
+
try {
|
|
191
|
+
return await readOwned(context, binding, operation);
|
|
192
|
+
}
|
|
193
|
+
catch (cause) {
|
|
194
|
+
const timedOut = cause instanceof OperationError && cause.kind === "deadline";
|
|
195
|
+
const snapshotFailure = cause instanceof HerdrRpcError && cause.method === "session.snapshot";
|
|
196
|
+
const deadlineSignal = operation.signal.reason instanceof OperationError && operation.signal.reason.kind === "deadline";
|
|
197
|
+
if ((timedOut || snapshotFailure) && (!operation.signal.aborted || deadlineSignal)) {
|
|
198
|
+
throw new HerdrAgentActionError("The workspace name ownership observation could not be completed.", "workspace.rename", submission, { cause });
|
|
199
|
+
}
|
|
200
|
+
throw cause;
|
|
201
|
+
}
|
|
183
202
|
};
|
|
184
203
|
const nativeReference = (value, expectedAgent) => {
|
|
185
204
|
if (value === undefined)
|
|
@@ -284,7 +303,7 @@ export const createHerdrAgentManager = (options) => {
|
|
|
284
303
|
listResources: async (operation) => {
|
|
285
304
|
const data = await snapshot(operation);
|
|
286
305
|
const result = [];
|
|
287
|
-
const
|
|
306
|
+
const identities = new Set();
|
|
288
307
|
const workspaceIds = new Set();
|
|
289
308
|
for (const workspace of data.workspaces) {
|
|
290
309
|
if (typeof workspace.label !== "string")
|
|
@@ -294,9 +313,10 @@ export const createHerdrAgentManager = (options) => {
|
|
|
294
313
|
if (owner === null)
|
|
295
314
|
continue;
|
|
296
315
|
const workspaceId = text(workspace.workspace_id, "Owned workspace ID");
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
316
|
+
const identity = resourceOwnerKey(owner);
|
|
317
|
+
if (identities.has(identity) || workspaceIds.has(workspaceId) || data.workspaces.filter((value) => value.workspace_id === workspaceId).length !== 1)
|
|
318
|
+
throw new Error("Owned Herdr workspaces have duplicate identities or IDs.");
|
|
319
|
+
identities.add(identity);
|
|
300
320
|
workspaceIds.add(workspaceId);
|
|
301
321
|
const resource = { owner, workspaceId, panes: [] };
|
|
302
322
|
for (const pane of data.panes.filter((value) => value.workspace_id === workspaceId)) {
|
|
@@ -328,7 +348,7 @@ export const createHerdrAgentManager = (options) => {
|
|
|
328
348
|
if (!["idle", "working", "blocked", "done", "unknown"].includes(status))
|
|
329
349
|
throw new TypeError("The owned native status is invalid.");
|
|
330
350
|
const name = optionalText(info.name, "Owned agent name");
|
|
331
|
-
if (name !== null && name !==
|
|
351
|
+
if (name !== null && name !== herdrExecutionAgentName(owner))
|
|
332
352
|
throw new Error("The owned Herdr pane has a foreign managed agent name.");
|
|
333
353
|
resource.panes.push({ binding: { session, workspaceId, paneId, terminalId }, cwd, kind, status, launchPending: optionalBoolean(info.launch_pending, "Owned launch state"), interactiveReady: optionalBoolean(info.interactive_ready, "Owned readiness"), nativeSession: nativeAgent === null ? null : nativeReference(info.agent_session, nativeAgent), stateChangeSeq: agents[0] === undefined ? null : counter(info.state_change_seq, "Owned state-change sequence"), completionSeq: agents[0] === undefined || info.completion_seq === undefined ? null : counter(info.completion_seq, "Owned completion sequence") });
|
|
334
354
|
}
|
|
@@ -342,15 +362,15 @@ export const createHerdrAgentManager = (options) => {
|
|
|
342
362
|
}
|
|
343
363
|
return result;
|
|
344
364
|
},
|
|
345
|
-
prepareWorkspace: async (context, operation) => {
|
|
365
|
+
prepareWorkspace: async (context, title, operation) => {
|
|
346
366
|
let createPossible = false;
|
|
347
367
|
try {
|
|
348
|
-
const label = herdrExecutionLabel(context);
|
|
368
|
+
const label = herdrExecutionLabel(context, title);
|
|
349
369
|
const expectedCwd = path.normalize(await realpath(context.cwd));
|
|
350
370
|
const data = await snapshot(operation);
|
|
351
|
-
const matching = data.workspaces.filter((workspace) => workspace
|
|
371
|
+
const matching = data.workspaces.filter((workspace) => matchesWorkspaceOwner(workspace, context));
|
|
352
372
|
if (matching.length > 1)
|
|
353
|
-
throw new Error("The task workspace
|
|
373
|
+
throw new Error("The task workspace identity is duplicated.");
|
|
354
374
|
if (matching.length === 1) {
|
|
355
375
|
const workspaceId = text(matching[0].workspace_id, "Task workspace ID");
|
|
356
376
|
const panes = data.panes.filter((pane) => pane.workspace_id === workspaceId);
|
|
@@ -379,6 +399,27 @@ export const createHerdrAgentManager = (options) => {
|
|
|
379
399
|
throw new HerdrAgentActionError(cause instanceof Error ? cause.message : "The task workspace could not be prepared.", "workspace.create", createPossible ? "unknown" : "not-submitted", { cause });
|
|
380
400
|
}
|
|
381
401
|
},
|
|
402
|
+
syncWorkspaceName: (context, binding, title, operation) => serialized(binding.workspaceId, operation, async () => {
|
|
403
|
+
const label = herdrExecutionLabel(context, title);
|
|
404
|
+
const before = await readNameOwnership(context, binding, operation, "not-submitted");
|
|
405
|
+
if (before.workspace.label === label)
|
|
406
|
+
return;
|
|
407
|
+
const renamed = await mutation("workspace.rename", { workspace_id: binding.workspaceId, label }, "workspace_info", operation);
|
|
408
|
+
let workspace;
|
|
409
|
+
try {
|
|
410
|
+
workspace = object(renamed.workspace, "Renamed workspace");
|
|
411
|
+
text(workspace.workspace_id, "Renamed workspace ID");
|
|
412
|
+
text(workspace.label, "Renamed workspace label");
|
|
413
|
+
}
|
|
414
|
+
catch (cause) {
|
|
415
|
+
throw new HerdrAgentActionError("The workspace rename receipt could not be decoded.", "workspace.rename", "unknown", { cause });
|
|
416
|
+
}
|
|
417
|
+
if (workspace.workspace_id !== binding.workspaceId || !matchesWorkspaceOwner(workspace, context))
|
|
418
|
+
throw new Error("The workspace name receipt has different resource ownership.");
|
|
419
|
+
const after = await readNameOwnership(context, binding, operation, "unknown");
|
|
420
|
+
if (workspace.label !== label || after.workspace.label !== label)
|
|
421
|
+
throw new HerdrAgentActionError("The requested workspace name was not confirmed by the current snapshot.", "workspace.rename", "unknown");
|
|
422
|
+
}),
|
|
382
423
|
observe: observation,
|
|
383
424
|
start: (context, binding, input, operation) => serialized(binding.workspaceId, operation, async () => {
|
|
384
425
|
if (input.configuration.agent !== context.agent)
|
|
@@ -438,15 +479,15 @@ export const createHerdrAgentManager = (options) => {
|
|
|
438
479
|
if (binding.session !== session)
|
|
439
480
|
throw new Error("The task binding belongs to another Herdr session.");
|
|
440
481
|
const before = await snapshot(operation);
|
|
441
|
-
const
|
|
442
|
-
const key = JSON.stringify([binding.session, binding.workspaceId,
|
|
443
|
-
const matching = before.workspaces.filter((workspace) => workspace.workspace_id === binding.workspaceId || workspace
|
|
482
|
+
const identity = resourceOwnerKey(context);
|
|
483
|
+
const key = JSON.stringify([binding.session, binding.workspaceId, identity]);
|
|
484
|
+
const matching = before.workspaces.filter((workspace) => workspace.workspace_id === binding.workspaceId || matchesWorkspaceOwner(workspace, context));
|
|
444
485
|
if (matching.length === 0) {
|
|
445
486
|
if ([...before.panes, ...before.agents].some((resource) => resource.workspace_id === binding.workspaceId || resource.pane_id === binding.paneId || resource.terminal_id === binding.terminalId))
|
|
446
487
|
throw new Error("The missing task workspace still has associated resources.");
|
|
447
488
|
return finishStop(key, operation);
|
|
448
489
|
}
|
|
449
|
-
if (matching.length !== 1 || matching[0].workspace_id !== binding.workspaceId || matching[0]
|
|
490
|
+
if (matching.length !== 1 || matching[0].workspace_id !== binding.workspaceId || !matchesWorkspaceOwner(matching[0], context))
|
|
450
491
|
throw new Error("The task workspace identity changed before stopping.");
|
|
451
492
|
const currentPanes = before.panes.filter((pane) => pane.workspace_id === binding.workspaceId);
|
|
452
493
|
// Closing removes discovery evidence before all processes necessarily exit.
|
|
@@ -472,7 +513,7 @@ export const createHerdrAgentManager = (options) => {
|
|
|
472
513
|
}
|
|
473
514
|
await mutation("workspace.close", { workspace_id: binding.workspaceId, close_group: false }, "ok", operation);
|
|
474
515
|
const after = await snapshot(operation);
|
|
475
|
-
if (after.workspaces.some((workspace) => workspace.workspace_id === binding.workspaceId || workspace
|
|
516
|
+
if (after.workspaces.some((workspace) => workspace.workspace_id === binding.workspaceId || matchesWorkspaceOwner(workspace, context)) || [...after.panes, ...after.agents].some((resource) => resource.workspace_id === binding.workspaceId))
|
|
476
517
|
throw new HerdrAgentActionError("The task workspace still exists after closure.", "workspace.close", "unknown");
|
|
477
518
|
await finishStop(key, operation);
|
|
478
519
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../src/commands/worker/herdr/agents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../../src/commands/worker/herdr/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAEzH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAqBvF,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,IAAY,EAAe,EAAE;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAC;IAC3H,OAAO,KAAoB,CAAC;AAC9B,CAAC,CAAC;AACF,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,IAAY,EAAU,EAAE;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,oDAAoD,CAAC,CAAC;IAC1J,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,MAAM,KAAK,GAAG,CAAC,KAAc,EAAE,IAAY,EAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1J,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,IAAY,EAAiB,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrH,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,IAAY,EAAW,EAAE,GAAG,IAAI,KAAK,KAAK,SAAS;IAAE,OAAO,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,KAAK,SAAS;IAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,mBAAmB,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7M,MAAM,GAAG,GAAG,CAAC,KAAc,EAAU,EAAE,GAAG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,aAAa;IAAE,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/O,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,IAAY,EAAU,EAAE,GAAG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;IAAE,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,sCAAsC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5N,MAAM,cAAc,GAAG,CAAC,KAAqB,EAAE,IAAY,EAAkB,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;IAAE,MAAM,IAAI,SAAS,CAAC,kBAAkB,IAAI,qBAAqB,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1M,MAAM,cAAc,GAAG,cAAc,CAAC;AACtC,MAAM,oBAAoB,GAAG,uDAAuD,CAAC;AACrF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IACzH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxJ,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAA4B,EAAE,KAAa,EAAU,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;AACpK,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAA4B,EAAU,EAAE,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC3K,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAA8B,EAAE;IACpF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACpD,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0HAA0H,CAAC,CAAC;QACnL,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,8EAA8E,CAAC,CAAC;IACvK,OAAO,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC;AACF,MAAM,qBAAqB,GAAG,CAAC,SAAsB,EAAE,KAA0B,EAAW,EAAE;IAC5F,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IAC5G,MAAM,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzD,OAAO,MAAM,KAAK,IAAI,IAAI,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAER,MAAM;IAAmB,UAAU;IADhE,gBAAgB,CAAmD;IAC5E,YAAY,OAAe,EAAW,MAAc,EAAW,UAAoD,EAAE,OAAyF;QAC5M,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;sBADY,MAAM;0BAAmB,UAAU;QAC9C,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACpG,CAAC;CACF;AACD,MAAM,cAAc,GAAkD;IACpE,aAAa,EAAE,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,kBAAkB,CAAC,CAAC;IACpN,cAAc,EAAE,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;CACjI,CAAC;AACF,MAAM,qBAAqB,GAAG,CAAC,MAAc,EAAE,KAAc,EAAyB,EAAE;IACtF,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAClH,OAAO,IAAI,qBAAqB,CAAC,SAAS,MAAM,yCAAyC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAkB,CAAC,CAAC,CAAC,eAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClQ,CAAC;IACD,OAAO,IAAI,qBAAqB,CAAC,SAAS,MAAM,yCAAyC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,SAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3M,CAAC,CAAC;AACF,MAAM,gBAAgB,GAAG,KAAK,EAAE,SAAiB,EAAoB,EAAE;IACrE,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAChD,OAAO,KAAK,EAAE,CAAC;QAAC,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AACvH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAiN,EAAE,EAAE;IAC3P,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACvD,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,4BAA4B,CAAC,CAAC;IAC/F,MAAM,SAAS,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAU,CAAC;IACjE,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,IAAI,OAAO,mBAAmB,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4GAA4G,CAAC,CAAC;IAC5W,MAAM,oBAAoB,GAAG,EAAE,eAAe,EAAE,mBAAmB,CAAC,eAAyB,EAAE,cAAc,EAAE,mBAAmB,CAAC,cAAwB,EAAE,CAAC;IAC9J,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACzG,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IACzF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IACpL,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA0D,CAAC;IAC5F,MAAM,UAAU,GAAG,KAAK,EAAK,GAAW,EAAE,SAAoB,EAAE,MAAwB,EAAc,EAAE;QACtG,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,OAAoB,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACvE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;YAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC;YACH,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACtE,IAAI,SAAS,GAAG,KAAK,CAAC;oBACtB,MAAM,KAAK,GAAG,GAAS,EAAE,GAAG,IAAI,SAAS;wBAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC9J,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClE,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,SAAS;wBAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxI,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO;wBAAE,KAAK,EAAE,CAAC;gBACxC,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,MAAM,MAAM,EAAE,CAAC;QACxB,CAAC;gBAAS,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IAC1B,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,SAAoB,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpF,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,GAAS,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1I,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QACnK,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO;YAAE,KAAK,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAAE,SAAoB,EAAiB,EAAE;QAC5E,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAAC,SAAS,CAAC,KAAK,EAAE,CAAC;gBAAC,IAAI,MAAM,WAAW,CAAC,SAAS,CAAC;oBAAE,OAAO,GAAG,IAAI,CAAC;YAAC,CAAC;YACpH,IAAI,CAAC,OAAO,EAAE,CAAC;gBAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACxD,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAoB,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAChH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACvD,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;IACpX,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,MAAe,EAAE,OAAwB,EAAiB,EAAE;QACnF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjN,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,OAA8B,EAAE,OAAyB,EAAE,SAAoB,EAAE,gBAAgB,GAAG,KAAK,EAAE,EAAE;QACpI,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAClG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAClL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC7J,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAA8B,EAAE,OAAyB,EAAE,SAAoB,EAAE,UAAuC,EAAE,EAAE;QAC3J,IAAI,CAAC;YAAC,OAAO,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAAC,CAAC;QAC5D,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,KAAK,YAAY,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC;YAC9E,MAAM,eAAe,GAAG,KAAK,YAAY,aAAa,IAAI,KAAK,CAAC,MAAM,KAAK,kBAAkB,CAAC;YAC9F,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,YAAY,cAAc,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YACxH,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,EAAE,CAAC;gBACnF,MAAM,IAAI,qBAAqB,CAAC,kEAAkE,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACjJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,KAAc,EAAE,aAA0B,EAA+B,EAAE;QAClG,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;QAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,aAAa,EAAE,IAAI,SAAS,CAAC,KAAK,KAAK,aAAa,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAChO,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC1E,IAAI,SAAS,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QAC5G,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;IACvE,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,KAAK,EAAE,OAA8B,EAAE,OAAyB,EAAE,SAAoB,EAAkC,EAAE;QAC5I,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACtG,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAClL,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC3D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9G,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAC3D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,uBAAuB,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACrI,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;QACpI,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC,EAAE,gBAAgB,EAAE,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,8BAA8B,CAAC,EAAE,aAAa,EAAE,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,4BAA4B,CAAC,EAAE,CAAC;IACjgB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,MAA+B,EAAE,IAAY,EAAE,SAAoB,EAA2B,EAAE;QACtI,IAAI,CAAC;YAAC,OAAO,cAAc,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QAAC,CAAC;QAC1F,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;IAC/D,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAA8B,EAAE,OAAyB,EAAE,SAAoB,EAAE,EAAE;QACpH,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QAChL,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAC9Q,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,IAAI,SAAS,CAAC,8EAA8E,CAAC,CAAC;QAC9K,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;QAC7H,6EAA6E;QAC7E,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/D,IAAI,SAAS,CAAC,IAAK,CAAC,MAAM,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;QACtI,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,EAAE,OAA8B,EAAE,OAAyB,EAAE,MAAc,EAAE,SAAoB,EAAE,aAAa,GAAG,KAAK,EAA+B,EAAE;QAC3K,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,0CAA0C,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,CAAC;QAC3M,IAAI,MAA6B,CAAC;QAClC,MAAM,gBAAgB,GAAG,CAAC,OAA8B,EAAQ,EAAE;YAChE,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5K,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACrO,CAAC,CAAC;QACF,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxD,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;oBAAE,MAAM;gBACrC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACvE,IAAI,OAAO,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;gBAC5I,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACxD,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACzB,IAAI,OAAO,KAAK,UAAU,IAAI,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;oBAAE,MAAM;gBACrF,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;YACD,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,qBAAqB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0DAA0D,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,CAAC;QAAC,CAAC;QACxO,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;QACrH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;YAC9D,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC5N,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,MAAM,IAAI,qBAAqB,CAAC,gEAAgE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC;QAAC,CAAC;QACzL,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IAC1D,CAAC,CAAC;IACF,OAAO;QACL,YAAY,EAAE,GAAgC,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC;QACtK,aAAa,EAAE,KAAK,EAAE,SAAoB,EAAkC,EAAE;YAC5E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,MAAM,GAA0B,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;YACvC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxC,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;oBAAE,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;gBAC5G,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC9B,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,KAAK,KAAK,IAAI;oBAAE,SAAS;gBAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;gBACvE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBACjO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAwB,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACxE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,EAAE,CAAC;oBACpF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;oBACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;oBAC/D,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;oBACvL,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;oBACvE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;oBAC/F,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxD,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU;wBAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;oBAChJ,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;oBACrD,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;oBAC7G,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAC1L,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;oBAC1D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;oBAC5I,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;oBAC5G,MAAM,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;oBACzF,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,OAAO,IAAI,WAAW,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;oBAC7J,IAAI,IAAI,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,IAAI,KAAK,WAAW;wBAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;oBAC1I,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;oBAC7D,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;oBACpI,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;oBACzD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,uBAAuB,CAAC,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;oBACxI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,2BAA2B,CAAC,EAAE,CAAC,CAAC;gBAC5lB,CAAC;gBACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACvG,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,EAAE,CAAC;oBACtF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,WAAW,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBAChN,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,gBAAgB,EAAE,KAAK,EAAE,OAA8B,EAAE,KAAa,EAAE,SAAoB,EAA6B,EAAE;YACzH,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBACvF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;oBACzE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC;oBAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;oBAC7G,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;oBACvB,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC;oBAC7I,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC7C,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC9B,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;gBAC3O,CAAC;gBACD,cAAc,GAAG,IAAI,CAAC;gBACtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,oBAAoB,EAAE,GAAG,gCAAgC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;gBACnN,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,sBAAsB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,EAAE,CAAC;gBACzM,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC7C,OAAO,OAAO,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,qBAAqB;oBAAE,MAAM,KAAK,CAAC;gBACxD,MAAM,IAAI,qBAAqB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2CAA2C,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACrM,CAAC;QACH,CAAC;QACD,iBAAiB,EAAE,CAAC,OAA8B,EAAE,OAAyB,EAAE,KAAa,EAAE,SAAoB,EAAiB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;YAC1L,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;YACrF,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO;YAC7C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;YAC9H,IAAI,SAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;gBAC3D,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;gBACrD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;YACnD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,IAAI,qBAAqB,CAAC,oDAAoD,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;YACpJ,IAAI,SAAS,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;YAClL,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC9E,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK;gBAAE,MAAM,IAAI,qBAAqB,CAAC,yEAAyE,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC9M,CAAC,CAAC;QACF,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,CAAC,OAA8B,EAAE,OAAyB,EAAE,KAA2B,EAAE,SAAoB,EAAkC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;YAC7M,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;gBAAE,MAAM,IAAI,SAAS,CAAC,8DAA8D,CAAC,CAAC;YACrI,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;YACvF,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;YACpI,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,gBAAgB;gBAAE,OAAO,MAAM,CAAC;YAC3F,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC5L,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACtE,IAAI,OAAO,IAAI,IAAI;gBAAE,MAAM,IAAI,qBAAqB,CAAC,6DAA6D,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;YACpJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;YAC/L,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;YACnE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;YAC5D,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YAC9C,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU,IAAI,YAAY,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,qBAAqB,CAAC,yEAAyE,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;YAC/X,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;wBAAE,MAAM,IAAI,qBAAqB,CAAC,mEAAmE,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,CAAC;oBAC/M,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,KAAK,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC;wBAAE,MAAM,IAAI,qBAAqB,CAAC,wDAAwD,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;oBACzQ,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAuB,CAAC,OAAO,CAAC,CAAC;wBAAE,MAAM;oBACzM,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,qBAAqB;oBAAE,MAAM,KAAK,CAAC;gBACxD,MAAM,IAAI,qBAAqB,CAAC,mEAAmE,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAC,CAAC;YACtL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9E,KAAK,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC;YACnC,6EAA6E;YAC7E,4HAA4H;YAC5H,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC/D,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBACnC,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,KAAK,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;oBACtM,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAC;gBACjD,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QACF,YAAY,EAAE,CAAC,OAA8B,EAAE,OAAyB,EAAE,MAAc,EAAE,SAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAChN,YAAY,EAAE,CAAC,OAA8C,EAAE,OAAyB,EAAE,SAAoB,EAAiB,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;YACtL,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACvG,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACtJ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;gBAC/Q,OAAO,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACzM,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9F,4EAA4E;YAC5E,2EAA2E;YAC3E,IAAI,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;gBAC9F,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBAClD,IAAI,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACjJ,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACnC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,mBAAmB,CAAC,CAAC;gBACnI,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,kCAAkC,CAAC,CAAC;gBAC7E,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM;oBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBACtG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,CAAC;gBACnI,KAAK,MAAM,KAAK,IAAI,UAAU;oBAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/G,CAAC;YACD,MAAM,QAAQ,CAAC,iBAAiB,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9G,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,IAAI,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC;gBAAE,MAAM,IAAI,qBAAqB,CAAC,gDAAgD,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;YAC9V,MAAM,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { isDeepStrictEqual } from "node:util";
|
|
2
|
+
import { parse, TomlDate } from "smol-toml";
|
|
3
|
+
const trimStart = (line) => line.replace(/^\p{White_Space}+/u, "");
|
|
4
|
+
const trim = (line) => trimStart(line).replace(/\p{White_Space}+$/u, "");
|
|
5
|
+
const linesOf = (content) => {
|
|
6
|
+
if (content === "")
|
|
7
|
+
return [];
|
|
8
|
+
const lines = content.split("\n");
|
|
9
|
+
const terminated = content.endsWith("\n");
|
|
10
|
+
if (terminated)
|
|
11
|
+
lines.pop();
|
|
12
|
+
return lines.map((line, index) => (index < lines.length - 1 || terminated) && line.endsWith("\r") ? line.slice(0, -1) : line);
|
|
13
|
+
};
|
|
14
|
+
const headerOf = (line) => {
|
|
15
|
+
const value = trimStart(line);
|
|
16
|
+
if (!value.startsWith("["))
|
|
17
|
+
return undefined;
|
|
18
|
+
const size = value.startsWith("[[") ? 2 : 1;
|
|
19
|
+
const end = value.indexOf(size === 2 ? "]]" : "]");
|
|
20
|
+
if (end === -1)
|
|
21
|
+
return undefined;
|
|
22
|
+
const rest = trimStart(value.slice(end + size));
|
|
23
|
+
if (rest !== "" && !rest.startsWith("#"))
|
|
24
|
+
return undefined;
|
|
25
|
+
return value.slice(0, end + size);
|
|
26
|
+
};
|
|
27
|
+
const isKey = (line, key) => {
|
|
28
|
+
const value = trim(line);
|
|
29
|
+
return value.startsWith(key) && trimStart(value.slice(key.length)).startsWith("=");
|
|
30
|
+
};
|
|
31
|
+
// Herdr 0.9.5 edits lines without TOML awareness, including lines inside multiline strings.
|
|
32
|
+
// Project its exact rewrite before authorizing installation; never write the projection ourselves.
|
|
33
|
+
// https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/integration/config_edit.rs#L801-L853
|
|
34
|
+
// https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/integration/config_edit.rs#L949-L984
|
|
35
|
+
export const projectCodexInstallConfiguration = (content) => {
|
|
36
|
+
const lines = linesOf(content);
|
|
37
|
+
const trailingNewline = content.endsWith("\n");
|
|
38
|
+
let inFeatures = false;
|
|
39
|
+
let headerIndex;
|
|
40
|
+
let hooksIndex;
|
|
41
|
+
const deprecatedIndexes = [];
|
|
42
|
+
lines.forEach((line, index) => {
|
|
43
|
+
const header = headerOf(line);
|
|
44
|
+
if (header !== undefined) {
|
|
45
|
+
inFeatures = header === "[features]";
|
|
46
|
+
if (inFeatures && headerIndex === undefined)
|
|
47
|
+
headerIndex = index;
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!inFeatures)
|
|
51
|
+
return;
|
|
52
|
+
if (isKey(line, "codex_hooks"))
|
|
53
|
+
deprecatedIndexes.push(index);
|
|
54
|
+
else if (isKey(line, "hooks"))
|
|
55
|
+
hooksIndex = index;
|
|
56
|
+
});
|
|
57
|
+
if (hooksIndex !== undefined)
|
|
58
|
+
lines[hooksIndex] = "hooks = true";
|
|
59
|
+
for (const index of deprecatedIndexes.reverse())
|
|
60
|
+
lines.splice(index, 1);
|
|
61
|
+
if (hooksIndex === undefined) {
|
|
62
|
+
if (headerIndex === undefined) {
|
|
63
|
+
const result = content.replace(/\n+$/, "");
|
|
64
|
+
return `${result}${result === "" ? "" : "\n\n"}[features]\nhooks = true\n`;
|
|
65
|
+
}
|
|
66
|
+
lines.splice(headerIndex + 1, 0, "hooks = true");
|
|
67
|
+
}
|
|
68
|
+
const result = lines.join("\n");
|
|
69
|
+
return result + (trailingNewline || result === "" ? "\n" : "");
|
|
70
|
+
};
|
|
71
|
+
const supportedValues = (value, depth = 0) => {
|
|
72
|
+
// TomlDate truncates fractional seconds to milliseconds; equality would miss changed native values.
|
|
73
|
+
if (depth > 100 || value instanceof TomlDate)
|
|
74
|
+
throw new Error("Unsupported TOML semantic value.");
|
|
75
|
+
if (typeof value === "object" && value !== null) {
|
|
76
|
+
for (const child of Object.values(value))
|
|
77
|
+
supportedValues(child, depth + 1);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
export const assertCodexInstallConfigurationSafe = (source) => {
|
|
81
|
+
try {
|
|
82
|
+
const options = { integersAsBigInt: true, unsafeKeyBehaviour: "throw", maxDepth: 100, useLegacyDate: true };
|
|
83
|
+
const original = parse(source, options);
|
|
84
|
+
const candidate = parse(projectCodexInstallConfiguration(source), options);
|
|
85
|
+
supportedValues(original);
|
|
86
|
+
supportedValues(candidate);
|
|
87
|
+
if (!Object.hasOwn(original, "features"))
|
|
88
|
+
original.features = parse("[features]\n", options).features;
|
|
89
|
+
const value = original.features;
|
|
90
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
91
|
+
throw new Error("Invalid features table.");
|
|
92
|
+
const features = value;
|
|
93
|
+
// The deprecated root key belongs to the official integration, which removes it during installation.
|
|
94
|
+
delete features.codex_hooks;
|
|
95
|
+
features.hooks = true;
|
|
96
|
+
if (!isDeepStrictEqual(original, candidate))
|
|
97
|
+
throw new Error("Unsafe TOML rewrite.");
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Parser diagnostics may contain native secrets, including excerpts in their cause chain.
|
|
101
|
+
throw new Error("Cannot safely install the Codex Herdr integration: config.toml is invalid, contains unsupported semantic values, or the official rewrite would change settings beyond features.hooks and the deprecated features.codex_hooks key. Inspect the native configuration before retrying.");
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=codex-install-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-install-safety.js","sourceRoot":"","sources":["../../../../src/commands/worker/herdr/codex-install-safety.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ export type HerdrInstanceStopped = {
|
|
|
33
33
|
};
|
|
34
34
|
export declare const resolveHerdrInstancePaths: (worker: Pick<WorkerPaths, "herdrDirectory" | "logsDirectory">, platform?: NodeJS.Platform) => HerdrInstancePaths;
|
|
35
35
|
export declare const createHerdrEnvironment: (paths: HerdrInstancePaths, inherited: NodeJS.ProcessEnv) => NodeJS.ProcessEnv;
|
|
36
|
+
export declare const assertCodexIntegrationHome: (environment: NodeJS.ProcessEnv, root: string, platform?: NodeJS.Platform) => void;
|
|
36
37
|
export declare const createHerdrInstance: (options: {
|
|
37
38
|
paths: Pick<WorkerPaths, "herdrDirectory" | "logsDirectory">;
|
|
38
39
|
executable?: string;
|
|
@@ -51,6 +52,7 @@ export declare const createHerdrInstance: (options: {
|
|
|
51
52
|
unsetEnvironment: string[];
|
|
52
53
|
};
|
|
53
54
|
ensure: (operation: Operation) => Promise<HerdrInstanceReady>;
|
|
55
|
+
assertIntegrationEnvironment: (root: string) => void;
|
|
54
56
|
connect: (operation: Operation) => Promise<HerdrInstanceReady>;
|
|
55
57
|
stop: (operation: Operation) => Promise<HerdrInstanceStopped>;
|
|
56
58
|
};
|
|
@@ -154,12 +154,47 @@ const compatible = (pong) => {
|
|
|
154
154
|
}
|
|
155
155
|
return { version: pong.version, protocol: 22 };
|
|
156
156
|
};
|
|
157
|
-
const observeChild = (child) => {
|
|
158
|
-
const owned = { child, closed: false, code: null, signal: null, error: null };
|
|
157
|
+
const observeChild = (child, environment) => {
|
|
158
|
+
const owned = { child, environment, closed: false, code: null, signal: null, error: null };
|
|
159
159
|
child.once("error", (error) => { owned.error = error; });
|
|
160
160
|
child.once("close", (code, signal) => { owned.closed = true; owned.code = code; owned.signal = signal; });
|
|
161
161
|
return owned;
|
|
162
162
|
};
|
|
163
|
+
const liveOwnedChild = (owned) => owned !== null && !owned.closed && owned.error === null &&
|
|
164
|
+
owned.child.pid !== undefined && owned.child.exitCode === null && owned.child.signalCode === null;
|
|
165
|
+
export const assertCodexIntegrationHome = (environment, root, platform = process.platform) => {
|
|
166
|
+
const paths = platform === "win32" ? path.win32 : path.posix;
|
|
167
|
+
const value = (name) => {
|
|
168
|
+
if (platform !== "win32")
|
|
169
|
+
return environment[name];
|
|
170
|
+
const key = Object.keys(environment).sort().find((key) => key.toUpperCase() === name);
|
|
171
|
+
return key === undefined ? undefined : environment[key];
|
|
172
|
+
};
|
|
173
|
+
const parentTraversal = (directory) => directory.split(platform === "win32" ? /[\\/]/ : /\//).includes("..");
|
|
174
|
+
let directory = value("CODEX_HOME");
|
|
175
|
+
if (directory === undefined || directory === "") {
|
|
176
|
+
let home = value("HOME");
|
|
177
|
+
if ((home === undefined || home === "") && platform === "win32") {
|
|
178
|
+
home = value("USERPROFILE");
|
|
179
|
+
if (home === undefined || home === "") {
|
|
180
|
+
const drive = value("HOMEDRIVE");
|
|
181
|
+
const suffix = value("HOMEPATH");
|
|
182
|
+
if (drive !== undefined && /^[a-z]:[\\/]?$/i.test(drive) && suffix !== undefined && /^[\\/](?![\\/])/.test(suffix) && !parentTraversal(suffix)) {
|
|
183
|
+
home = paths.resolve(drive, suffix);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (home !== undefined && home !== "" && paths.isAbsolute(home) && !parentTraversal(home))
|
|
188
|
+
directory = paths.join(home, ".codex");
|
|
189
|
+
}
|
|
190
|
+
// Herdr uses its daemon environment, including HOME before USERPROFILE, rather than Node's OS home lookup.
|
|
191
|
+
// https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/integration/env.rs#L91-L104
|
|
192
|
+
// https://github.com/herdrdev/herdr/blob/2ecf19a92fc3a7fff75b6ce3655ef04f4625ec01/src/integration/env.rs#L223-L244
|
|
193
|
+
// Resolving '..' lexically can inspect a different directory when an earlier component is a symlink.
|
|
194
|
+
if (directory === undefined || !paths.isAbsolute(directory) || /[\0\r\n]/.test(directory) || parentTraversal(directory) || paths.normalize(directory) !== paths.normalize(root)) {
|
|
195
|
+
throw new Error("Cannot safely install the Codex integration: the daemon's native configuration directory does not match the inspected directory. Set an absolute CODEX_HOME and restart the worker with a newly started private daemon.");
|
|
196
|
+
}
|
|
197
|
+
};
|
|
163
198
|
const killOwnedChild = (owned) => {
|
|
164
199
|
if (owned.closed || owned.child.pid === undefined)
|
|
165
200
|
return;
|
|
@@ -227,7 +262,8 @@ export const createHerdrInstance = (options) => {
|
|
|
227
262
|
let stderr;
|
|
228
263
|
try {
|
|
229
264
|
stderr = openSync(paths.stderrLogFile, "a", 0o600);
|
|
230
|
-
|
|
265
|
+
const spawnEnvironment = Object.freeze({ ...environment });
|
|
266
|
+
owned = observeChild(start(executable, ["--session", session, "server"], { env: spawnEnvironment, detached: true, windowsHide: true, stdio: ["ignore", stdout, stderr] }), spawnEnvironment);
|
|
231
267
|
startedHere = owned;
|
|
232
268
|
}
|
|
233
269
|
finally {
|
|
@@ -278,6 +314,11 @@ export const createHerdrInstance = (options) => {
|
|
|
278
314
|
paths, environment, rpc,
|
|
279
315
|
attachment: { executable, arguments: ["--session", session], environment: attachmentEnvironment, unsetEnvironment: [...inheritedIdentity] },
|
|
280
316
|
ensure,
|
|
317
|
+
assertIntegrationEnvironment: (root) => {
|
|
318
|
+
if (!liveOwnedChild(owned))
|
|
319
|
+
throw new Error("Cannot safely install the Codex integration: the private daemon is not a live process started by this worker. Stop the worker and its private daemon, then restart the worker before repairing the integration.");
|
|
320
|
+
assertCodexIntegrationHome(owned.environment, root);
|
|
321
|
+
},
|
|
281
322
|
connect: async (operation) => {
|
|
282
323
|
const scope = bounded(operation, 30_000);
|
|
283
324
|
try {
|