dsh-ssh-tui 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.en.md +16 -1
  2. package/README.md +14 -1
  3. package/cordis.patch.yml +15 -0
  4. package/docs/terminals.md +113 -0
  5. package/lib/diag.js +35 -0
  6. package/lib/diag.js.map +1 -1
  7. package/lib/display-sock.js +259 -42
  8. package/lib/display-sock.js.map +1 -1
  9. package/lib/doctor.js +71 -37
  10. package/lib/doctor.js.map +1 -1
  11. package/lib/dsh-compat.js +206 -88
  12. package/lib/dsh-compat.js.map +1 -1
  13. package/lib/footer.js +4 -2
  14. package/lib/footer.js.map +1 -1
  15. package/lib/i18n/en.js +18 -0
  16. package/lib/i18n/en.js.map +1 -1
  17. package/lib/i18n/index.js +13 -7
  18. package/lib/i18n/index.js.map +1 -1
  19. package/lib/i18n/zh.js +18 -0
  20. package/lib/i18n/zh.js.map +1 -1
  21. package/lib/index.js +36 -11
  22. package/lib/index.js.map +1 -1
  23. package/lib/paint.js +5 -2
  24. package/lib/paint.js.map +1 -1
  25. package/lib/picker.js +5 -3
  26. package/lib/picker.js.map +1 -1
  27. package/lib/platform.js +296 -11
  28. package/lib/platform.js.map +1 -1
  29. package/lib/preset-authoring.js +10 -14
  30. package/lib/preset-authoring.js.map +1 -1
  31. package/lib/preset-compat.js +100 -0
  32. package/lib/preset-compat.js.map +1 -0
  33. package/lib/preset-picker.js +5 -1
  34. package/lib/preset-picker.js.map +1 -1
  35. package/lib/preset-rows.js +83 -13
  36. package/lib/preset-rows.js.map +1 -1
  37. package/lib/provider-catalog.js +4 -4
  38. package/lib/route-memory.js +3 -3
  39. package/lib/route-memory.js.map +1 -1
  40. package/lib/session-index.js +5 -0
  41. package/lib/session-index.js.map +1 -1
  42. package/lib/session-lock.js +4 -1
  43. package/lib/session-lock.js.map +1 -1
  44. package/lib/session-route.js +3 -0
  45. package/lib/session-route.js.map +1 -1
  46. package/lib/settings-routes.js +10 -0
  47. package/lib/settings-routes.js.map +1 -0
  48. package/lib/settings-subagent.js +10 -0
  49. package/lib/settings-subagent.js.map +1 -0
  50. package/lib/subagent-model.js +5 -5
  51. package/lib/subagent-model.js.map +1 -1
  52. package/lib/supergrok-token.js +4 -0
  53. package/lib/supergrok-token.js.map +1 -1
  54. package/lib/terminal-caps.js +358 -0
  55. package/lib/terminal-caps.js.map +1 -0
  56. package/lib/tui.js +184 -120
  57. package/lib/tui.js.map +1 -1
  58. package/lib/types/diag.d.ts +18 -1
  59. package/lib/types/display-sock.d.ts +63 -22
  60. package/lib/types/doctor.d.ts +8 -1
  61. package/lib/types/dsh-compat.d.ts +141 -44
  62. package/lib/types/footer.d.ts +3 -1
  63. package/lib/types/i18n/index.d.ts +18 -12
  64. package/lib/types/index.d.ts +45 -0
  65. package/lib/types/picker.d.ts +3 -0
  66. package/lib/types/platform.d.ts +175 -10
  67. package/lib/types/preset-authoring.d.ts +8 -14
  68. package/lib/types/preset-compat.d.ts +58 -0
  69. package/lib/types/preset-picker.d.ts +1 -1
  70. package/lib/types/preset-rows.d.ts +51 -9
  71. package/lib/types/settings-routes.d.ts +16 -0
  72. package/lib/types/settings-subagent.d.ts +24 -0
  73. package/lib/types/subagent-model.d.ts +7 -7
  74. package/lib/types/terminal-caps.d.ts +105 -0
  75. package/lib/types/tui.d.ts +41 -7
  76. package/package.json +82 -55
@@ -6,7 +6,9 @@
6
6
  * and a named pipe at `\\.\pipe\dsh-tui-<home>-<id>` on Windows. Node requires
7
7
  * the `\\.\pipe\` form there — a plain file path cannot be listened on — and
8
8
  * `fs.access()` cannot see pipes, so channel liveness always goes through
9
- * `displaySockExists()` instead of a raw filesystem check.
9
+ * `displaySockExists()` instead of a raw filesystem check. The POSIX name is
10
+ * budgeted against `sun_path` (107 bytes on Linux, 103 on macOS): a deep
11
+ * `DSH_HOME` shortens the readable label, it never fails `listen()`.
10
12
  *
11
13
  * Frame: u32be length | u8 type | payload
12
14
  * 1 stdin — relay → host (key bytes)
@@ -17,15 +19,17 @@
17
19
  * 6 rtt — relay → host (u32be milliseconds; 0xffffffff = unknown)
18
20
  * 7 replaced — host → relay, then close (a newer Display took the session)
19
21
  */
20
- import { spawn } from 'node:child_process';
22
+ import { spawn, spawnSync } from 'node:child_process';
21
23
  import { StringDecoder } from 'node:string_decoder';
22
24
  import { createHash } from 'node:crypto';
23
25
  import { createConnection, createServer } from 'node:net';
24
26
  import { mkdir, readFile, unlink } from 'node:fs/promises';
25
- import { closeSync, mkdirSync, openSync } from 'node:fs';
27
+ import { closeSync, mkdirSync, openSync, readFileSync, rmSync } from 'node:fs';
26
28
  import { homedir } from 'node:os';
27
29
  import { TerminalInputFilter, TerminalInputPump } from './terminal-input.js';
28
30
  import { dirname, join, resolve } from 'node:path';
31
+ import { bootstrapEnv, hostBootstrapCommand, hostSpawnOptions, restrictPathToUserSync, usesSigwinch, } from './platform.js';
32
+ import { terminalCapabilities } from './terminal-caps.js';
29
33
  export const FRAME_STDIN = 1;
30
34
  export const FRAME_STDOUT = 2;
31
35
  export const FRAME_RESIZE = 3;
@@ -82,8 +86,36 @@ export function isTuiHostProcess(env = process.env) {
82
86
  * path fails with ENOENT/EACCES and the Host never listens.
83
87
  */
84
88
  export const WINDOWS_PIPE_PREFIX = '\\\\.\\pipe\\';
89
+ /**
90
+ * How long the hidden-console bootstrap may take to report the Host's pid. It
91
+ * covers a cold PowerShell start on a busy machine, and nothing of the Host's
92
+ * own boot: `Start-Process -PassThru` returns as soon as the process exists.
93
+ */
94
+ const HOST_BOOTSTRAP_TIMEOUT_MS = 15_000;
85
95
  /** Windows rejects pipe names longer than 256 chars; leave generous headroom. */
86
96
  const WINDOWS_PIPE_MAX = 200;
97
+ /**
98
+ * `sockaddr_un.sun_path` counts its NUL terminator, so a POSIX socket address
99
+ * may occupy 107 bytes on Linux and 103 on macOS. Overrunning it fails
100
+ * `listen()` with EINVAL before the Host can print anything, which the launcher
101
+ * could only report as "the socket did not appear" — hence the budget below.
102
+ */
103
+ function posixSocketPathMax(platform) {
104
+ return platform === 'darwin' ? 103 : 107;
105
+ }
106
+ /** Every socket name ends in this; it is never part of the head budget. */
107
+ const SOCK_SUFFIX = '.sock';
108
+ /**
109
+ * Longest readable head a socket name asks for. A home shallow enough to have
110
+ * room for it keeps exactly the name it had before the budget existed.
111
+ */
112
+ const SOCK_LABEL_MAX = 80;
113
+ /**
114
+ * Shortest socket name worth emitting: a five-character head, the separator and
115
+ * the digest. Below this the head is noise and the address is refused with the
116
+ * real reason instead of being handed to `listen()` to fail on.
117
+ */
118
+ const SOCK_LABEL_MIN = 14;
87
119
  /** True for a Windows named-pipe address (`\\.\pipe\x`, `\\?\pipe\x`, `//./pipe/x`). */
