@jmfederico/pi-web 1.202610.3 → 1.202610.5
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/dist/cli.js +1 -1
- package/dist/client/assets/classic-CyM97Akm.css +54 -0
- package/dist/client/assets/graphite-DquaqFXU.css +54 -0
- package/dist/client/assets/index-DPS1kTH7.js +4389 -0
- package/dist/client/assets/paper-CB1oLuRr.css +54 -0
- package/dist/client/assets/pi-web-dark-D_KtbM95.css +54 -0
- package/dist/client/assets/pi-web-light-DSNLMIBI.css +54 -0
- package/dist/client/index.html +2 -2
- package/dist/config.js +56 -0
- package/dist/config.js.map +1 -1
- package/dist/pi-packages/captains-log/dist/browser/index.js +13 -17
- package/dist/pi-packages/captains-log/dist/browser/panel.js +7 -11
- package/dist/pi-packages/relays/extensions/index.js +1 -0
- package/dist/pi-packages/relays/pi-web-plugin.js +21 -1
- package/dist/pi-packages/relays/relaysPanelElement.js +36 -32
- package/dist/pi-packages/workflows/browser/pi-web-plugin.js +35 -27
- package/dist/pi-packages/workflows/browser/worktreeDialog.js +156 -0
- package/dist/pi-packages/workflows/package.json +1 -0
- package/dist/pi-packages/workflows/prompts/worktree.md +11 -2
- package/dist/pi-packages/workflows/server-plugin.js +579 -0
- package/dist/pi-packages/workflows/vite.config.mjs +17 -0
- package/dist/pi-web-plugins/code-highlight/browser/pi-web-plugin.js +22 -0
- package/dist/pi-web-plugins/code-highlight/package.json +13 -0
- package/dist/pi-web-plugins/files/browser/pi-web-plugin.js +119 -162
- package/dist/pi-web-plugins/git/browser/git-panel.js +61 -46
- package/dist/pi-web-plugins/git/browser/pi-web-plugin.js +25 -3
- package/dist/pi-web-plugins/git/git-backend.js +13 -1
- package/dist/pi-web-plugins/git/server-plugin.js +8 -1
- package/dist/pi-web-plugins/mermaid/browser/pi-web-plugin.js +8 -3
- package/dist/pi-web-plugins/terminal/browser/pi-web-plugin.js +50 -29
- package/dist/pi-web-plugins/updates/pi-web-plugin.js +11 -11
- package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +21 -1
- package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +35 -19
- package/dist/piWebUpdate.js +32 -9
- package/dist/piWebUpdate.js.map +1 -1
- package/dist/plugin-api.d.ts +174 -45
- package/dist/server/browserMessageProjection.js +1 -1
- package/dist/server/browserMessageProjection.js.map +1 -1
- package/dist/server/configRoutes.js +7 -1
- package/dist/server/configRoutes.js.map +1 -1
- package/dist/server/machines/machineProxyRoutes.js +3 -2
- package/dist/server/machines/machineProxyRoutes.js.map +1 -1
- package/dist/server/piWebPluginService.js +7 -1
- package/dist/server/piWebPluginService.js.map +1 -1
- package/dist/server/plugins/pluginBackendChannelProxyAdmission.js +1 -1
- package/dist/server/plugins/pluginBackendChannelProxyAdmission.js.map +1 -1
- package/dist/server/plugins/pluginBackendChannelProxyRoutes.js +31 -38
- package/dist/server/plugins/pluginBackendChannelProxyRoutes.js.map +1 -1
- package/dist/server/plugins/pluginBackendProxyRoutes.js +38 -45
- package/dist/server/plugins/pluginBackendProxyRoutes.js.map +1 -1
- package/dist/server/plugins/pluginBackendRegistry.js +58 -34
- package/dist/server/plugins/pluginBackendRegistry.js.map +1 -1
- package/dist/server/plugins/serverPluginCatalogCapability.js +106 -0
- package/dist/server/plugins/serverPluginCatalogCapability.js.map +1 -0
- package/dist/server/plugins/serverPluginRuntime.js +21 -8
- package/dist/server/plugins/serverPluginRuntime.js.map +1 -1
- package/dist/server/sessiond/pluginBackendChannelRoutes.js +24 -14
- package/dist/server/sessiond/pluginBackendChannelRoutes.js.map +1 -1
- package/dist/server/sessiond/pluginBackendRoutes.js +51 -47
- package/dist/server/sessiond/pluginBackendRoutes.js.map +1 -1
- package/dist/server/sessiond/pluginCatalogRoutes.js +37 -0
- package/dist/server/sessiond/pluginCatalogRoutes.js.map +1 -0
- package/dist/server/sessiond/sessionProxyRoutes.js +17 -0
- package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
- package/dist/server/sessiond/sessionServiceDependencies.js +1 -0
- package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -1
- package/dist/server/sessiond.js +24 -4
- package/dist/server/sessiond.js.map +1 -1
- package/dist/server/sessions/authRoutes.js +1 -0
- package/dist/server/sessions/authRoutes.js.map +1 -1
- package/dist/server/sessions/authService.js +13 -0
- package/dist/server/sessions/authService.js.map +1 -1
- package/dist/server/sessions/builtinExtensionFactories.js +15 -1
- package/dist/server/sessions/builtinExtensionFactories.js.map +1 -1
- package/dist/server/sessions/companionBackend.js +286 -0
- package/dist/server/sessions/companionBackend.js.map +1 -0
- package/dist/server/sessions/mcpAuthFlowService.js +237 -0
- package/dist/server/sessions/mcpAuthFlowService.js.map +1 -0
- package/dist/server/sessions/mcpAuthRoutes.js +76 -0
- package/dist/server/sessions/mcpAuthRoutes.js.map +1 -0
- package/dist/server/sessions/messageHistoryTarget.js +18 -1
- package/dist/server/sessions/messageHistoryTarget.js.map +1 -1
- package/dist/server/sessions/piSessionEventConnections.js +5 -2
- package/dist/server/sessions/piSessionEventConnections.js.map +1 -1
- package/dist/server/sessions/piSessionService.js +279 -22
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/sessions/sessionCommandService.js +3 -17
- package/dist/server/sessions/sessionCommandService.js.map +1 -1
- package/dist/server/sessions/sessionNameGenerator.js +4 -4
- package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
- package/dist/server/sessions/spawnSessionTool.js +1 -0
- package/dist/server/sessions/spawnSessionTool.js.map +1 -1
- package/dist/server/sessions/spawnSubsessionTool.js +1 -0
- package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
- package/dist/server-plugin-api.d.ts +65 -15
- package/dist/server-plugin-api.js +25 -0
- package/dist/server-plugin-api.js.map +1 -1
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/federatedRoutes.js +17 -5
- package/dist/shared/federatedRoutes.js.map +1 -1
- package/dist/shared/pluginApiTypes.d.ts +53 -0
- package/dist/shared/pluginBackendProtocol.js +56 -1
- package/dist/shared/pluginBackendProtocol.js.map +1 -1
- package/dist/shared/pluginCatalogTypes.d.ts +49 -0
- package/dist/shared/pluginCatalogTypes.js +156 -0
- package/dist/shared/pluginCatalogTypes.js.map +1 -0
- package/docs/config.md +68 -2
- package/docs/plugins.md +382 -20
- package/examples/session-bridge-plugin/src/browser/index.ts +1 -1
- package/package.json +7 -12
- package/dist/client/assets/index-BAl5IbYx.js +0 -4429
|
@@ -28,8 +28,8 @@ function renderComponent(html, component) {
|
|
|
28
28
|
function renderCommandActions(html, terminal, label, command) {
|
|
29
29
|
return html `
|
|
30
30
|
<span class="updates-command-actions">
|
|
31
|
-
<button @click=${() => { void navigator.clipboard.writeText(command); }}>Copy</button>
|
|
32
|
-
${terminal === undefined ? null : html `<button class="primary" @click=${() => { runCommandInTerminal(terminal, label, command); }}>Run</button>`}
|
|
31
|
+
<button type="button" class="ui-button ui-button--action ui-button--compact" @click=${() => { void navigator.clipboard.writeText(command); }}>Copy</button>
|
|
32
|
+
${terminal === undefined ? null : html `<button type="button" class="ui-button ui-button--action ui-button--compact ui-button--primary" @click=${() => { runCommandInTerminal(terminal, label, command); }}>Run</button>`}
|
|
33
33
|
</span>
|
|
34
34
|
`;
|
|
35
35
|
}
|
|
@@ -97,7 +97,7 @@ function renderUpdatesPanel(html, terminal, state) {
|
|
|
97
97
|
const status = statusFor(state) ?? fallbackDockerStatus(runtimeHint);
|
|
98
98
|
if (status === undefined) {
|
|
99
99
|
return html `
|
|
100
|
-
<section class="toolbar"><strong>Updates</strong></section>
|
|
100
|
+
<section class="ui-toolbar"><strong class="ui-toolbar-title">Updates</strong></section>
|
|
101
101
|
<section class="viewer"><p class="muted">Checking PI WEB update status…</p></section>
|
|
102
102
|
`;
|
|
103
103
|
}
|
|
@@ -106,6 +106,7 @@ function renderUpdatesPanel(html, terminal, state) {
|
|
|
106
106
|
const additional = additionalCommands(status, recommended);
|
|
107
107
|
return html `
|
|
108
108
|
<style>
|
|
109
|
+
.updates-toolbar { flex: 0 0 auto; padding-inline: 12px; border-bottom: 1px solid var(--pi-border-muted); }
|
|
109
110
|
.viewer.updates-status { flex: 1 1 auto; min-height: 0; box-sizing: border-box; display: flex; flex-direction: column; gap: 14px; padding: 12px; overflow-y: auto; overflow-x: hidden; }
|
|
110
111
|
.viewer.updates-status section { flex: 0 0 auto; min-width: 0; display: grid; gap: 8px; }
|
|
111
112
|
.updates-message { display: grid; gap: 5px; border: 1px solid var(--pi-border); border-radius: 8px; padding: 10px; background: var(--pi-surface); }
|
|
@@ -114,21 +115,20 @@ function renderUpdatesPanel(html, terminal, state) {
|
|
|
114
115
|
.updates-message-title { display: flex; gap: 8px; align-items: baseline; }
|
|
115
116
|
.updates-message-title span { color: var(--pi-muted); font-size: 12px; text-transform: uppercase; }
|
|
116
117
|
.updates-version-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; border-bottom: 1px solid var(--pi-border-muted); padding: 6px 0; }
|
|
117
|
-
.updates-version-row small { grid-column: 1 / -1; color: var(--pi-muted); }
|
|
118
|
-
.updates-command { min-width: 0; display: grid; grid-template-columns:
|
|
118
|
+
.updates-version-row small { grid-column: 1 / -1; color: var(--pi-muted); overflow-wrap: anywhere; }
|
|
119
|
+
.updates-command { min-width: 0; display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 8px; align-items: center; }
|
|
119
120
|
.updates-command code { overflow: auto; border: 1px solid var(--pi-border-muted); border-radius: 6px; background: var(--pi-bg); padding: 5px 7px; white-space: nowrap; }
|
|
120
121
|
.updates-command-actions { display: inline-flex; gap: 6px; }
|
|
121
|
-
.updates-command-actions button.primary { border-color: var(--pi-accent-border); color: var(--pi-text-bright); }
|
|
122
122
|
.updates-recommended { border: 1px solid var(--pi-accent-border); border-radius: 8px; padding: 10px; background: var(--pi-surface); }
|
|
123
123
|
.updates-recommended > strong { color: var(--pi-text-bright); }
|
|
124
124
|
.updates-recommended .updates-message { border: none; background: none; padding: 0; }
|
|
125
|
-
.updates-meta { display: grid; gap: 2px; color: var(--pi-muted); font-size: 12px; }
|
|
126
|
-
@
|
|
127
|
-
.updates-command { grid-template-columns: minmax(0, 1fr)
|
|
128
|
-
.updates-command
|
|
125
|
+
.updates-meta { display: grid; gap: 2px; color: var(--pi-muted); font-size: 12px; overflow-wrap: anywhere; }
|
|
126
|
+
@container (max-width: 520px) {
|
|
127
|
+
.updates-command { grid-template-columns: minmax(0, 1fr); }
|
|
128
|
+
.updates-command-actions { justify-self: start; }
|
|
129
129
|
}
|
|
130
130
|
</style>
|
|
131
|
-
<section class="toolbar"><strong>Updates</strong>${messages.length > 0 ? html `<span class="stale">${String(messages.length)}</span>` : null}</section>
|
|
131
|
+
<section class="ui-toolbar updates-toolbar"><strong class="ui-toolbar-title">Updates</strong>${messages.length > 0 ? html `<span class="stale">${String(messages.length)}</span>` : null}</section>
|
|
132
132
|
<section class="viewer updates-status">
|
|
133
133
|
${recommended === undefined
|
|
134
134
|
? renderNotices(html, messages)
|
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
// Generated from pi-web-plugins/workspace-tasks/pi-web-plugin.ts. Do not edit directly.
|
|
2
2
|
import { TASKS_CONFIG_PATH } from "./config.js";
|
|
3
3
|
import { defineTasksPanelElement, tasksPanelBadge } from "./tasksPanelElement.js";
|
|
4
|
+
const stylesheetIntegrationCapability = {
|
|
5
|
+
pluginId: "pi-web", id: "stylesheet-integration", version: 1,
|
|
6
|
+
parse(value) {
|
|
7
|
+
if (!isStylesheetIntegration(value)) {
|
|
8
|
+
throw new Error("Stylesheet integration capability v1 requires registerRoot and createController");
|
|
9
|
+
}
|
|
10
|
+
return value;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
function isStylesheetIntegration(value) {
|
|
14
|
+
return typeof value === "object" && value !== null
|
|
15
|
+
&& "registerRoot" in value && typeof value.registerRoot === "function"
|
|
16
|
+
&& "createController" in value && typeof value.createController === "function"
|
|
17
|
+
&& "subscribe" in value && typeof value.subscribe === "function";
|
|
18
|
+
}
|
|
4
19
|
const plugin = {
|
|
5
20
|
apiVersion: 4,
|
|
6
21
|
name: "Workspace Tasks",
|
|
22
|
+
requires: [stylesheetIntegrationCapability],
|
|
7
23
|
activate: ({ runtimePluginId, html, svg }) => {
|
|
8
24
|
defineTasksPanelElement();
|
|
25
|
+
let stylesheetIntegration;
|
|
9
26
|
return {
|
|
27
|
+
start({ capabilities }) {
|
|
28
|
+
stylesheetIntegration = capabilities.resolve(stylesheetIntegrationCapability);
|
|
29
|
+
},
|
|
10
30
|
contributions: {
|
|
11
31
|
actions: [
|
|
12
32
|
{
|
|
@@ -38,7 +58,7 @@ const plugin = {
|
|
|
38
58
|
`,
|
|
39
59
|
order: 40,
|
|
40
60
|
badge: (context) => tasksPanelBadge(context),
|
|
41
|
-
render: (context) => html `<pi-web-workspace-tasks-panel .context=${context}></pi-web-workspace-tasks-panel>`,
|
|
61
|
+
render: (context) => html `<pi-web-workspace-tasks-panel .stylesheetIntegration=${stylesheetIntegration} .context=${context}></pi-web-workspace-tasks-panel>`,
|
|
42
62
|
},
|
|
43
63
|
],
|
|
44
64
|
},
|
|
@@ -13,17 +13,36 @@ export function tasksPanelBadge(context) {
|
|
|
13
13
|
const state = getCachedWorkspaceConfig(context);
|
|
14
14
|
return state?.kind === "unavailable" ? "!" : undefined;
|
|
15
15
|
}
|
|
16
|
-
class PiWebTasksPanel extends HTMLElement {
|
|
16
|
+
export class PiWebTasksPanel extends HTMLElement {
|
|
17
|
+
integration;
|
|
18
|
+
releaseStyles;
|
|
19
|
+
set stylesheetIntegration(value) {
|
|
20
|
+
if (value === this.integration)
|
|
21
|
+
return;
|
|
22
|
+
this.releaseStyles?.();
|
|
23
|
+
this.releaseStyles = undefined;
|
|
24
|
+
this.integration = value;
|
|
25
|
+
if (this.isConnected)
|
|
26
|
+
this.releaseStyles = value?.registerRoot(this.root, { sharedUi: true });
|
|
27
|
+
}
|
|
17
28
|
contextValue;
|
|
18
29
|
runningTaskId;
|
|
19
30
|
status;
|
|
20
31
|
root;
|
|
32
|
+
localStyle = document.createElement("style");
|
|
21
33
|
onConfigChanged = () => {
|
|
22
34
|
this.render();
|
|
23
35
|
};
|
|
24
36
|
constructor() {
|
|
25
37
|
super();
|
|
26
38
|
this.root = this.attachShadow({ mode: "open" });
|
|
39
|
+
this.localStyle.textContent = taskStyles();
|
|
40
|
+
this.root.append(this.localStyle);
|
|
41
|
+
}
|
|
42
|
+
setContent(markup) {
|
|
43
|
+
const template = document.createElement("template");
|
|
44
|
+
template.innerHTML = markup;
|
|
45
|
+
this.root.replaceChildren(this.localStyle, template.content);
|
|
27
46
|
}
|
|
28
47
|
set context(value) {
|
|
29
48
|
const previousKey = this.contextValue === undefined ? undefined : cacheKeyForContext(this.contextValue);
|
|
@@ -38,33 +57,35 @@ class PiWebTasksPanel extends HTMLElement {
|
|
|
38
57
|
this.render();
|
|
39
58
|
}
|
|
40
59
|
connectedCallback() {
|
|
60
|
+
this.releaseStyles ??= this.integration?.registerRoot(this.root, { sharedUi: true });
|
|
41
61
|
window.addEventListener(configChangedEvent, this.onConfigChanged);
|
|
42
62
|
this.render();
|
|
43
63
|
}
|
|
44
64
|
disconnectedCallback() {
|
|
65
|
+
this.releaseStyles?.();
|
|
66
|
+
this.releaseStyles = undefined;
|
|
45
67
|
window.removeEventListener(configChangedEvent, this.onConfigChanged);
|
|
46
68
|
}
|
|
47
69
|
render() {
|
|
48
70
|
const context = this.contextValue;
|
|
49
71
|
if (context === undefined) {
|
|
50
|
-
this.
|
|
72
|
+
this.setContent(`<section class="empty">Select a workspace.</section>`);
|
|
51
73
|
return;
|
|
52
74
|
}
|
|
53
75
|
const state = getOrLoadWorkspaceConfig(context);
|
|
54
|
-
this.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
<button class="
|
|
60
|
-
<button class="secondary" data-open-terminal>Open Terminal</button>
|
|
76
|
+
this.setContent(`
|
|
77
|
+
<section class="ui-toolbar toolbar">
|
|
78
|
+
<strong class="ui-toolbar-title toolbar-title">Workspace Tasks</strong>
|
|
79
|
+
<span class="ui-toolbar-group">
|
|
80
|
+
<button type="button" class="ui-button" data-refresh-config ${state.kind === "loading" ? "disabled" : ""}>Refresh</button>
|
|
81
|
+
<button type="button" class="ui-button" data-open-terminal>Open Terminal</button>
|
|
61
82
|
</span>
|
|
62
83
|
</section>
|
|
63
84
|
${this.renderStatus()}
|
|
64
85
|
<section class="viewer tasks-viewer">
|
|
65
86
|
${this.renderConfigState(state)}
|
|
66
87
|
</section>
|
|
67
|
-
|
|
88
|
+
`);
|
|
68
89
|
this.root.querySelector("button[data-refresh-config]")?.addEventListener("click", () => {
|
|
69
90
|
void this.refreshConfig(context);
|
|
70
91
|
});
|
|
@@ -236,7 +257,7 @@ function renderTask(task, runningTaskId) {
|
|
|
236
257
|
${description}
|
|
237
258
|
<code>${escapeHtml(task.command)}</code>
|
|
238
259
|
</div>
|
|
239
|
-
<button data-task-id="${escapeAttr(task.id)}" ${disabled ? "disabled" : ""}>${running ? "Dispatching…" : "Run"}</button>
|
|
260
|
+
<button type="button" class="ui-button ui-button--primary" data-task-id="${escapeAttr(task.id)}" ${disabled ? "disabled" : ""}>${running ? "Dispatching…" : "Run"}</button>
|
|
240
261
|
</article>
|
|
241
262
|
`;
|
|
242
263
|
}
|
|
@@ -247,10 +268,9 @@ function taskFromConfigState(state, taskId) {
|
|
|
247
268
|
}
|
|
248
269
|
function taskStyles() {
|
|
249
270
|
return `
|
|
250
|
-
<style>
|
|
251
271
|
:host { display: contents; }
|
|
252
|
-
.toolbar {
|
|
253
|
-
.toolbar-
|
|
272
|
+
.toolbar { border-bottom: 1px solid var(--pi-border-muted); }
|
|
273
|
+
.toolbar-title { padding-inline: 10px; }
|
|
254
274
|
.viewer { box-sizing: border-box; min-height: 0; overflow: auto; padding: 12px; }
|
|
255
275
|
.tasks-viewer { display: grid; align-content: start; gap: 12px; }
|
|
256
276
|
.tasks { display: grid; gap: 14px; }
|
|
@@ -259,12 +279,9 @@ function taskStyles() {
|
|
|
259
279
|
.task-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; border: 1px solid var(--pi-border); border-radius: 10px; background: var(--pi-surface); padding: 12px; }
|
|
260
280
|
.task-copy { display: grid; min-width: 0; gap: 5px; }
|
|
261
281
|
.task-copy span, .muted { color: var(--pi-muted); }
|
|
262
|
-
code, pre { border: 1px solid var(--pi-border-muted); border-radius: 6px; background: var(--pi-bg); color: var(--pi-text-secondary); font: 12px ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
|
|
282
|
+
code, pre { border: 1px solid var(--pi-border-muted); border-radius: 6px; background: var(--pi-bg); color: var(--pi-text-secondary); font: 12px var(--pi-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace); }
|
|
263
283
|
code { overflow: auto; padding: 5px 7px; white-space: nowrap; }
|
|
264
284
|
pre { margin: 8px 0 0; overflow: auto; padding: 8px; white-space: pre-wrap; }
|
|
265
|
-
button { border: 1px solid var(--pi-accent-border); border-radius: 7px; background: var(--pi-accent); color: var(--pi-bg); cursor: pointer; padding: 6px 10px; font: inherit; }
|
|
266
|
-
button.secondary { border-color: var(--pi-border); background: var(--pi-surface); color: var(--pi-text); }
|
|
267
|
-
button:disabled { cursor: wait; opacity: 0.65; }
|
|
268
285
|
.empty-state { border: 1px dashed var(--pi-border-muted); border-radius: 8px; color: var(--pi-muted); padding: 12px; }
|
|
269
286
|
.empty-state p { margin: 6px 0 0; }
|
|
270
287
|
.panel-status { margin: 12px 12px 0; }
|
|
@@ -277,7 +294,6 @@ function taskStyles() {
|
|
|
277
294
|
.task-card { grid-template-columns: 1fr; }
|
|
278
295
|
.task-card button { justify-self: start; }
|
|
279
296
|
}
|
|
280
|
-
</style>
|
|
281
297
|
`;
|
|
282
298
|
}
|
|
283
299
|
function escapeHtml(value) {
|
package/dist/piWebUpdate.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { execFile, spawn } from "node:child_process";
|
|
2
|
-
import { mkdir, realpath, rm, writeFile } from "node:fs/promises";
|
|
2
|
+
import { mkdir, readFile, realpath, rm, writeFile } from "node:fs/promises";
|
|
3
3
|
import { existsSync } from "node:fs";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
5
5
|
import { homedir, userInfo } from "node:os";
|
|
@@ -15,7 +15,7 @@ import { nativeServiceManagerRefs } from "./nativeServices/servicePlan.js";
|
|
|
15
15
|
const PACKAGE_NAME = "@jmfederico/pi-web";
|
|
16
16
|
const UPDATE_HANDOFF_LABEL_PREFIX = "com.pi-web.update";
|
|
17
17
|
const WARNING = "Updating PI WEB will restart services and interrupt active sessions and terminals, including this terminal.";
|
|
18
|
-
const HELP = "Usage: pi-web update [--yes]\
|
|
18
|
+
const HELP = "Usage: pi-web update [--yes] [--force]\n--force reinstalls an npm-global installation even when already current. Without --yes, an interactive confirmation is required. Nested Linux updates use a detached systemd user service. Nested macOS updates use a detached launchd user agent.";
|
|
19
19
|
function defaultDependencies() {
|
|
20
20
|
return {
|
|
21
21
|
env: { ...process.env },
|
|
@@ -29,6 +29,7 @@ function defaultDependencies() {
|
|
|
29
29
|
mkdir: (path) => mkdir(path, { recursive: true }).then(() => undefined),
|
|
30
30
|
writeFile: (path, contents) => writeFile(path, contents, { encoding: "utf8", mode: 0o600 }),
|
|
31
31
|
removeFile: (path) => rm(path, { force: true }),
|
|
32
|
+
readFile: (path) => readFile(path, "utf8"),
|
|
32
33
|
// Use this installation's Pi, not an unrelated (or older) `pi` on PATH.
|
|
33
34
|
piCliPath: fileURLToPath(new URL("./cli.js", import.meta.resolve("@earendil-works/pi-coding-agent"))),
|
|
34
35
|
interactive: isatty(0) && isatty(1),
|
|
@@ -72,11 +73,12 @@ function defaultDependencies() {
|
|
|
72
73
|
}
|
|
73
74
|
/** CLI arguments exclude `update`. Throws on invalid/unsafe requests and failed commands. */
|
|
74
75
|
export async function runPiWebUpdate(args, injected) {
|
|
75
|
-
const
|
|
76
|
+
const help = args.length === 1 && ["--help", "-h"].includes(args[0] ?? "");
|
|
77
|
+
const valid = help || (new Set(args).size === args.length && args.every((arg) => ["--yes", "--force"].includes(arg)));
|
|
76
78
|
if (!valid)
|
|
77
79
|
throw new Error(`Invalid update arguments. ${HELP}`);
|
|
78
80
|
const deps = injected ?? defaultDependencies();
|
|
79
|
-
if (
|
|
81
|
+
if (help) {
|
|
80
82
|
deps.log(HELP);
|
|
81
83
|
return;
|
|
82
84
|
}
|
|
@@ -124,7 +126,27 @@ export async function runPiWebUpdate(args, injected) {
|
|
|
124
126
|
|| await deps.realpath(join(root, PACKAGE_NAME)) !== await deps.realpath(installation.path)) {
|
|
125
127
|
throw new Error("Global npm target does not match this installation; nothing changed.");
|
|
126
128
|
}
|
|
127
|
-
|
|
129
|
+
let latestVersion;
|
|
130
|
+
try {
|
|
131
|
+
const version = JSON.parse(await deps.capture(command("npm", ["view", "--global", "--prefix", resolve(prefix), `${PACKAGE_NAME}@latest`, "version", "--json"])));
|
|
132
|
+
if (typeof version !== "string" || !/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/.test(version)) {
|
|
133
|
+
throw new Error("npm did not return a package version");
|
|
134
|
+
}
|
|
135
|
+
latestVersion = version;
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
throw new Error("Cannot determine the latest PI WEB npm version; no install or restart was run.", { cause: error });
|
|
139
|
+
}
|
|
140
|
+
const installed = JSON.parse(await deps.readFile(join(installation.path, "package.json")));
|
|
141
|
+
if (typeof installed !== "object" || installed === null || !("version" in installed) || typeof installed.version !== "string") {
|
|
142
|
+
throw new Error("Cannot determine the installed PI WEB version; nothing changed.");
|
|
143
|
+
}
|
|
144
|
+
if (installed.version === latestVersion && !args.includes("--force")) {
|
|
145
|
+
deps.log(`PI WEB is already up to date (${latestVersion}). Nothing changed. Use --force to reinstall.`);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
// Install the release we checked, even if the registry tag moves during confirmation.
|
|
149
|
+
update = command("npm", ["install", "--global", "--prefix", resolve(prefix), `${PACKAGE_NAME}@${latestVersion}`, "--allow-scripts=node-pty"]);
|
|
128
150
|
}
|
|
129
151
|
else {
|
|
130
152
|
if (installation.scope !== "user" || installation.source === undefined || installation.source === "" || !/^(npm:|git:|https?:\/\/|ssh:\/\/)/.test(installation.source)) {
|
|
@@ -158,7 +180,7 @@ export async function runPiWebUpdate(args, injected) {
|
|
|
158
180
|
restart = command("systemd-run", [...dispatchArgs, `--unit=${restartUnit}`, "--", restart.executable, ...restart.args]);
|
|
159
181
|
}
|
|
160
182
|
else if (nested && deps.platform === "darwin") {
|
|
161
|
-
launchdHandoff = createLaunchdUpdateHandoff(deps, installation);
|
|
183
|
+
launchdHandoff = createLaunchdUpdateHandoff(deps, installation, args.includes("--force"));
|
|
162
184
|
}
|
|
163
185
|
}
|
|
164
186
|
deps.log(`Update target: ${installation.kind}${installation.path === undefined ? "" : ` at ${JSON.stringify(installation.path)}`}`);
|
|
@@ -175,7 +197,7 @@ export async function runPiWebUpdate(args, injected) {
|
|
|
175
197
|
deps.log("The Docker installer owns the update and service restart.");
|
|
176
198
|
}
|
|
177
199
|
deps.log(WARNING);
|
|
178
|
-
if (args
|
|
200
|
+
if (!args.includes("--yes")) {
|
|
179
201
|
if (!deps.interactive)
|
|
180
202
|
throw new Error("Noninteractive update requires explicit --yes consent. Nothing changed.");
|
|
181
203
|
if (!await deps.confirm("Proceed with the update and restart?")) {
|
|
@@ -238,7 +260,7 @@ async function planLocalCheckoutUpdate(deps, path) {
|
|
|
238
260
|
build: { executable: "npm", args: ["--prefix", path, "run", "build"], env: { ...deps.env } },
|
|
239
261
|
};
|
|
240
262
|
}
|
|
241
|
-
function createLaunchdUpdateHandoff(deps, installation) {
|
|
263
|
+
function createLaunchdUpdateHandoff(deps, installation, force) {
|
|
242
264
|
if (installation.path === undefined || !isAbsolute(installation.path)) {
|
|
243
265
|
throw new Error("Cannot safely locate this PI WEB installation for a launchd handoff; nothing changed.");
|
|
244
266
|
}
|
|
@@ -266,6 +288,7 @@ function createLaunchdUpdateHandoff(deps, installation) {
|
|
|
266
288
|
environment,
|
|
267
289
|
plist: renderLaunchdUpdatePlist({
|
|
268
290
|
label,
|
|
291
|
+
force,
|
|
269
292
|
nodeExecutable: deps.nodeExecutable,
|
|
270
293
|
cliPath: join(installation.path, "dist", "cli.js"),
|
|
271
294
|
workingDirectory: deps.cwd,
|
|
@@ -331,7 +354,7 @@ function launchdHandoffEnvironment(source) {
|
|
|
331
354
|
return environment;
|
|
332
355
|
}
|
|
333
356
|
function renderLaunchdUpdatePlist(input) {
|
|
334
|
-
const programArguments = [input.nodeExecutable, input.cliPath, "update", "--yes"];
|
|
357
|
+
const programArguments = [input.nodeExecutable, input.cliPath, "update", "--yes", ...(input.force ? ["--force"] : [])];
|
|
335
358
|
const environmentEntries = Object.keys(input.environment)
|
|
336
359
|
.sort()
|
|
337
360
|
.map((key) => ` <key>${xmlEscape(key)}</key>\n <string>${xmlEscape(input.environment[key] ?? "")}</string>\n`)
|
package/dist/piWebUpdate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piWebUpdate.js","sourceRoot":"","sources":["../src/piWebUpdate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"piWebUpdate.js","sourceRoot":"","sources":["../src/piWebUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAC1C,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AACxD,MAAM,OAAO,GAAG,6GAA6G,CAAC;AAC9H,MAAM,IAAI,GAAG,4RAA4R,CAAC;AA2C1S,SAAS,mBAAmB;IAC1B,OAAO;QACL,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACvB,cAAc,EAAE,OAAO,CAAC,QAAQ;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,EAAE;QACf,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACvE,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC3F,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC/C,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAC1C,wEAAwE;QACxE,SAAS,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACrG,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;QACnC,KAAK,CAAC,QAAQ;YACZ,MAAM,MAAM,GAAG,MAAM,IAAI,mBAAmB,EAAE,CAAC,qBAAqB,EAAE,CAAC;YACvE,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;gBAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;YAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACjH,OAAO,oBAAoB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACjD,CAAC;QACD,kBAAkB,EAAE,uBAAuB;QAC3C,QAAQ;QACR,KAAK,CAAC,OAAO,CAAC,OAAO;YACnB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACnH,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,GAAG,CAAC,OAAO;YACT,OAAO,IAAI,OAAO,CAAO,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;gBAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC9F,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;oBAClC,IAAI,IAAI,KAAK,CAAC;wBAAE,UAAU,EAAE,CAAC;;wBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,YAAY,MAAM,IAAI,QAAQ,MAAM,CAAC,IAAI,CAAC,EAAE,8CAA8C,CAAC,CAAC,CAAC;gBAC1I,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,OAAO;YACnB,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC;gBACH,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;oBAAS,CAAC;gBACT,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAuB,EAAE,QAAkC;IAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtH,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,QAAQ,IAAI,mBAAmB,EAAE,CAAC;IAC/C,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACpI,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAClD,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,mKAAmK,CAAC,CAAC;QAC9K,OAAO;IACT,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxG,MAAM,IAAI,KAAK,CAAC,wMAAwM,CAAC,CAAC;IAC5N,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,UAAkB,EAAE,WAAqB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAsB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;IACxJ,IAAI,MAA0B,CAAC;IAC/B,IAAI,eAAe,GAAyB,EAAE,CAAC;IAC/C,IAAI,iBAAiD,CAAC;IACtD,IAAI,OAAuC,CAAC;IAC5C,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,IAAI,YAAY,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC;QACvI,CAAC;QACD,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzG,CAAC;SAAM,CAAC;QACN,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAC1J,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAC/F,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;YACzE,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC;YACnC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;YACxB,eAAe,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC;YAClC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACpI,6EAA6E;YAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1F,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YAChG,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;mBAC5D,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9F,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC1F,CAAC;YACD,IAAI,aAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1K,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,0DAA0D,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7G,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAC1D,CAAC;gBACD,aAAa,GAAG,OAAO,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,gFAAgF,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACtH,CAAC;YACD,MAAM,SAAS,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACpG,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC9H,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,GAAG,CAAC,iCAAiC,aAAa,+CAA+C,CAAC,CAAC;gBACxG,OAAO;YACT,CAAC;YACD,sFAAsF;YACtF,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,IAAI,aAAa,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;QAChJ,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,CAAC,KAAK,KAAK,MAAM,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,IAAI,YAAY,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvK,MAAM,IAAI,KAAK,CAAC,kIAAkI,CAAC,CAAC;YACtJ,CAAC;YACD,8EAA8E;YAC9E,0EAA0E;YAC1E,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE;gBACpH,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,EAAE,QAAQ;aACjD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,WAA+B,CAAC;IACpC,IAAI,cAAgD,CAAC;IACrD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACxC,WAAW,GAAG,yBAAyB,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACzD,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC/C,8EAA8E;YAC9E,wEAAwE;YACxE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;oBACxC,GAAG,YAAY,EAAE,UAAU,WAAW,YAAY,EAAE,QAAQ,EAAE,IAAI;oBAClE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,iBAAiB;iBACjD,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,yGAAyG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/I,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,YAAY,EAAE,UAAU,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1H,CAAC;aAAM,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChD,cAAc,GAAG,0BAA0B,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,kBAAkB,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACpI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjK,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,kBAAkB,GAAG,WAAW,KAAK,SAAS;YAClD,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oCAAoC,cAAc,CAAC,MAAM,EAAE;YACjG,CAAC,CAAC,mCAAmC,WAAW,EAAE,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,WAAW,kBAAkB,GAAG,CAAC,CAAC;QAC5K,IAAI,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,2BAA2B,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;QAClH,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;IACH,CAAC;IACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC,2CAA2C,cAAc,CAAC,MAAM,yCAAyC,cAAc,CAAC,OAAO,GAAG,CAAC,CAAC;QAC7I,OAAO;IACT,CAAC;IACD,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4JAA4J,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAClM,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,eAAe;YAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,2EAA2E,WAAW,GAAG,CAAC,CAAC;IACrI,CAAC;AACH,CAAC;AAQD,KAAK,UAAU,uBAAuB,CAAC,IAA6B,EAAE,IAAY;IAChF,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC;IACjE,MAAM,GAAG,GAAG,CAAC,IAAc,EAAsB,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC,CAAC;IACrI,MAAM,UAAU,GAAG,KAAK,EAAE,IAAc,EAAE,OAAe,EAAmB,EAAE;QAC5E,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,2GAA2G,CAAC,CAAC;IAChL,IAAI,OAAO,KAAK,EAAE,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,8GAA8G,CAAC,CAAC;IAClI,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,EAAE,2CAA2C,CAAC,CAAC;IACpI,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,0HAA0H,CAAC,CAAC;IAC9I,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,+EAA+E,CAAC,CAAC;IACjK,IAAI,MAAM,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uGAAuG,CAAC,CAAC;IAC5I,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,CAAC,WAAW,EAAE,cAAc,EAAE,sBAAsB,EAAE,aAAa,CAAC,EAAE,6BAA6B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;IAClM,IAAI,QAAQ,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC;IAChJ,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;QACzF,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;KAC7F,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CACjC,IAA6B,EAC7B,YAAmC,EACnC,KAAc;IAEd,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC3B,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,2BAA2B,IAAI,EAAE,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5C,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC;IACnE,OAAO;QACL,MAAM;QACN,KAAK;QACL,MAAM,EAAE,GAAG,MAAM,IAAI,KAAK,EAAE;QAC5B,SAAS;QACT,OAAO;QACP,WAAW;QACX,KAAK,EAAE,wBAAwB,CAAC;YAC9B,KAAK;YACL,KAAK;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;YAClD,gBAAgB,EAAE,IAAI,CAAC,GAAG;YAC1B,WAAW;YACX,OAAO;SACR,CAAC;KACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAA6B,EAAE,OAA6B;IAC/F,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7C,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,qEAAqE;QACrE,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,yEAAyE;QACzE,6EAA6E;QAC7E,uEAAuE;QACvE,oDAAoD;QACpD,MAAM,IAAI,CAAC,GAAG,CAAC;YACb,UAAU,EAAE,WAAW;YACvB,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;YACtD,GAAG,EAAE,OAAO,CAAC,WAAW;SACzB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,UAAU;YAAE,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,wGAAwG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9I,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,IAA6B,EAAE,IAAY;IAC3E,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,uDAAuD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrJ,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAyB;IAC1D,MAAM,WAAW,GAAsB,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;QAC3B,MAAM;QACN,MAAM;QACN,iBAAiB;QACjB,eAAe;QACf,iBAAiB;QACjB,0BAA0B;QAC1B,qBAAqB;KACtB,CAAC,CAAC;IACH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,GAAG,KAAK,gBAAgB,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAAE,SAAS;QACxI,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACpD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAYD,SAAS,wBAAwB,CAAC,KAA8B;IAC9D,MAAM,gBAAgB,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvH,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;SACtD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,SAAS,CAAC,GAAG,CAAC,uBAAuB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC;SACnH,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO;;;;;YAKG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;;;EAGhC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;YAGlF,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC;;;EAG3C,kBAAkB;;;;;;;;YAQR,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;;YAExB,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;;;CAGnC,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;SACzB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,IAA6B;IAClE,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAC3J,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO;QAClH,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;QAC9G,MAAM,IAAI,KAAK,CAAC,oJAAoJ,CAAC,CAAC;IACxK,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,sBAAsB,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,WAAW,mEAAmE,CAAC,CAAC;QACvJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA6B;IACxD,2EAA2E;IAC3E,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAChD,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC;WACpC,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/I,OAAO,CAAC,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE,uBAAuB,IAAI,CAAC,GAAG,EAAE;QACzF,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,MAAM,CAAC,KAAyB;IACvC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;AACjG,CAAC"}
|