mcp-xray-pilot 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -0
- package/dist/tools.js +3 -1
- package/dist/tools.js.map +1 -1
- package/dist/tools_impl/test_reality_live.js +61 -1
- package/dist/tools_impl/test_reality_live.js.map +1 -1
- package/package.json +1 -1
- package/dist/tools_impl/sni_cache.js +0 -63
- package/dist/tools_impl/sni_cache.js.map +0 -1
package/README.md
CHANGED
|
@@ -365,6 +365,58 @@ $env:GITHUB_TOKEN = "ghp_xxx" # PowerShell
|
|
|
365
365
|
When `X-RateLimit-Remaining` drops below 10, the tool surfaces an inline
|
|
366
366
|
warning in the response.
|
|
367
367
|
|
|
368
|
+
## Security model
|
|
369
|
+
|
|
370
|
+
This package runs entirely in the MCP host's process and the only
|
|
371
|
+
"interesting" thing it does on disk/network is `xray_test_reality_live`,
|
|
372
|
+
which downloads the official **xray-core** binary from
|
|
373
|
+
[XTLS/Xray-core releases](https://github.com/XTLS/Xray-core/releases/latest)
|
|
374
|
+
into `~/.cache/mcp-xray-pilot/xray-bin/` and spawns it locally on
|
|
375
|
+
ephemeral ports.
|
|
376
|
+
|
|
377
|
+
**Approvals.** There is no in-package permission prompt by design — all
|
|
378
|
+
tool invocations are gated by the MCP host (Claude Code / Claude Desktop
|
|
379
|
+
/ Cursor). Each host has its own permission UX (per-call confirm,
|
|
380
|
+
allowlist, etc.). Pin a specific version in your MCP config
|
|
381
|
+
(`mcp-xray-pilot@0.15.0`, not `mcp-xray-pilot`) so a malicious npm
|
|
382
|
+
release cannot silently roll in.
|
|
383
|
+
|
|
384
|
+
**Integrity of the xray binary.** Since v0.15:
|
|
385
|
+
|
|
386
|
+
1. The matching `<asset>.zip.dgst` from the same GitHub release is
|
|
387
|
+
downloaded alongside the zip, and the zip is verified against its
|
|
388
|
+
`SHA2-256=` line **before** extraction. Mismatched payloads are
|
|
389
|
+
renamed to `xray.rejected-<timestamp>.zip` for inspection and the
|
|
390
|
+
tool aborts.
|
|
391
|
+
2. If you want a stronger guarantee than "trust whatever XTLS ships
|
|
392
|
+
right now", set `XRAY_PILOT_PINNED_HASH` to a known SHA-256 — the
|
|
393
|
+
`.dgst` is then ignored and the pinned value is enforced. This
|
|
394
|
+
defends against a hypothetical compromised XTLS release that ships a
|
|
395
|
+
matching `.dgst`.
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
# Linux / macOS — read the hash once, then pin it.
|
|
399
|
+
curl -sL https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip.dgst \
|
|
400
|
+
| awk '/^SHA2-256=/ {print $2}'
|
|
401
|
+
export XRAY_PILOT_PINNED_HASH=23cd9af9...
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
```powershell
|
|
405
|
+
$env:XRAY_PILOT_PINNED_HASH = "23cd9af9..."
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**What this does NOT do.** XTLS does not GPG-sign `.dgst` files, so an
|
|
409
|
+
attacker with write access to the releases page can ship a coherent
|
|
410
|
+
zip+dgst pair. The pinned-hash path is your defense against that. The
|
|
411
|
+
package does not sandbox the spawned xray binary — it runs with the
|
|
412
|
+
permissions of the MCP host process. If you need stronger isolation,
|
|
413
|
+
run the MCP host inside a container or a dedicated user account.
|
|
414
|
+
|
|
415
|
+
**`GITHUB_TOKEN`.** Optional, used only by `xray_github_search` /
|
|
416
|
+
`xray_github_fetch_issue`. A **fine-grained PAT with read-only public
|
|
417
|
+
repo scope** is recommended over classic PATs. The token is read from
|
|
418
|
+
the process env at call time and never persisted by the package.
|
|
419
|
+
|
|
368
420
|
## Roadmap
|
|
369
421
|
|
|
370
422
|
See [ROADMAP.md](./ROADMAP.md). All v0.1–v0.11 milestones are checked off.
|
|
@@ -714,6 +766,56 @@ $env:GITHUB_TOKEN = "ghp_xxx" # PowerShell
|
|
|
714
766
|
Когда `X-RateLimit-Remaining` падает ниже 10, тул возвращает inline-warning
|
|
715
767
|
в ответе.
|
|
716
768
|
|
|
769
|
+
## Модель безопасности
|
|
770
|
+
|
|
771
|
+
Пакет крутится внутри процесса MCP-хоста, и единственное «опасное»
|
|
772
|
+
действие на диск/сеть — `xray_test_reality_live`, который скачивает
|
|
773
|
+
официальный бинарь **xray-core** из
|
|
774
|
+
[XTLS/Xray-core releases](https://github.com/XTLS/Xray-core/releases/latest)
|
|
775
|
+
в `~/.cache/mcp-xray-pilot/xray-bin/` и запускает его локально на
|
|
776
|
+
ephemeral портах.
|
|
777
|
+
|
|
778
|
+
**Approvals.** Встроенного permission-prompt'а в пакете нет — это by
|
|
779
|
+
design. Все тулколлы гейтятся MCP-хостом (Claude Code / Claude Desktop /
|
|
780
|
+
Cursor) — у каждого хоста свой UX (per-call confirm, allowlist и т.д.).
|
|
781
|
+
Пиньте конкретную версию в MCP-конфиге (`mcp-xray-pilot@0.15.0`, а не
|
|
782
|
+
просто `mcp-xray-pilot`), чтобы вредоносный npm-релиз не подкатился
|
|
783
|
+
тихо.
|
|
784
|
+
|
|
785
|
+
**Целостность бинаря xray.** Начиная с v0.15:
|
|
786
|
+
|
|
787
|
+
1. Рядом со скачиванием zip-а тянется `<asset>.zip.dgst` из того же
|
|
788
|
+
GitHub-релиза, и **до** распаковки zip проверяется против строки
|
|
789
|
+
`SHA2-256=`. Если хэши не совпали — payload переименовывается в
|
|
790
|
+
`xray.rejected-<timestamp>.zip` для разбора, и тул abort'ится.
|
|
791
|
+
2. Если хочется жёстче чем «доверяю тому что XTLS залил прямо сейчас» —
|
|
792
|
+
задайте `XRAY_PILOT_PINNED_HASH` с известным SHA-256. Тогда `.dgst`
|
|
793
|
+
игнорируется, проверяется ваше захардкоженное значение. Это защищает
|
|
794
|
+
от гипотетического compromised XTLS-релиза, где злоумышленник залил
|
|
795
|
+
согласованную пару zip+dgst.
|
|
796
|
+
|
|
797
|
+
```bash
|
|
798
|
+
# Linux / macOS — снять хэш один раз, потом пиннуть.
|
|
799
|
+
curl -sL https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip.dgst \
|
|
800
|
+
| awk '/^SHA2-256=/ {print $2}'
|
|
801
|
+
export XRAY_PILOT_PINNED_HASH=23cd9af9...
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
```powershell
|
|
805
|
+
$env:XRAY_PILOT_PINNED_HASH = "23cd9af9..."
|
|
806
|
+
```
|
|
807
|
+
|
|
808
|
+
**Чего пакет НЕ делает.** XTLS не GPG-подписывает `.dgst`, поэтому
|
|
809
|
+
атакер с правами на releases-страницу может выкатить согласованную пару
|
|
810
|
+
zip+dgst. Защита от этого — pinned-hash. Sandbox для запущенного xray
|
|
811
|
+
пакет не делает — бинарь работает с правами процесса MCP-хоста. Хотите
|
|
812
|
+
жёстче — запускайте MCP-хост в контейнере или под отдельным юзером.
|
|
813
|
+
|
|
814
|
+
**`GITHUB_TOKEN`.** Опционально, используется только
|
|
815
|
+
`xray_github_search` / `xray_github_fetch_issue`. Рекомендуется
|
|
816
|
+
**fine-grained PAT с read-only scope для публичных репо** вместо
|
|
817
|
+
classic PAT. Токен читается из env при вызове и пакетом не сохраняется.
|
|
818
|
+
|
|
717
819
|
## Roadmap
|
|
718
820
|
|
|
719
821
|
См. [ROADMAP.md](./ROADMAP.md) — все вехи v0.1–v0.11 закрыты.
|
package/dist/tools.js
CHANGED
|
@@ -317,7 +317,9 @@ export const TOOL_SCHEMAS = [
|
|
|
317
317
|
"certificate AND an HTTPS probe through the cascade returned 2xx/3xx. Strictly " +
|
|
318
318
|
"stronger than xray_validate_sni_target — catches targets that pass TLS 1.3+h2 " +
|
|
319
319
|
"but still break REALITY (e.g. outlook.live.com, www.ozon.ru). Downloads xray " +
|
|
320
|
-
"binary on first call into ~/.cache/mcp-xray-pilot/xray-bin (cached after)
|
|
320
|
+
"binary on first call into ~/.cache/mcp-xray-pilot/xray-bin (cached after), " +
|
|
321
|
+
"verified against the upstream .dgst (SHA-256) before extraction; set " +
|
|
322
|
+
"XRAY_PILOT_PINNED_HASH env to enforce a known SHA-256 instead. " +
|
|
321
323
|
"Verdicts are persisted in data/reality-verdicts.json (LRU 50, TTL 24h, key " +
|
|
322
324
|
"host:port) — set force_refresh=true to bypass. Pass multi_targets[] (1..10) " +
|
|
323
325
|
"instead of target_host to batch a sorted comparison in one call.",
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ import { mkdir, writeFile, readFile, rm, stat, chmod, } from "node:fs/promises";
|
|
|
38
38
|
import { homedir, tmpdir, platform, arch } from "node:os";
|
|
39
39
|
import path, { join } from "node:path";
|
|
40
40
|
import { fileURLToPath } from "node:url";
|
|
41
|
-
import { randomBytes, randomUUID } from "node:crypto";
|
|
41
|
+
import { randomBytes, randomUUID, createHash } from "node:crypto";
|
|
42
42
|
import { createServer as createTcpServer, connect as netConnect } from "node:net";
|
|
43
43
|
import { connect as tlsConnectRaw } from "node:tls";
|
|
44
44
|
import { request as httpsRequest } from "node:https";
|
|
@@ -65,11 +65,30 @@ function xrayAssetForPlatform() {
|
|
|
65
65
|
}
|
|
66
66
|
return {
|
|
67
67
|
url: `${base}/${zipName}`,
|
|
68
|
+
dgstUrl: `${base}/${zipName}.dgst`,
|
|
69
|
+
zipName,
|
|
68
70
|
binaryName,
|
|
69
71
|
cacheDir,
|
|
70
72
|
binaryPath: join(cacheDir, binaryName),
|
|
71
73
|
};
|
|
72
74
|
}
|
|
75
|
+
/* Parse XTLS .dgst format. Each line is `<algo>= <hex>` (e.g. `SHA2-256= abc...`).
|
|
76
|
+
* Returns the hex digest for the requested algo, or null if absent. */
|
|
77
|
+
function parseDgst(buf, algo) {
|
|
78
|
+
const text = buf.toString("utf8");
|
|
79
|
+
const needle = `${algo}=`;
|
|
80
|
+
for (const raw of text.split(/\r?\n/)) {
|
|
81
|
+
const line = raw.trim();
|
|
82
|
+
if (!line.startsWith(needle))
|
|
83
|
+
continue;
|
|
84
|
+
const hex = line.slice(needle.length).trim().toLowerCase();
|
|
85
|
+
return /^[0-9a-f]+$/.test(hex) ? hex : null;
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
function sha256Hex(buf) {
|
|
90
|
+
return createHash("sha256").update(buf).digest("hex");
|
|
91
|
+
}
|
|
73
92
|
async function fileExists(p) {
|
|
74
93
|
try {
|
|
75
94
|
await stat(p);
|
|
@@ -148,6 +167,47 @@ async function ensureXrayBinary() {
|
|
|
148
167
|
await mkdir(asset.cacheDir, { recursive: true });
|
|
149
168
|
const zipPath = join(asset.cacheDir, "xray.zip");
|
|
150
169
|
const body = await httpGetRedirect(asset.url);
|
|
170
|
+
/* Integrity check before extraction.
|
|
171
|
+
* Priority:
|
|
172
|
+
* 1. XRAY_PILOT_PINNED_HASH env (user-supplied SHA-256, defends against
|
|
173
|
+
* a compromised XTLS release that ships a matching .dgst).
|
|
174
|
+
* 2. <zip>.dgst from the same GitHub release (defends against MITM on
|
|
175
|
+
* the download channel). */
|
|
176
|
+
const actual = sha256Hex(body);
|
|
177
|
+
const pinned = (process.env.XRAY_PILOT_PINNED_HASH ?? "").trim().toLowerCase();
|
|
178
|
+
if (pinned) {
|
|
179
|
+
if (!/^[0-9a-f]{64}$/.test(pinned)) {
|
|
180
|
+
throw new Error(`XRAY_PILOT_PINNED_HASH must be 64 hex chars (SHA-256), got ${pinned.length}`);
|
|
181
|
+
}
|
|
182
|
+
if (actual !== pinned) {
|
|
183
|
+
const rejected = join(asset.cacheDir, `xray.rejected-${Date.now()}.zip`);
|
|
184
|
+
await writeFile(rejected, body);
|
|
185
|
+
throw new Error(`xray binary SHA-256 mismatch (pinned): expected ${pinned}, got ${actual}. ` +
|
|
186
|
+
`Rejected payload saved to ${rejected} for inspection.`);
|
|
187
|
+
}
|
|
188
|
+
console.error(`[mcp-xray-pilot] verified ${asset.zipName} SHA-256 against XRAY_PILOT_PINNED_HASH`);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
let expected = null;
|
|
192
|
+
try {
|
|
193
|
+
const dgstBuf = await httpGetRedirect(asset.dgstUrl);
|
|
194
|
+
expected = parseDgst(dgstBuf, "SHA2-256");
|
|
195
|
+
}
|
|
196
|
+
catch (e) {
|
|
197
|
+
throw new Error(`failed to fetch ${asset.zipName}.dgst for integrity check: ${e.message}. ` +
|
|
198
|
+
`Set XRAY_PILOT_PINNED_HASH to bypass and pin a known SHA-256 instead.`);
|
|
199
|
+
}
|
|
200
|
+
if (!expected) {
|
|
201
|
+
throw new Error(`${asset.zipName}.dgst does not contain a SHA2-256 line — cannot verify`);
|
|
202
|
+
}
|
|
203
|
+
if (actual !== expected) {
|
|
204
|
+
const rejected = join(asset.cacheDir, `xray.rejected-${Date.now()}.zip`);
|
|
205
|
+
await writeFile(rejected, body);
|
|
206
|
+
throw new Error(`xray binary SHA-256 mismatch (.dgst): expected ${expected}, got ${actual}. ` +
|
|
207
|
+
`Rejected payload saved to ${rejected} for inspection.`);
|
|
208
|
+
}
|
|
209
|
+
console.error(`[mcp-xray-pilot] verified ${asset.zipName} SHA-256 (${actual.slice(0, 12)}…) against upstream .dgst`);
|
|
210
|
+
}
|
|
151
211
|
await writeFile(zipPath, body);
|
|
152
212
|
await tryExtractZip(zipPath, asset.cacheDir);
|
|
153
213
|
await rm(zipPath, { force: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_reality_live.js","sourceRoot":"","sources":["../../src/tools_impl/test_reality_live.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,EAAE,EACF,IAAI,EACJ,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,OAAO,IAAI,UAAU,EAAe,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,aAAa,EAAkB,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AA0CtC,SAAS,oBAAoB;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,IAAI,EAAE,KAAK,OAAO,CAAC;IACnC,MAAM,IAAI,GAAG,4DAA4D,CAAC;IAC1E,IAAI,OAAe,CAAC;IACpB,IAAI,UAAkB,CAAC;IACvB,QAAQ,QAAQ,EAAE,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACzE,UAAU,GAAG,UAAU,CAAC;YACxB,MAAM;QACR,KAAK,QAAQ;YACX,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB,CAAC;YACrE,UAAU,GAAG,MAAM,CAAC;YACpB,MAAM;QACR;YACE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB,CAAC;YACrE,UAAU,GAAG,MAAM,CAAC;YACpB,MAAM;IACV,CAAC;IACD,OAAO;QACL,GAAG,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE;QACzB,UAAU;QACV,QAAQ;QACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,CAAS;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAC3B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;gBACtD,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CACf,OAAO,CAAC;oBACN,MAAM,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC;oBACzB,OAAO,EAAE,CAAC,CAAC,OAAO;oBAClB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;iBAC5B,CAAC,CACH,CAAC;gBACF,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxB,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CACF,CAAC;QACF,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjG,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpE,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,SAAS,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACxC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,OAAe,EAAE,OAAe;IAC3D;6FACyF;IACzF,MAAM,QAAQ,GAAsC;QAClD,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;QACrD,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;KACvD,CAAC;IACF,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE;gBACJ,YAAY;gBACZ,UAAU;gBACV,yBAAyB,OAAO,uBAAuB,OAAO,UAAU;aACzE;SACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,GAAiB,IAAI,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,CAAU,CAAC;QACvB,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,KAAK,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IACrC,IAAI,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAChE,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,MAAM,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEnC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,UAAU,mBAAmB,CAAC,CAAC;IACnF,CAAC;IACD,IAAI,QAAQ,EAAE,KAAK,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,UAAU,CAAC;AAC1B,CAAC;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAE3E,SAAS,WAAW;IAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,SAAiB;IACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,CAAC,CAAU,EAAQ,EAAE;YAClC,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAC/C,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAE3E,SAAS,aAAa,CACpB,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,UAAkB,EAClB,SAAiB,EACjB,MAAmB;IAEnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3B,IAAI,KAAK,GAAwB,OAAO,CAAC;QACzC,MAAM,GAAG,GAAa,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,CAAC,CAAQ,EAAQ,EAAE;YAC9B,IAAI,CAAC;gBAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAChC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACtB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO;gBAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC7C,IAAI,CAAC,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9E,OAAO;gBACT,CAAC;gBACD,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;gBACf,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,KAAK,GAAG,SAAS,CAAC;gBAClB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAChD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrD,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACd,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACd,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrB,GAAG,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,6CAA6C;YAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAC9B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7D,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,SAAiB,CAAC;YACtB,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACvB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO;gBAC9B,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBAC5C,CAAC;gBACJ,IAAI,CAAC,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS;gBAAE,OAAO;YACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,kEAAkE;YAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,QAAQ,CAAC,MAAM;gBAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,UAAkB,EAClB,OAAe,EACf,SAAiB,EACjB,MAAmB;IAEnB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAElG;4EACwE;IACxE,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,IAAI,CAAC;YAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,GAAG,aAAa,CAAC;YACtB,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,CAAC,UAAU,CAAC;YAC3B,kBAAkB,EAAE,KAAK;SAC1B,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE;YAC1B,IAAI,CAAC;gBAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACjD,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,MAAM,UAAU,GAAG,GAAS,EAAE;YAC5B,YAAY,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC;gBAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;YAC3B,YAAY,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAChD,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACpB,YAAY,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAChD,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAElD,sEAAsE;IACtE,MAAM,cAAc,GAAG,GAAS,EAAE;QAChC,IAAI,CAAC;YAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjE,MAAM,GAAG,GACP,OAAO,OAAO,eAAe;QAC7B,SAAS,UAAU,MAAM;QACzB,oDAAoD;QACpD,uBAAuB;QACvB,qBAAqB,CAAC;IACxB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACnD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,MAAM,MAAM,GAAG,CAAC,CAAS,EAAQ,EAAE;YACjC,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,CAAC;gBAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YACpD,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC;QACF,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,GAAS,EAAE;YAC7B,YAAY,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACnD,IAAI,CAAC,EAAE,CAAC;gBACN,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACrB,YAAY,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,YAAY,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;AAChD,CAAC;AAgBD,SAAS,iBAAiB,CAAC,IAQ1B;IACC,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3D,OAAO;QACL,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;QAC/D,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE;oBACR,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5B,UAAU,EAAE,MAAM;iBACnB;gBACD,cAAc,EAAE;oBACd,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,SAAS;oBACnB,eAAe,EAAE;wBACf,IAAI,EAAE,KAAK;wBACX,MAAM,EAAE,UAAU;wBAClB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,CAAC;wBACP,WAAW,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC;wBAC9B,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;qBACzB;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,IAAI,CAAC,UAAU;wBACrB,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,MAAM;qBACb;iBACF;aACF;SACF;QACD,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAQ1B;IACC,OAAO;QACL,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;QAC/D,QAAQ,EAAE;YACR;gBACE,GAAG,EAAE,UAAU;gBACf,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE;aACzC;SACF;QACD,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,WAAW;gBAChB,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE;oBACR,KAAK,EAAE;wBACL;4BACE,OAAO,EAAE,WAAW;4BACpB,IAAI,EAAE,IAAI,CAAC,UAAU;4BACrB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;yBAC/C;qBACF;iBACF;gBACD,cAAc,EAAE;oBACd,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,SAAS;oBACnB,eAAe,EAAE;wBACf,IAAI,EAAE,KAAK;wBACX,WAAW,EAAE,QAAQ;wBACrB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,OAAO,EAAE,GAAG;qBACb;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,IAAI,CAAC,UAAU;wBACrB,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,MAAM;qBACb;iBACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAe,EACf,SAAkB,EAClB,SAAkB,EAClB,aAAqB,EACrB,aAAqB,EACrB,UAAkB,EAClB,eAAuB;IAEvB,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9E;mCAC+B;IAC/B,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3C,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO;QACL,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,aAAa;QACb,UAAU;QACV,eAAe;QACf,OAAO;KACR,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAE3E,SAAS,SAAS,CAAC,MAAc,EAAE,UAAkB;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE;QACpD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;QACjC,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,oEAAoE;IACpE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAiB,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAiB,CAAC,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,IAAyB;IACzC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO;IAC3D,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,aAAa;IACf,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAgB,EAAE,QAAgB;IACxD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAE3E,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACjD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAa7B,SAAS,gBAAgB;IACvB;;;;;OAKG;IACH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,IAAY;IAC1C,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,gBAAgB,EAAE,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA8B,CAAC;QAC5D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC3F,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;QACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACrC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,KAAuB;IACtD,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,KAAuB,EACvB,IAAY,EACZ,IAAY;IAEZ,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAChF,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,QAAQ,CAAC,KAAuB;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,MAAM,IAAI,iBAAiB;QAAE,OAAO;IAC7C,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC;IAChE,KAAK,MAAM,EAAE,CAAC,EAAE,IAAI,MAAM;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CACnB,KAAuB,EACvB,IAAY,EACZ,IAAY,EACZ,OAA8B;IAE9B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,sDAAsD;IACtD,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IACzD,KAAK,EAAE,CAAC;IACR,KAAK,GAAG,CAAC;IACT,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IACpE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChB,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,2EAA2E;AAC3E,2EAA2E;AAC3E,2EAA2E;AAE3E,MAAM,cAAc,GAAG,sCAAsC,CAAC;AAS9D,KAAK,UAAU,eAAe,CAAC,IAAsB;IACnD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAExD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO;QACrB,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QAC5E,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,CAAC,GAAG,sBAAsB,EAAE,CAAC;YACnC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;QAC9D,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE/C,MAAM,MAAM,GAA0B;QACpC,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,GAAG,UAAU,IAAI,UAAU,EAAE;QACrC,0BAA0B,EAAE,KAAK;QACjC,yBAAyB,EAAE,KAAK;QAChC,iBAAiB,EAAE,IAAI;QACvB,UAAU,EAAE,CAAC;QACb,kBAAkB,EAAE,EAAE;QACtB,kBAAkB,EAAE,EAAE;QACtB,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE;KAC9E,CAAC;IAEF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACtB,IAAI,UAAU,GAAwB,IAAI,CAAC;IAC3C,IAAI,UAAU,GAAwB,IAAI,CAAC;IAC3C,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC;QACH,qBAAqB;QACrB,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA6B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,6BAA6B;QAC7B,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,wCAAwC;QACxC,MAAM,UAAU,GAAG,MAAM,WAAW,EAAE,CAAC;QACvC,MAAM,eAAe,GAAG,MAAM,WAAW,EAAE,CAAC;QAC5C,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,0BAA0B,UAAU,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAElD,MAAM,SAAS,GAAG,iBAAiB,CAAC;YAClC,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,OAAO;YACP,UAAU;YACV,UAAU;YACV,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,CAAC;YAClC,SAAS,EAAE,eAAe;YAC1B,UAAU;YACV,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,OAAO;YACP,UAAU;YACV,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAChC,OAAO,EACP,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,CAChB,CAAC;QAEF,mCAAmC;QACnC,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC7E,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC7E,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,gDAAgD;QAChD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAElB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9E,IAAI,KAAK,GAAiD,IAAI,CAAC;QAC/D,IAAI,YAAY,GAA0B,IAAI,CAAC;QAC/C,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,OAAO,CAAwC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnF,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC7B,UAAU,CAAC,KAAK,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,cAAc,KAAK,CAAC,CAAC,CAAC;gBAC1F,CAAC,EAAE,WAAW,CAAC,CAAC;gBAChB,iBAAiB,CACf,WAAW,EACX,IAAI,CAAC,eAAe,EACpB,SAAS,EACT,GAAG,EACH,gBAAgB,EAChB,WAAW,EACX,UAAU,CAAC,MAAM,CAClB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBACX,IAAI,YAAY;wBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;oBAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;gBACb,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;oBACP,IAAI,YAAY;wBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;oBAC7C,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;YAChD,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;gBAAS,CAAC;YACT,IAAI,YAAY;gBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,+BAA+B;QAC/B,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,CAAC,kBAAkB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,kBAAkB,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAEnE,IAAI,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAAE,CAAC;YAC7E,MAAM,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,sGAAsG,CACvG,CAAC;QACJ,CAAC;QACD,IACE,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC/D,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EACtE,CAAC;YACD,MAAM,CAAC,0BAA0B,GAAG,IAAI,CAAC;QAC3C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC7C,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,0BAA0B;gBACjC,CAAC,MAAM,CAAC,yBAAyB;gBACjC,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC;QAEtD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT;;;;WAIG;QACH,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrB,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAiB,CAAC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,SAAS,eAAe,CAAC,IAAY,EAAE,WAAmB;IACxD,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAyB;IAEzB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;IACjD,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7F,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAEpF,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,aAAc,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,aAAc,CAAC,MAAM,oBAAoB,iBAAiB,EAAE,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAuB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAE/D,MAAM,MAAM,GAAG,KAAK,EAAE,IAAY,EAAE,IAAY,EAAkC,EAAE;QAClF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;YAClC,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,cAAc;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7D,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;QAC/B,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAChD,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,WAAY,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7D,CAAC;QAED,uEAAuE;QACvE,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAc,EAAE,CAAC;YACvC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QACH,OAAO;YACL,OAAO;YACP,OAAO,EAAE;gBACP,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;gBAC5C,KAAK,EAAE,OAAO,CAAC,MAAM;aACtB;SACF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"test_reality_live.js","sourceRoot":"","sources":["../../src/tools_impl/test_reality_live.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-xray-pilot",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "MCP server for xray-core: offline docs cache (auto-refresh), config validation, REALITY/XTLS lint, anti-DPI recipes, GitHub research from XTLS repos.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Tiny in-memory LRU cache for xray_validate_sni_target verdicts.
|
|
3
|
-
*
|
|
4
|
-
* Why this exists: a single REALITY config can use the same SNI host across
|
|
5
|
-
* multiple inbounds, and an LLM agent typically re-validates the same hosts
|
|
6
|
-
* dozens of times during one config-tuning session. A stale-but-recent
|
|
7
|
-
* verdict from 5 minutes ago is good enough — the underlying server-side
|
|
8
|
-
* properties (TLS 1.3 support, ALPN advertise, cert subject) flip on the
|
|
9
|
-
* order of months, not minutes.
|
|
10
|
-
*
|
|
11
|
-
* Cache is process-local (no disk persistence) — we want the cache invalidated
|
|
12
|
-
* when the MCP server restarts. Keyed by `host:port`. Entry stores the full
|
|
13
|
-
* `ValidateSniResult` plus an `inserted_at` Unix-ms timestamp so callers can
|
|
14
|
-
* pick their TTL per-call (the cache stores forever; lookup applies TTL).
|
|
15
|
-
*
|
|
16
|
-
* NB: this is verdict-only. The whitelist body cache is separate
|
|
17
|
-
* (`data/whitelist-cache.json` on disk) since it's a different lifecycle.
|
|
18
|
-
*/
|
|
19
|
-
const MAX_ENTRIES = 200;
|
|
20
|
-
/* Simple LRU via insertion-order Map: re-set on access to promote. */
|
|
21
|
-
const cache = new Map();
|
|
22
|
-
function key(host, port) {
|
|
23
|
-
return `${host.toLowerCase()}:${port}`;
|
|
24
|
-
}
|
|
25
|
-
export function lookupVerdict(host, port, ttlSeconds) {
|
|
26
|
-
if (ttlSeconds <= 0)
|
|
27
|
-
return { hit: false, result: null, age_seconds: null };
|
|
28
|
-
const k = key(host, port);
|
|
29
|
-
const entry = cache.get(k);
|
|
30
|
-
if (!entry)
|
|
31
|
-
return { hit: false, result: null, age_seconds: null };
|
|
32
|
-
const ageMs = Date.now() - entry.inserted_at;
|
|
33
|
-
const ageSec = Math.floor(ageMs / 1000);
|
|
34
|
-
if (ageSec > ttlSeconds) {
|
|
35
|
-
cache.delete(k);
|
|
36
|
-
return { hit: false, result: null, age_seconds: null };
|
|
37
|
-
}
|
|
38
|
-
/* Promote: re-insert at the tail of the Map. */
|
|
39
|
-
cache.delete(k);
|
|
40
|
-
cache.set(k, entry);
|
|
41
|
-
return { hit: true, result: entry.result, age_seconds: ageSec };
|
|
42
|
-
}
|
|
43
|
-
export function storeVerdict(host, port, result) {
|
|
44
|
-
const k = key(host, port);
|
|
45
|
-
if (cache.has(k))
|
|
46
|
-
cache.delete(k);
|
|
47
|
-
cache.set(k, { result, inserted_at: Date.now() });
|
|
48
|
-
/* Evict oldest while over capacity. Map iteration order = insertion order. */
|
|
49
|
-
while (cache.size > MAX_ENTRIES) {
|
|
50
|
-
const oldest = cache.keys().next().value;
|
|
51
|
-
if (typeof oldest !== "string")
|
|
52
|
-
break;
|
|
53
|
-
cache.delete(oldest);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/* Test-only helpers; not exposed via MCP. */
|
|
57
|
-
export function _resetCache() {
|
|
58
|
-
cache.clear();
|
|
59
|
-
}
|
|
60
|
-
export function _cacheSize() {
|
|
61
|
-
return cache.size;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=sni_cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sni_cache.js","sourceRoot":"","sources":["../../src/tools_impl/sni_cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,sEAAsE;AACtE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;AAEvC,SAAS,GAAG,CAAC,IAAY,EAAE,IAAY;IACrC,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;AACzC,CAAC;AAQD,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,IAAY,EACZ,UAAkB;IAElB,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC5E,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACxC,IAAI,MAAM,GAAG,UAAU,EAAE,CAAC;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACzD,CAAC;IACD,gDAAgD;IAChD,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,MAAyB;IAChF,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClD,8EAA8E;IAC9E,OAAO,KAAK,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACzC,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,MAAM;QACtC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,WAAW;IACzB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AACD,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
|