88
120
  export function isPipePath(path) {
89
121
  const normalized = path.replaceAll('/', '\\').toLowerCase();
@@ -112,6 +144,13 @@ export function safeSessionId(sessionId) {
112
144
  const safe = sessionId.replaceAll(/[^A-Za-z0-9._-]/g, '_');
113
145
  return safe === '' ? 'session' : safe;
114
146
  }
147
+ /**
148
+ * Digest that keeps two sessions with collapsing names apart. It is appended to
149
+ * every label, however much head a tight path budget has to cut.
150
+ */
151
+ function sessionDigest(sessionId) {
152
+ return createHash('sha1').update(sessionId).digest('hex').slice(0, 8);
153
+ }
115
154
  /**
116
155
  * Readable, collision-free short label for one session: a sanitized head plus a
117
156
  * digest of the raw id. The digest is always appended because sanitizing alone
@@ -121,13 +160,36 @@ export function safeSessionId(sessionId) {
121
160
  * the wrong session.
122
161
  */
123
162
  export function sessionLabel(sessionId, maxLength) {
124
- const digest = createHash('sha1').update(sessionId).digest('hex').slice(0, 8);
163
+ const digest = sessionDigest(sessionId);
125
164
  const head = safeSessionId(sessionId)
126
165
  .replaceAll(/\.{2,}/gu, '_')
127
166
  .replace(/^[._-]+|[._-]+$/gu, '')
128
167
  .slice(0, Math.max(0, maxLength - digest.length - 1));
129
168
  return `${head === '' ? 'session' : head}-${digest}`;
130
169
  }
170
+ /**
171
+ * One POSIX socket *name* (the directory is prepended by the caller).
172
+ *
173
+ * The directory is measured in bytes, not characters: `sun_path` counts the
174
+ * encoded address, and a home with non-ASCII characters spends more than one
175
+ * byte per character. As the directory grows the readable head shrinks — a deep
176
+ * `DSH_HOME` loses the label, never the channel — while a home that used to fit
177
+ * keeps its old name byte for byte. A home too deep even for a short head is
178
+ * refused here, with the real reason, instead of by `listen()` EINVAL.
179
+ */
180
+ function posixSocketName(sessionId, dir, platform) {
181
+ const limit = posixSocketPathMax(platform);
182
+ // The separator and the suffix are not negotiable; only the head is.
183
+ const room = limit - Buffer.byteLength(dir) - 1 - SOCK_SUFFIX.length;
184
+ if (room < SOCK_LABEL_MIN) {
185
+ throw new Error(`dsh-ssh-tui: ${dir} is too deep for a Unix socket: only ${Math.max(0, room)} of the ${limit} bytes `
186
+ + `sun_path allows are left for the name, and a usable name needs ${SOCK_LABEL_MIN}. `
187
+ + 'Point DSH_HOME at a shorter path.');
188
+ }
189
+ // Safe session ids are ASCII by construction (`safeSessionId`), so the label's
190
+ // length in characters is its length in bytes.
191
+ return `${sessionLabel(sessionId, Math.min(SOCK_LABEL_MAX, room))}${SOCK_SUFFIX}`;
192
+ }
131
193
  /**
132
194
  * Named pipes live in one flat, machine-wide namespace, so the DSH_HOME is
133
195
  * folded into the name (two homes must not fight over one session id) and the
@@ -135,9 +197,12 @@ export function sessionLabel(sessionId, maxLength) {
135
197
  * into collisions.
136
198
  */
137
199
  function windowsPipePath(sessionId, dshHome) {
138
- const homeTag = createHash('sha1').update(resolve(dshHome).toLowerCase()).digest('hex').slice(0, 8);
139
- const room = WINDOWS_PIPE_MAX - WINDOWS_PIPE_PREFIX.length - 'dsh-tui-'.length - homeTag.length - 1;
140
- return `${WINDOWS_PIPE_PREFIX}dsh-tui-${homeTag}-${sessionLabel(sessionId, room)}`;
200
+ const homeTag = sessionDigest(resolve(dshHome).toLowerCase());
201
+ // `\\.\pipe\` is a flat, machine-wide namespace with a 256-character name
202
+ // limit; WINDOWS_PIPE_MAX keeps the whole address well inside it, and the
203
+ // label's digest keeps two long ids apart however much head gets cut.
204
+ const head = `${WINDOWS_PIPE_PREFIX}dsh-tui-${homeTag}-`;
205
+ return `${head}${sessionLabel(sessionId, WINDOWS_PIPE_MAX - head.length)}`;
141
206
  }
142
207
  /**
143
208
  * Address of the per-session display channel: a filesystem path on POSIX, a
@@ -147,8 +212,8 @@ function windowsPipePath(sessionId, dshHome) {
147
212
  export function sessionSockPath(sessionId, dshHome = defaultDshHome(), platform = process.platform) {
148
213
  if (platform === 'win32')
149
214
  return windowsPipePath(sessionId, dshHome);
150
- // UNIX_PATH_MAX is 108 on Linux; leave headroom for the directory prefix.
151
- return join(sessionSockDir(dshHome), `${sessionLabel(sessionId, 80)}.sock`);
215
+ const dir = sessionSockDir(dshHome);
216
+ return join(dir, posixSocketName(sessionId, dir, platform));
152
217
  }
153
218
  /**
154
219
  * Pre-digest POSIX socket path (`tui-socks/<safeId>.sock`).
@@ -188,6 +253,19 @@ export function sessionErrPath(sessionId, dshHome = defaultDshHome(), platform =
188
253
  return join(sessionSockDir(dshHome), `${sessionLabel(sessionId, 64)}.err`);
189
254
  return `${sock}.err`;
190
255
  }
256
+ /**
257
+ * Where the hidden-console bootstrap writes the Host's pid.
258
+ *
259
+ * On `\\.\pipe\` Windows there is no socket file to derive a name from, and the
260
+ * state directory already holds the per-session lock and stderr log, so the pid
261
+ * file lives beside them. It is removed as soon as it has been read.
262
+ */
263
+ export function sessionBootstrapPidPath(sessionId, dshHome = defaultDshHome()) {
264
+ // Same label budget as the stderr log next to it: these live in the state
265
+ // directory rather than next to a socket file, and a long name here is
266
+ // MAX_PATH budget spent for nothing.
267
+ return join(sessionSockDir(dshHome), `${sessionLabel(sessionId, 64)}.boot.pid`);
268
+ }
191
269
  /** Pre-digest Host stderr log next to the 0.7.1 socket, when that name differs. */
192
270
  export function legacySessionErrPath(sessionId, dshHome = defaultDshHome(), platform = process.platform) {
193
271
  const legacy = legacySessionSockPath(sessionId, dshHome, platform);
@@ -521,6 +599,52 @@ function watchHostExit(child) {
521
599
  },
522
600
  };
523
601
  }
602
+ /**
603
+ * Watch a Host this process did not spawn itself.
604
+ *
605
+ * The hidden-console bootstrap (see `hostBootstrapCommand`) starts the Host
606
+ * through PowerShell, so there is no `ChildProcess` handle to listen on — the
607
+ * only handle on the Host is the pid it printed. Polling that pid is enough for
608
+ * what the watch is for: a Host that dies before its display socket appears
609
+ * should be reported at once instead of after the whole boot timeout. The code
610
+ * is unknown here (null), and the poll interval is the detection delay; the
611
+ * watch is disposed as soon as the channel is up, so it never runs for the life
612
+ * of the session.
613
+ *
614
+ * The poll timer is deliberately **not** unref'd. `exited` is a promise this
615
+ * watch is the only thing that can resolve, and an unref'd timer does not keep
616
+ * the event loop alive: a caller that awaits nothing else — a test, or a
617
+ * launcher whose only remaining work is the boot — let the loop drain first and
618
+ * never saw the answer (node:test reports that as "Promise resolution is still
619
+ * pending but the event loop has already resolved", which is how this was
620
+ * found). Every caller disposes the watch once the channel is up, and
621
+ * `waitForDisplaySock` disposes it in its `finally`, so holding the loop for the
622
+ * boot window is the point rather than a leak.
623
+ */
624
+ const HOST_PID_POLL_MS = 250;
625
+ /** Exported for the test that pins its loop-ref behaviour; not public API. */
626
+ export function watchHostPid(pid) {
627
+ let settle = () => { };
628
+ const exited = new Promise(resolve => { settle = resolve; });
629
+ let timer;
630
+ const tick = () => {
631
+ if (!isPidAlive(pid)) {
632
+ timer = undefined;
633
+ settle(null);
634
+ return;
635
+ }
636
+ timer = setTimeout(tick, HOST_PID_POLL_MS);
637
+ };
638
+ tick();
639
+ return {
640
+ exited,
641
+ dispose() {
642
+ if (timer !== undefined)
643
+ clearTimeout(timer);
644
+ timer = undefined;
645
+ },
646
+ };
647
+ }
524
648
  /**
525
649
  * How long a dead-pid report waits for the child's `exit` event before giving
526
650
  * up on its code. The event is normally delivered within a tick; the bound only
@@ -717,32 +841,75 @@ export function restoreTerminalInput(stdin = process.stdin) {
717
841
  }
718
842
  }
719
843
  /**
720
- * How to start the background Host so it outlives this process *and* does not
721
- * make its own children flash console windows on Windows.
844
+ * Start the Host through the hidden-console bootstrap and return its pid, or
845
+ * `undefined` when the bootstrap could not report one.
722
846
  *
723
- * POSIX wants `detached: true` (setsid) so the Host survives the launcher and a
724
- * hung-up terminal.
847
+ * `spawnSync` on purpose. The pid has to be in hand before this function
848
+ * returns (the caller watches it, and the fallback must never leave two Hosts
849
+ * for one session), and the cost is one bounded wait while the boot splash is
850
+ * already on screen. PowerShell exits as soon as `Start-Process` has created the
851
+ * Host, so the wait is its own start-up, not the Host's.
725
852
  *
726
- * Windows is the opposite: `detached: true` maps to DETACHED_PROCESS, which
727
- * gives the Host **no console at all**, and Windows ignores CREATE_NO_WINDOW
728
- * (what `windowsHide` sets) when DETACHED_PROCESS is present. Every console
729
- * child the Host then starts — each tool call, every shell, node, git — has to
730
- * allocate its own console, which is a visible window flashing over the TUI.
731
- * Dropping `detached` there lets `windowsHide` do its job: the Host gets its
732
- * own invisible console, and descendants inherit it instead of creating one.
733
- * The Host still outlives the launcher: Windows does not kill children with
734
- * their parent, and its console is its own, so closing the user's terminal does
735
- * not reach it either.
736
- *
737
- * Pure and platform-parameterised so the Windows branch can be asserted from
738
- * Linux (see docs/platform.md).
853
+ * Falling back is safe exactly when nothing was printed: `Start-Process -PassThru`
854
+ * either starts the Host and prints its id, or throws before starting anything
855
+ * (`$ErrorActionPreference = 'Stop'`). A *timeout* is the one case where a Host
856
+ * might exist and the pid was lost, so it does not fall back — it reports.
739
857
  */
740
- export function hostSpawnOptions(platform = process.platform) {
741
- const windows = platform === 'win32';
742
- return { detached: !windows, windowsHide: true };
858
+ export function spawnHostThroughBootstrap(bootstrap, options) {
859
+ // A pid file left by an earlier boot would be read as this one's answer.
860
+ try {
861
+ rmSync(options.pidFile, { force: true });
862
+ }
863
+ catch { /* best effort */ }
864
+ const result = spawnSync(bootstrap.command, bootstrap.args, {
865
+ env: options.env,
866
+ ...hostSpawnOptions(options.platform),
867
+ // No pipes at all. `Start-Process` may hand this script's stdio to the Host,
868
+ // and a live reader of that pipe would wait for the Host to exit instead of
869
+ // for the bootstrap: measured here as a 15 s stall before the pid was read.
870
+ // The pid travels through a file, and the Host's own stderr is redirected by
871
+ // the script itself.
872
+ stdio: ['ignore', 'ignore', 'ignore'],
873
+ timeout: options.timeoutMs,
874
+ });
875
+ let written = '';
876
+ try {
877
+ written = readFileSync(options.pidFile, 'utf8').trim();
878
+ }
879
+ catch {
880
+ // No file: nothing was started (or the script failed before writing it).
881
+ }
882
+ try {
883
+ rmSync(options.pidFile, { force: true });
884
+ }
885
+ catch { /* best effort */ }
886
+ const match = /^(\d+)$/u.exec(written);
887
+ if (match !== null) {
888
+ const pid = Number(match[1]);
889
+ // Checked before the timeout: a bootstrap that wrote the pid and then hung
890
+ // still started exactly one Host, and that pid is the answer.
891
+ if (Number.isInteger(pid) && pid > 0)
892
+ return { pid };
893
+ }
894
+ const timedOut = result.error?.code === 'ETIMEDOUT';
895
+ if (timedOut || result.signal !== null) {
896
+ throw new Error(`dsh-ssh-tui: the hidden-console bootstrap did not report a host pid in ${options.timeoutMs}ms;`
897
+ + ' refusing to start a second host for this session');
898
+ }
899
+ return undefined;
743
900
  }
744
- /** Spawn a detached Host copy of this `dsh` invocation and return its sock path. */
745
- export function spawnDetachedHost(sessionId, platform = process.platform) {
901
+ /**
902
+ * Spawn a detached Host copy of this `dsh` invocation and return its sock path.
903
+ *
904
+ * On Windows the Host goes through {@link hostBootstrapCommand} when the OS
905
+ * PowerShell is available: a direct spawn there cannot both survive the
906
+ * launcher (libuv's `KILL_ON_JOB_CLOSE` job takes a non-detached child with it)
907
+ * and avoid flashing console windows (`detached` is DETACHED_PROCESS, which makes
908
+ * Windows ignore `CREATE_NO_WINDOW`). The bootstrap gives the Host a console of
909
+ * its own, hidden — see `docs/platform.md`. Without it, the direct spawn below
910
+ * is still what runs, with the old semantics.
911
+ */
912
+ export function spawnDetachedHost(sessionId, platform = process.platform, options = {}) {
746
913
  const sock = sessionSockPath(sessionId);
747
914
  // On Windows the channel is a pipe name, which is not a file path: the log
748
915
  // must live in the state directory next to the locks instead.
@@ -750,17 +917,63 @@ export function spawnDetachedHost(sessionId, platform = process.platform) {
750
917
  let errFd;
751
918
  try {
752
919
  mkdirSync(dirname(errFile), { recursive: true, mode: 0o700 });
920
+ // The Host's stderr can quote a provider error; the directory and the log
921
+ // both get the intent applied, since `mode` is POSIX-only.
922
+ restrictPathToUserSync(dirname(errFile), { mode: 0o700, directory: true });
753
923
  errFd = openSync(errFile, 'w');
924
+ restrictPathToUserSync(errFile, { mode: 0o600 });
754
925
  }
755
926
  catch {
756
927
  errFd = undefined;
757
928
  }
758
- const child = spawn(process.execPath, hostArgvForSession(sessionId), {
759
- // DSH_HOME is pinned to the resolved absolute path: the Host chdirs into
760
- // the session's working directory before it listens, so an unset, blank or
761
- // relative home would otherwise resolve differently there and the two
762
- // processes would compute different channel names.
763
- env: { ...process.env, [TUI_HOST_ENV]: '1', DSH_HOME: resolveDshHome() },
929
+ // DSH_HOME is pinned to the resolved absolute path: the Host chdirs into the
930
+ // session's working directory before it listens, so an unset, blank or
931
+ // relative home would otherwise resolve differently there and the two
932
+ // processes would compute different channel names.
933
+ const env = { ...process.env, [TUI_HOST_ENV]: '1', DSH_HOME: resolveDshHome() };
934
+ const argv = hostArgvForSession(sessionId);
935
+ // Without the stderr log there is nowhere to redirect the Host's stderr, and
936
+ // leaving it un-redirected would hand it this process's stdio; the direct
937
+ // spawn is the honest fallback there.
938
+ const pidFile = sessionBootstrapPidPath(sessionId);
939
+ const bootstrap = options.bootstrap === null
940
+ ? undefined
941
+ : options.bootstrap ?? (errFd === undefined ? undefined : hostBootstrapCommand({
942
+ platform,
943
+ execPath: process.execPath,
944
+ argv,
945
+ stderrFile: errFile,
946
+ pidFile,
947
+ }));
948
+ let started;
949
+ if (bootstrap !== undefined) {
950
+ started = spawnHostThroughBootstrap(bootstrap, {
951
+ // The marker rides the bootstrap's environment, which `Start-Process`
952
+ // passes on to the Host.
953
+ env: bootstrapEnv(env),
954
+ platform,
955
+ timeoutMs: options.bootstrapTimeoutMs ?? HOST_BOOTSTRAP_TIMEOUT_MS,
956
+ pidFile,
957
+ });
958
+ if (started !== undefined) {
959
+ // The bootstrap redirects the Host's stderr to this path itself, so this
960
+ // process must not keep a descriptor on it.
961
+ if (errFd !== undefined) {
962
+ try {
963
+ closeSync(errFd);
964
+ }
965
+ catch { /* ignore */ }
966
+ }
967
+ return {
968
+ pid: started.pid,
969
+ sock,
970
+ exitWatch: watchHostPid(started.pid),
971
+ ...errFd === undefined ? {} : { errFile },
972
+ };
973
+ }
974
+ }
975
+ const child = spawn(process.execPath, argv, {
976
+ env,
764
977
  ...hostSpawnOptions(platform),
765
978
  stdio: ['ignore', 'ignore', errFd ?? 'ignore'],
766
979
  });
@@ -808,8 +1021,9 @@ export async function runDisplayRelay(path, options = {}) {
808
1021
  const stdin = options.stdin ?? process.stdin;
809
1022
  const stdout = options.stdout ?? process.stdout;
810
1023
  const signals = options.signals ?? process;
811
- const useAltScreen = process.env.DSH_TUI_NO_ALT_SCREEN !== '1'
812
- && process.env.DSH_TUI_NO_ALT_SCREEN !== 'true';
1024
+ // The relay and the Host must agree on the screen: both ask the capability
1025
+ // table, so a console without an alternate screen never gets half of one.
1026
+ const useAltScreen = terminalCapabilities().alternateScreen;
813
1027
  return await new Promise((resolve, reject) => {
814
1028
  const socket = createConnection(path);
815
1029
  const reader = new FrameReader();
@@ -863,7 +1077,7 @@ export async function runDisplayRelay(path, options = {}) {
863
1077
  resizeTimer = undefined;
864
1078
  }
865
1079
  stdout.off('resize', onResize);
866
- if (process.platform !== 'win32') {
1080
+ if (usesSigwinch()) {
867
1081
  signals.off('SIGWINCH', onResize);
868
1082
  }
869
1083
  try {
@@ -881,7 +1095,10 @@ export async function runDisplayRelay(path, options = {}) {
881
1095
  try {
882
1096
  stdout.write('\x1b]0;\x07');
883
1097
  stdout.write('\x1b[0m\x1b[2J\x1b[3J\x1b[H');
884
- stdout.write(`\x1b[?1000l\x1b[?1002l\x1b[?1006l\x1b[?2004l\x1b[?25h${useAltScreen ? '\x1b[?1049l' : ''}`);
1098
+ // Leaving is always safe (an unused mode is ignored) and skipping it
1099
+ // is not: this relay may be the only one that gets to restore a screen
1100
+ // the Host entered under a different classification.
1101
+ stdout.write(`\x1b[?1000l\x1b[?1002l\x1b[?1006l\x1b[?2004l\x1b[?25h\x1b[?1049l`);
885
1102
  }
886
1103
  catch {
887
1104
  // TTY may already be gone
@@ -1004,7 +1221,7 @@ export async function runDisplayRelay(path, options = {}) {
1004
1221
  }
1005
1222
  pendingBytes = 0;
1006
1223
  stdout.on('resize', onResize);
1007
- if (process.platform !== 'win32') {
1224
+ if (usesSigwinch()) {
1008
1225
  signals.on('SIGWINCH', onResize);
1009
1226
  }
1010
1227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"display-sock.js","sourceRoot":"","sources":["../src/display-sock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display-sock.js","sourceRoot":"","sources":["../src/display-sock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAqB,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAA4B,MAAM,UAAU,CAAA;AACnF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,SAAS,EAA4B,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACxG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,GACb,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAC7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAA;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAE/B,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAE7B;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B;;;;;;;;;;GAUG;AACH,MAAM,sBAAsB,GAAG,KAAK,CAAA;AAEpC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAI,OAAsD,CAAC,MAAM,CAAA;QAC7E,MAAM,EAAE,EAAE,CAAA;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,GAAS,EAAE,GAAE,CAAC,CAAA;IAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAU,EAAE,CAAC;QAC5D,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAChC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAA;AAE1C,MAAM,UAAU,gBAAgB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,OAAO,GAAG,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,MAAM,CAAA;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAA;AAElD;;;;GAIG;AACH,MAAM,yBAAyB,GAAG,MAAM,CAAA;AAExC,iFAAiF;AACjF,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,QAAyB;IACnD,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AAC1C,CAAC;AAED,2EAA2E;AAC3E,MAAM,WAAW,GAAG,OAAO,CAAA;AAE3B;;;GAGG;AACH,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB;;;;GAIG;AACH,MAAM,cAAc,GAAG,EAAE,CAAA;AAEzB,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3D,OAAO,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;AACzF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,EAAE;IACnF,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IACvC,OAAO,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;AACjG,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,cAAc,EAAE,CAAA;AACzB,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,UAAkB,cAAc,EAAE;IAC/D,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AACnC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;IAC1D,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,SAAiB;IACtC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,SAAiB;IAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACvC,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC;SAClC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACvD,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,EAAE,CAAA;AACtD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,eAAe,CAAC,SAAiB,EAAE,GAAW,EAAE,QAAyB;IAChF,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAC1C,qEAAqE;IACrE,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAA;IACpE,IAAI,IAAI,GAAG,cAAc,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,gBAAgB,GAAG,wCAAwC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,KAAK,SAAS;cACnG,kEAAkE,cAAc,IAAI;cACpF,mCAAmC,CACtC,CAAA;IACH,CAAC;IACD,+EAA+E;IAC/E,+CAA+C;IAC/C,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,GAAG,WAAW,EAAE,CAAA;AACnF,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,SAAiB,EAAE,OAAe;IACzD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;IAC7D,0EAA0E;IAC1E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,IAAI,GAAG,GAAG,mBAAmB,WAAW,OAAO,GAAG,CAAA;IACxD,OAAO,GAAG,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;AAC5E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,SAAiB,EACjB,UAAkB,cAAc,EAAE,EAClC,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACpE,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACnC,OAAO,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiB,EACjB,UAAkB,cAAc,EAAE,EAClC,WAA4B,OAAO,CAAC,QAAQ;IAE5C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAA;IAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAiB,EACjB,UAAkB,cAAc,EAAE,EAClC,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC7D,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAClE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,UAAkB,cAAc,EAAE,EAClC,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC1D,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAChG,OAAO,GAAG,IAAI,MAAM,CAAA;AACtB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAiB,EAAE,UAAkB,cAAc,EAAE;IAC3F,0EAA0E;IAC1E,uEAAuE;IACvE,qCAAqC;IACrC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;AACjF,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,oBAAoB,CAClC,SAAiB,EACjB,UAAkB,cAAc,EAAE,EAClC,WAA4B,OAAO,CAAC,QAAQ;IAE5C,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAClE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5D,MAAM,SAAS,GAAG,GAAG,MAAM,MAAM,CAAA;IACjC,OAAO,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,UAAkB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,EAAE,CAAC,CAAA;IACtF,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9B,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAY;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAChE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7D,OAAO,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACxC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;AAC5E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAyB;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/B,OAAO,CAAC,aAAa,CACnB,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAClH,CAAC,CACF,CAAA;IACD,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IACxC,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IACrC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;AACjD,CAAC;AAED,0CAA0C;AAC1C,MAAM,OAAO,WAAW;IACd,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAEhC,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;QACjD,MAAM,MAAM,GAA6C,EAAE,CAAA;QAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YAC1C,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAA;YAChE,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM;gBAAE,MAAK;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAA;YACnD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;YAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAChC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAUD;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAA4B,EAAE,IAAY,EAAE,IAAa;IAChF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAA;IACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,CAAC;QACnF,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,gDAAgD,IAAI,KAAK,IAAI,IAAI,IAAI,EAAE,CAAC,CACjG;IAAC,OAAiC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;IACrD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,WAAW;IAOX;IACQ;IAEA;IATX,MAAM,CAAoB;IAC1B,MAAM,CAAoB;IAC1B,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;IAClC,QAAQ,GAAG,KAAK,CAAA;IAEhB,YACW,IAAY,EACJ,QAA6B;IAC9C,sEAAsE;IACrD,UAAqC,EAAE;QAH/C,SAAI,GAAJ,IAAI,CAAQ;QACJ,aAAQ,GAAR,QAAQ,CAAqB;QAE7B,YAAO,GAAP,OAAO,CAAgC;IACvD,CAAC;IAEJ,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,uEAAuE;YACvE,kCAAkC;YAClC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YACjE,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1D,MAAM,OAAO,GAAG,CAAC,KAA4B,EAAQ,EAAE;gBACrD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;gBAC/C,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YACjD,CAAC,CAAA;YACD,MAAM,WAAW,GAAG,GAAS,EAAE;gBAC7B,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;gBACpB,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC7B,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;YACrC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM,CAAC,MAAc;QAC3B,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;QAChC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,OAAO;gBAAE,OAAM;YACnB,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD,MAAM,KAAK,GAAG,GAAS,EAAE;YACvB,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAA;gBAC5B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;gBACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;gBACrB,sEAAsE;gBACtE,uEAAuE;gBACvE,uEAAuE;gBACvE,qEAAqE;gBACrE,+DAA+D;gBAC/D,sEAAsE;gBACtE,oEAAoE;gBACpE,mEAAmE;gBACnE,mEAAmE;gBACnE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC3B,IAAI,CAAC;wBACH,QAAQ,CAAC,OAAO,EAAE,CAAA;oBACpB,CAAC;oBAAC,MAAM,CAAC;wBACP,eAAe;oBACjB,CAAC;gBACH,CAAC,EAAE,iBAAiB,CAAC,CAAA;gBACrB,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;gBACd,IAAI,CAAC;oBACH,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE;wBAC7C,YAAY,CAAC,IAAI,CAAC,CAAA;wBAClB,IAAI,CAAC;4BACH,QAAQ,CAAC,OAAO,EAAE,CAAA;wBACpB,CAAC;wBAAC,MAAM,CAAC;4BACP,eAAe;wBACjB,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY,CAAC,IAAI,CAAC,CAAA;oBAClB,IAAI,CAAC;wBACH,QAAQ,CAAC,OAAO,EAAE,CAAA;oBACpB,CAAC;oBAAC,MAAM,CAAC;wBACP,eAAe;oBACjB,CAAC;gBACH,CAAC;gBACD,kEAAkE;gBAClE,kEAAkE;gBAClE,gEAAgE;gBAChE,sBAAsB;gBACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;YAC5C,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;YACxB,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAA;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,EAAE,CAAA;YACR,CAAC;QACH,CAAC,CAAA;QACD,MAAM,IAAI,GAAG,GAAS,EAAE;YACtB,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAM;YAClC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;YACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;QAC1B,CAAC,CAAA;QACD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YACxB,IAAI,MAAgD,CAAA;YACpD,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,OAAO,EAAE,CAAA;gBAChB,OAAM;YACR,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,KAAK,EAAE,CAAA;qBAClC,IAAI,CAAC,OAAO;oBAAE,SAAQ;qBACtB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;qBACpE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACrC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBACxC,IAAI,IAAI,KAAK,SAAS;wBAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBACzE,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;gBACjD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,OAAO;gBAAE,IAAI,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,OAAO;gBAAE,IAAI,EAAE,CAAA;;gBACd,SAAS,EAAE,CAAA;QAClB,CAAC,CAAC,CAAA;QACF,2EAA2E;QAC3E,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,sBAAsB,CAAC,CAAA;QAC7F,UAAU,CAAC,KAAK,EAAE,EAAE,CAAA;IACtB,CAAC;IAED,UAAU,CAAC,KAAsB;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QAChE,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAC9E,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;YAChD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,WAAW;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAM;QAChC,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAA;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,MAAM,EAAE,OAAO,EAAE,CAAA;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACvB,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,EAAE,CAAA;gBACT,OAAM;YACR,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACpD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAQ,KAA+B,CAAC,IAAI,KAAK,OAAO,CAAA;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG;IACnE,OAAO,MAAM,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;AAChD,CAAC;AAUD,SAAS,aAAa,CAAC,KAAmB;IACxC,IAAI,MAAM,GAAkC,GAAG,EAAE,GAAE,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE,GAAG,MAAM,GAAG,OAAO,CAAA,CAAC,CAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,CAAC,IAAmB,EAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,GAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,CAAA;IAC5C,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC5B,OAAO;QACL,MAAM;QACN,OAAO;YACL,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YACpC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAE5B,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,MAAM,GAAkC,GAAG,EAAE,GAAE,CAAC,CAAA;IACpD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAgB,OAAO,CAAC,EAAE,GAAG,MAAM,GAAG,OAAO,CAAA,CAAC,CAAC,CAAC,CAAA;IAC1E,IAAI,KAAiC,CAAA;IACrC,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,GAAG,SAAS,CAAA;YACjB,MAAM,CAAC,IAAI,CAAC,CAAA;YACZ,OAAM;QACR,CAAC;QACD,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAC5C,CAAC,CAAA;IACD,IAAI,EAAE,CAAA;IACN,OAAO;QACL,MAAM;QACN,OAAO;YACL,IAAI,KAAK,KAAK,SAAS;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAC5C,KAAK,GAAG,SAAS,CAAA;QACnB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAY,EACZ,SAAS,GAAG,MAAM,EAClB,GAAY,EACZ,OAAgB,EAChB,SAAyB;IAEzB,MAAM,UAAU,GAAG,KAAK,IAAqB,EAAE;QAC7C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACvD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,IAAmB,EAAS,EAAE;QAChE,MAAM,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,IAAI,GAAG,CAAA;QAC1D,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClD,OAAO,IAAI,KAAK,CACd,iCAAiC,GAAG,IAAI,GAAG,yCAAyC,MAAM,GAAG,MAAM,EAAE,CACtG,CAAA;IACH,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;IACvC,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,IAAI,YAAY,GAAkB,IAAI,CAAA;IACtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,KAAK,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChC,UAAU,GAAG,IAAI,CAAA;YACjB,YAAY,GAAG,IAAI,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,MAAM,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACtD,CAAC;YACD,OAAM;QACR,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,UAAU,CAAC,MAAM,UAAU,EAAE,EAAE,YAAY,CAAC,CAAA;QACpD,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,6CAA6C;YAC7C,IAAI,IAAI,GAAkB,YAAY,CAAA;YACtC,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3C,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBACxB,SAAS,CAAC,MAAM;oBAChB,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC;iBAChF,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,UAAU,CAAC,MAAM,UAAU,EAAE,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,MAAM,IAAI,KAAK,CAAC,oDAAoD,IAAI,GAAG,MAAM,EAAE,CAAC,CAAA;AACtF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ;IAC7G,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;IACnC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC7B,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;YAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAA;YAC3D,SAAQ;QACV,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAQ;QACzC,IAAI,GAAG,KAAK,OAAO;YAAE,SAAQ;QAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC,CAAA;IACtC,OAAO,QAAQ,CAAA;AACjB,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA2B,OAAO,CAAC,KAAK;IAC3E,MAAM,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IACzC,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,MAAM,MAAM,GAAG,CAAC,KAAa,EAAQ,EAAE;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA;QACtD,IAAI,IAAI,KAAK,EAAE;YAAE,OAAM;QACvB,IAAI,IAAI,IAAI,CAAA;QACZ,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC9E,CAAC,CAAA;IACD,IAAI,CAAC;QACH,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA;QACxB,KAAK,CAAC,MAAM,EAAE,CAAA;QACd,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;IACD,OAAO;QACL,IAAI;YACF,IAAI,CAAC;gBACH,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBACpC,qEAAqE;gBACrE,uEAAuE;gBACvE,uCAAuC;gBACvC,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC;oBACH,OAAO,OAAO,CAAC,GAAG,EAAE,CAAA;gBACtB,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YACJ,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAA;YAClC,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;QACzC,CAAC;KACF,CAAA;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,kBAAkB,GAAG,CAAC,GAAG,IAAI,CAAA;AAEnC;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAA2B,OAAO,CAAC,KAAK;IACzE,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,CAAC;QACH,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAA;QACxB,KAAK,CAAC,MAAM,EAAE,CAAA;QACd,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAmB,CAAA;YAC3C,IAAI,KAAK,KAAK,IAAI;gBAAE,MAAK;YACzB,OAAO,IAAI,KAAK,CAAC,MAAM,CAAA;QACzB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA2B,OAAO,CAAC,KAAK;IAC3E,IAAI,CAAC;QACH,KAAK,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;IACD,IAAI,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;AACH,CAAC;AAmBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAA8C,EAC9C,OAMC;IAED,yEAAyE;IACzE,IAAI,CAAC;QAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE;QAC1D,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC;QACrC,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,qBAAqB;QACrB,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACrC,OAAO,EAAE,OAAO,CAAC,SAAS;KAC3B,CAAC,CAAA;IACF,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;IACD,IAAI,CAAC;QAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5B,2EAA2E;QAC3E,8DAA8D;QAC9D,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,EAAE,GAAG,EAAE,CAAA;IACtD,CAAC;IACD,MAAM,QAAQ,GAAI,MAAM,CAAC,KAA2C,EAAE,IAAI,KAAK,WAAW,CAAA;IAC1F,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,0EAA0E,OAAO,CAAC,SAAS,KAAK;cAC9F,mDAAmD,CACtD,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,WAA4B,OAAO,CAAC,QAAQ,EAC5C,UAA4B,EAAE;IAE9B,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;IACvC,2EAA2E;IAC3E,8DAA8D;IAC9D,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,KAAyB,CAAA;IAC7B,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,0EAA0E;QAC1E,2DAA2D;QAC3D,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1E,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAC9B,sBAAsB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,SAAS,CAAA;IACnB,CAAC;IACD,6EAA6E;IAC7E,uEAAuE;IACvE,sEAAsE;IACtE,mDAAmD;IACnD,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,CAAA;IAC/E,MAAM,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;IAC1C,6EAA6E;IAC7E,0EAA0E;IAC1E,sCAAsC;IACtC,MAAM,OAAO,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAA;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI;QAC1C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC3E,QAAQ;YACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI;YACJ,UAAU,EAAE,OAAO;YACnB,OAAO;SACR,CAAC,CAAC,CAAA;IACP,IAAI,OAAoC,CAAA;IACxC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,yBAAyB,CAAC,SAAS,EAAE;YAC7C,sEAAsE;YACtE,yBAAyB;YACzB,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC;YACtB,QAAQ;YACR,SAAS,EAAE,OAAO,CAAC,kBAAkB,IAAI,yBAAyB;YAClE,OAAO;SACR,CAAC,CAAA;QACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,yEAAyE;YACzE,4CAA4C;YAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC;oBAAC,SAAS,CAAC,KAAK,CAAC,CAAA;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YACjD,CAAC;YACD,OAAO;gBACL,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,IAAI;gBACJ,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;gBACpC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;aAC1C,CAAA;QACH,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;QAC1C,GAAG;QACH,GAAG,gBAAgB,CAAC,QAAQ,CAAC;QAC7B,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,QAAQ,CAAC;KAC/C,CAAC,CAAA;IACF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC;YAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IACzF,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IACtC,KAAK,CAAC,KAAK,EAAE,CAAA;IACb,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACvF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG;IAClE,OAAO,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACrC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,MAAM,MAAM,GAAG,CAAC,EAAW,EAAQ,EAAE;YACnC,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,CAAC,OAAO,EAAE,CAAA;YAChB,OAAO,CAAC,EAAE,CAAC,CAAA;QACb,CAAC,CAAA;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;QACxD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1B,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,CAAC,IAAI,CAAC,CAAA;QACd,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YACxB,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,CAAC,KAAK,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAOD,iFAAiF;AACjF,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAA;AAmBnC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,UAA+B,EAAE;IAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAA;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAA;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAA;IAC1C,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC,eAAe,CAAA;IAC3D,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;QAChC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,IAAI,GAAG,KAAK,CAAA;QAChB,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAC9C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAA;QAC7B,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAA6B,EAAQ,EAAE;YACrD,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,OAAO,EAAE,CAAA;YACT,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QACrB,CAAC,CAAA;QACD,4DAA4D;QAC5D,MAAM,IAAI,GAAG,CAAC,KAAc,EAAQ,EAAE;YACpC,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,OAAO,EAAE,CAAA;YACT,MAAM,CAAC,KAAK,CAAC,CAAA;QACf,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,CAAC,IAAI,EAAE,CAAA;YACX,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACzC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;YAC1C,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAC5C,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAC5C,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;YAC/C,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;YAChD,IAAI,CAAC;gBACH,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,YAAY,CAAC,WAAW,CAAC,CAAA;gBACzB,WAAW,GAAG,SAAS,CAAA;YACzB,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAC9B,IAAI,YAAY,EAAE,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YACnC,CAAC;YACD,IAAI,CAAC;gBACH,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,yEAAyE;YACzE,mEAAmE;YACnE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;oBAC3B,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;oBAC3C,qEAAqE;oBACrE,uEAAuE;oBACvE,qDAAqD;oBACrD,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;gBAClF,CAAC;gBAAC,MAAM,CAAC;oBACP,0BAA0B;gBAC5B,CAAC;YACH,CAAC;YACD,MAAM,CAAC,OAAO,EAAE,CAAA;QAClB,CAAC,CAAA;QACD;;;;WAIG;QACH,MAAM,OAAO,GAAG,CAAC,IAAY,EAAQ,EAAE;YACrC,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAM;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACvC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACnB,YAAY,IAAI,KAAK,CAAC,MAAM,CAAA;gBAC5B,OAAO,YAAY,GAAG,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9D,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,IAAI,CAAC,CAAA;gBAC9C,CAAC;gBACD,OAAM;YACR,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,aAAa,CAAC,CAAA;YACvB,CAAC;QACH,CAAC,CAAA;QACD,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC;YACjC,KAAK;YACL,MAAM;YACN,OAAO,EAAE,OAAO;YAChB,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;YAC1D,qEAAqE;YACrE,+CAA+C;YAC/C,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG;gBACnC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAA,CAAC,CAAC,EAAE;gBACvF,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAA;QACF,IAAI,WAAuC,CAAA;QAC3C,MAAM,UAAU,GAAG,GAAS,EAAE;YAC5B,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;YACrE,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,aAAa,CAAC,CAAA;YACvB,CAAC;QACH,CAAC,CAAA;QACD,MAAM,QAAQ,GAAG,GAAS,EAAE;YAC1B,IAAI,WAAW,KAAK,SAAS;gBAAE,YAAY,CAAC,WAAW,CAAC,CAAA;YACxD,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,WAAW,GAAG,SAAS,CAAA;gBACvB,UAAU,EAAE,CAAA;YACd,CAAC,EAAE,EAAE,CAAC,CAAA;QACR,CAAC,CAAA;QACD,MAAM,aAAa,GAAG,GAAS,EAAE;YAC/B,MAAM,CAAC,QAAQ,CAAC,CAAA;QAClB,CAAC,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,KAAK,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;oBACtB,KAAK,CAAC,MAAM,EAAE,CAAA;oBACd,kEAAkE;oBAClE,gEAAgE;oBAChE,iEAAiE;oBACjE,0DAA0D;oBAC1D,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;oBAC9B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;oBAChC,gEAAgE;oBAChE,oEAAoE;oBACpE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;oBAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;oBACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBACpC,kEAAkE;oBAClE,iEAAiE;oBACjE,iDAAiD;oBACjD,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;wBAC7D,MAAM,CAAC,QAAQ,CAAC,CAAA;wBAChB,OAAM;oBACR,CAAC;oBACD,IAAI,CAAC,KAAK,EAAE,CAAA;oBACZ,+DAA+D;oBAC/D,+DAA+D;oBAC/D,iDAAiD;oBACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;oBAChC,IAAI,OAAO;wBAAE,OAAM;oBACnB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;oBACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;oBAC9B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;wBACzB,WAAW,CAAC,WAAW,CAAC;wBACxB,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC;wBAC3B,SAAS,CAAC,GAAG,CAAC;qBACf,CAAC,CAAC,CAAA;oBACH,IAAI,GAAG,IAAI,CAAA;oBACX,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;wBAC3B,CAAC;wBAAC,MAAM,CAAC;4BACP,+BAA+B;wBACjC,CAAC;oBACH,CAAC;oBACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtC,IAAI,CAAC;4BACH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;wBAC/C,CAAC;wBAAC,MAAM,CAAC;4BACP,MAAM,CAAC,aAAa,CAAC,CAAA;4BACrB,OAAM;wBACR,CAAC;oBACH,CAAC;oBACD,YAAY,GAAG,CAAC,CAAA;oBAChB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;oBAC7B,IAAI,YAAY,EAAE,EAAE,CAAC;wBACnB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;oBAClC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,KAAK,CAAC,CAAA;gBACb,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;QACN,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YACxB,IAAI,MAAgD,CAAA;YACpD,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,CAAA;gBACX,OAAM;YACR,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,IAAI,CAAC;wBACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAC7B,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,CAAC,QAAQ,CAAC,CAAA;wBAChB,OAAM;oBACR,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;oBACxC,MAAM,CAAC,SAAS,CAAC,CAAA;oBACjB,OAAM;gBACR,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACzC,mEAAmE;oBACnE,sEAAsE;oBACtE,qDAAqD;oBACrD,QAAQ,GAAG,IAAI,CAAA;oBACf,MAAM,CAAC,UAAU,CAAC,CAAA;oBAClB,OAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;AACJ,CAAC"}